Início Rápido: Configurar um aplicativo para expor uma API Web
Neste guia de início rápido, você vai registrar uma API Web na plataforma de identidade da Microsoft e expô-la aos aplicativos cliente adicionando um escopo. Ao registrar sua API Web e expô-la por meio de escopos, atribuindo um proprietário e uma função de aplicativo, você pode fornecer acesso baseado em permissões aos seus recursos para usuários autorizados e aplicativos cliente que acessam a API.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa – criar uma conta gratuitamente
- Conclusão do Início Rápido: Configurar um locatário
- Um aplicativo registrado no centro de administração do Microsoft Entra. Se você ainda não tem um, registre um aplicativo agora.
Registrar a API Web
O acesso às APIs requer a configuração de escopos e funções de acesso. Se você quiser expor suas APIs web do aplicativo de recursos para aplicativos cliente, configure escopos de acesso e funções da API. Se desejar que um aplicativo cliente acesse uma API web, configure permissões para acessar a API no registro de aplicativo. Para fornecer acesso com escopo aos recursos em sua API Web, primeiro registre a API com a plataforma de identidade da Microsoft.
- Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.
- Se você tem acesso a vários locatários, use o ícone Configurações no menu superior para alternar para o locatário que contém o registro de aplicativo do menu Diretórios + assinaturas.
- Siga as etapas em registrar um aplicativo e pule para a seção URI de Redirecionamento (opcional). Você não precisa configurar um URI de redirecionamento para uma API Web, pois nenhum usuário está conectado interativamente.
Atribuir proprietário do aplicativo
- No registro do aplicativo, em Gerenciar, selecione Proprietários e Adicionar proprietários.
- Na nova janela, localize e selecione os proprietários que você quer atribuir ao aplicativo. Os proprietários selecionados aparecem no painel direito. Depois de concluído, confirme com Selecionar. Os proprietários de aplicativos agora aparecerão na lista de proprietários.
Observação
Verifique se o aplicativo de API e o aplicativo ao qual você quer adicionar permissões têm um proprietário; caso contrário, a API não será listada ao solicitar permissões de API.
Atribuir função de aplicativo
No registro do aplicativo, em Gerenciar, selecione Funções de aplicativo e Criar função de aplicativo.
Em seguida, especifique os atributos da função do aplicativo no painel Criar função de aplicativo. Para este passo a passo, você pode usar os valores de exemplo ou especificar o seu próprio valor.
Campo Descrição Exemplo Nome de exibição O nome da função de aplicativo Registros de Funcionários Tipos de membro permitidos Especifica se a função do aplicativo pode ser atribuída a usuários/grupos e/ou aplicativos Aplicativos Valor O valor exibido na declaração “funções” de um token Employee.Records
Descrição Uma descrição mais detalhada da função de aplicativo Os aplicativos têm acesso aos registros dos funcionários Marque a caixa de seleção para habilitar a função do aplicativo e, em seguida, selecione Aplicar.
Adicionar um escopo
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Com a API Web registrada, atribuída a uma função de aplicativo e a um proprietário, você pode adicionar escopos ao código da API para que ela possa fornecer permissão granular aos consumidores.
O código em um aplicativo cliente solicita permissão para executar operações definidas por sua API Web passando um token de acesso junto com suas solicitações para o recurso protegido (a API Web). A API Web executará a operação solicitada somente se o token de acesso recebido contiver os escopos necessários para a operação.
Adicionar um escopo que exija consentimento do administrador e do usuário
Primeiro, siga estas etapas para criar um escopo de exemplo chamado Employees.Read.All
:
Selecione Expor uma API.
Na parte superior da página, selecione Adicionar ao lado de URI de ID do Aplicativo. O padrão é
api://<application-client-id>
. O URI da ID do aplicativo atua como o prefixo dos escopos que você fará referência no código da API e deve ser globalmente exclusivo. Selecione Salvar.Selecione Adicionar um escopo:
Em seguida, especifique os atributos do escopo no painel Adicionar um escopo. Para este passo a passo, você pode usar os valores de exemplo ou especificar o seu próprio valor.
Campo Descrição Exemplo Nome do Escopo O nome do seu escopo. Uma convenção de nomenclatura de escopo comum é resource.operation.constraint
.Employees.Read.All
Quem pode consentir Se esse escopo pode ser consentido por usuários ou se é necessário ter o consentimento do administrador. Use Apenas administradores para permissões com privilégios mais altos. Administradores e usuários Nome de exibição de consentimento do administrador Uma breve descrição da finalidade do escopo que somente os administradores verão. Acesso somente leitura aos registros de funcionários Descrição do consentimento do administrador Uma descrição mais detalhada da permissão concedida pelo escopo que somente os administradores verão. Permitir que o aplicativo tenha acesso somente leitura a todos os dados de funcionários. Nome para exibição do consentimento do usuário Uma breve descrição da finalidade do escopo. Mostrado para os usuários somente se você definir Quem pode consentir como Administradores e usuários. Acesso somente leitura aos seus registros de funcionário Descrição de consentimento do usuário Uma descrição mais detalhada da permissão concedida pelo escopo. Mostrado para os usuários somente se você definir Quem pode consentir como Administradores e usuários. Permitir que o aplicativo tenha acesso somente leitura aos seus dados de funcionário. State Se o escopo está habilitado ou desabilitado. Enabled Selecione Adicionar escopo.
(Opcional) Para suprimir a solicitação de consentimento dos usuários do seu aplicativo para os escopos que você definiu, você pode pré-autorizar o aplicativo cliente a acessar sua API Web. Pré-autorize apenas aplicativos cliente confiáveis, pois os usuários não terão a oportunidade de recusar o consentimento.
- Em Aplicativos cliente autorizados, selecione Adicionar um aplicativo cliente
- Insira a ID do Aplicativo (cliente) do aplicativo cliente que deseja pré-autorizar. Por exemplo, aquela de um aplicativo Web que você já registrou.
- Em Escopos autorizados, selecione os escopos para os quais deseja suprimir a solicitação de consentimento e escolha Adicionar aplicativo.
Se você seguiu essa etapa opcional, o aplicativo cliente agora é um PCA (aplicativo cliente pré-autorizado), e os usuários não serão solicitados a dar consentimento ao entrar nele.
Adicionar um escopo que requer o consentimento do administrador
Em seguida, adicione outro escopo de exemplo chamado Employees.Write.All
que apenas os administradores podem consentir. Os escopos que exigem consentimento do administrador normalmente são usados para da acesso a operações com maior privilégio e, muitas vezes, por aplicativos cliente executados como serviços de back-end ou daemons que não conectam um usuário interativamente.
Para adicionar o exemplo de escopo Employees.Write.All
, siga as etapas na seção Adicionar um escopo e especifique esses valores no painel Adicionar um escopo. Selecione Adicionar escopo quando terminar:
Campo | Valor de exemplo |
---|---|
Nome do Escopo | Employees.Write.All |
Quem pode consentir | Somente administradores |
Nome de exibição de consentimento do administrador | Acesso para gravação aos registros de funcionários |
Descrição do consentimento do administrador | Permitir que o aplicativo tenha acesso para gravação a todos os dados de funcionários. |
Nome para exibição do consentimento do usuário | Nenhum (deixe em branco) |
Descrição de consentimento do usuário | Nenhum (deixe em branco) |
State | Enabled |
Verificar os escopos expostos
Se você tiver adicionado com sucesso os dois exemplos de escopos descritos nas seções anteriores, eles serão exibidos no painel Expor uma API do registro de aplicativo da API Web, semelhante à seguinte imagem:
A cadeia de caracteres completa de um escopo é a concatenação do URI da ID do Aplicativo da sua API Web e o Nome do escopo. Por exemplo, se o URI da ID do aplicativo da sua API Web for https://contoso.com/api
e o nome do escopo for Employees.Read.All
, o escopo completo será:
https://contoso.com/api/Employees.Read.All
Como usar os escopos expostos
No próximo artigo desta série, você vai configurar o registro de um aplicativo cliente com acesso à API Web e os escopos que você definiu seguindo as etapas do artigo.
Depois que um registro de aplicativo cliente recebe permissão para acessar sua API Web, o cliente pode receber um token de acesso OAuth 2.0 pela plataforma de identidade. Quando o cliente chama a API Web, ele apresenta um token de acesso cuja declaração de escopo (scp
) é definida como as permissões que você especificou no registro de aplicativo do cliente.
É possível expor escopos adicionais posteriormente conforme a necessidade. Considere que sua API Web pode expor vários escopos associados a diversas operações. O recurso pode controlar o acesso à API Web em runtime avaliando as declarações de escopo (scp
) no token de acesso OAuth 2.0 recebido.
Próxima etapa
Agora que você expôs sua API Web configurando seus escopos, configure o registro do aplicativo cliente com permissão para acessar esses escopos.