Configurar o gerenciador de credenciais – acesso delegado pelo usuário à API de back-end
APLICA-SE A: todas as camadas do Gerenciamento de API
Este artigo orienta você pelas etapas de alto nível para configurar e usar uma conexão gerenciada que concede aos usuários ou grupos delegados do Microsoft Entra permissões delegadas a uma API OAuth 2.0 de back-end. Siga estas etapas para cenários em que um aplicativo cliente (ou bot) precisa acessar recursos online protegidos de back-end em nome de um usuário autenticado (por exemplo, verificando emails ou fazendo um pedido).
Visão geral do cenário
Observação
Esse cenário só se aplica a provedores de credenciais configurados com o código de autorização tipo de concessão.
Nesse cenário, você configura uma conexão gerenciada que permite que um aplicativo cliente (ou bot) acesse uma API de back-end em nome de um usuário ou grupo do Microsoft Entra. Por exemplo, você pode ter um aplicativo Web estático que acessa uma API do GitHub de back-end e que deseja acessar dados específicos para o usuário conectado. O diagrama a seguir ilustra o cenário.
- O usuário deve autorizar o aplicativo a acessar recursos protegidos em seu nome e, para autorizar o aplicativo, o usuário deve autenticar sua identidade
- Para executar operações em nome de um usuário, o aplicativo chama o serviço de back-end externo, como o Microsoft Graph ou o GitHub
- Cada serviço externo tem uma maneira de proteger essas chamadas - por exemplo, com um token de usuário que identifica exclusivamente o usuário
- Para proteger a chamada para o serviço externo, o aplicativo precisa solicitar que o usuário entre, para que ele possa adquirir o token do usuário desse serviço
- Como parte da configuração, um provedor de credenciais é registrado usando o gerenciador de credenciais na instância de Gerenciamento de API. A conexão contém informações sobre o provedor de identidade a ser usado, juntamente com uma ID e um segredo do cliente OAuth válidos, os escopos do OAuth a serem habilitados e outros metadados de conexão exigidos por esse provedor de identidade.
- Além disso, uma conexão é criada e usada para ajudar a conectar o usuário e obter o token de usuário para que ele possa ser gerenciado
Pré-requisitos
Acesso a um locatário do Microsoft Entra em que você tem permissões para criar um registro de aplicativo e conceder consentimento do administrador para as permissões do aplicativo. Saiba mais
Se você quiser criar seu próprio locatário de desenvolvedor, inscreva-se no Programa para Desenvolvedores do Microsoft 365.
Um ou mais usuários ou grupos no locatário para o qual delegar permissões.
Uma instância do Gerenciamento de API em execução. Se você precisar, crie uma instância do Gerenciamento de API do Azure.
Uma API OAuth 2.0 de back-end que você deseja acessar em nome do usuário ou grupo.
- Se você optar por usar o Azure PowerShell localmente:
- Instale a versão mais recente do módulo do Az PowerShell.
- Conecte-se à sua conta do Azure usando o cmdlet Connect-AzAccount.
- Se você optar por usar o Azure Cloud Shell:
- Confira Visão geral do Azure Cloud Shell para obter mais informações.
Etapa 1: Provisionar a entidade de serviço do Plano de Dados de Gerenciamento de API do Azure
Você precisa provisionar a entidade de serviço do Plano de Dados de Gerenciamento de API do Azure para conceder aos usuários ou grupos as permissões delegadas necessárias. Use as etapas a seguir para provisionar a entidade de serviço usando o Azure PowerShell.
Entre no Azure PowerShell.
Se o módulo do AzureAD ainda não estiver instalado, instale-o com o seguinte comando:
Install-Module -Name AzureAD -Scope CurrentUser -Repository PSGallery -Force
Conecte-se ao locatário com o seguinte comando:
Connect-AzureAD -TenantId "<YOUR_TENANT_ID>"
Se solicitado, entre com as credenciais da conta de administrador do seu locatário.
Provisione a entidade de serviço do Plano de Dados de Gerenciamento de API do Azure com o seguinte comando:
New-AzureADServicePrincipal -AppId c8623e40-e6ab-4d2b-b123-2ca193542c65 -DisplayName "Azure API Management Data Plane"
Etapa 2: Criar um registro de aplicativo do Microsoft Entra
Crie um aplicativo do Microsoft Entra ID para delegação de usuário e conceda a ele as permissões apropriadas para ler a conexão no Gerenciamento de API.
- Entre no portal do Azure com uma conta com permissões suficientes no locatário.
- Em Serviços do Azure, procure Microsoft Entra ID.
- No menu à esquerda, selecione Registros de aplicativo e escolha Novo registro.
- Na página Registrar um aplicativo, insira as configurações de registro do aplicativo:
- Em Nome, insira um nome relevante que será exibido aos usuários do aplicativo, como UserPermissions.
- Em Tipos de conta com suporte, selecione uma opção que atenda ao seu cenário, por exemplo, Contas somente neste diretório organizacional (locatário único).
- Defina o URI de Redirecionamento como Web e insira
https://www.postman-echo.com/get
.
- No menu à esquerda, selecione Permissões de API e selecione + Adicionar uma permissão.
- Selecione a guia APIs que minha organização usa, digite Plano de Dados de Gerenciamento de API do Azure e selecione-o.
- Em Permissões, selecione Authorizations.Reade selecione Adicionar permissões.
- No menu à esquerda, selecione Visão geral. Na página Visão geral, localize o valor de ID do aplicativo (cliente) e registre-o para uso em uma etapa posterior.
- No menu esquerdo, selecione Certificados e segredos e, em seguida, selecione + Novo segredo do cliente.
- Insira uma Descrição.
- Selecione uma opção para Expira.
- Selecione Adicionar.
- Copie o Valor do segredo do cliente antes de deixar a página. Ela será necessária em uma etapa posterior.
Etapa 3: Configurar um provedor de credenciais no Gerenciamento de API
- Entre no portal e vá para a instância do Gerenciamento de API.
- No menu à esquerda, selecione Gerenciador de credenciais e selecione + Criar.
- Na página Criar provedor de credenciais,insira as configurações para o provedor de credenciais para a sua API. Para esse cenário, em Tipo de concessão, você deve selecionar código de autorização. Para saber mais, consulte Configure provedores de credenciais gerenciador de credenciais.
- Selecione Criar.
- Quando solicitado, examine a URL de redirecionamento do OAuth exibida e selecione Sim para confirmar se ela corresponde à URL inserida no registro do aplicativo.
Etapa 4: Configurar uma conexão
Depois de criar um provedor de credenciais, você pode adicionar uma conexão ao provedor. Na guia Conexão, conclua as etapas para sua conexão:
- Insira um Nome de conexão e selecione Salvar.
- Em Etapa 2: Fazer logon na conexão, selecione o link para fazer logon no provedor de credenciais. Conclua as etapas para autorizar o acesso e retorne ao Gerenciamento de API.
- Em Etapa 3: Determinar quem terá acesso a essa conexão (política de acesso), selecione + Adicionar. Dependendo do cenário de delegação, selecione Usuários ou Grupo.
- Na janela Selecionar item, faça seleções na seguinte ordem:
- Primeiro, pesquise por um ou mais usuários (ou grupos) para adicionar e marcar a caixa de seleção.
- Em seguida, na lista exibida, pesquise o registro do aplicativo que você criou em uma seção anterior.
- Em seguida, clique em Selecionar.
- Selecione Concluir.
A nova conexão aparece na lista de conexões e mostra um status de Conectado. Se você quiser criar outra conexão para o provedor de credenciais, conclua as etapas anteriores.
Dica
Use o portal para adicionar, atualizar ou excluir conexões a um provedor de credenciais a qualquer momento. Para obter mais informações, consulte Configurar várias conexões.
Etapa 5: Atualizar um token de acesso do Microsoft Entra ID
Para habilitar o acesso delegado pelo usuário à API de back-end, um token de acesso para o usuário ou grupo delegado deve ser fornecido em runtime na política de get-authorization-context
. Normalmente, isso é feito programaticamente em seu aplicativo cliente usando a MSAL (Biblioteca de Autenticação da Microsoft). Esta seção fornece etapas manuais para criar um token de acesso para teste.
Cole a seguinte URL no navegador, substituindo os valores de
<tenant-id>
e<client-id>
por valores do registro do aplicativo Microsoft Entra:https://login.microsoftonline.com/<tenant-id>/oauth2/authorize?client_id=<client-id>&response_type=code&redirect_uri=https://www.postman-echo.com/get&response_mode=query&resource=https://azure-api.net/authorization-manager&state=1234`
Quando solicitado, entre. No corpo da resposta, copie o valor do código fornecido (exemplo:
"0.AXYAh2yl…"
).Envie a solicitação de
POST
a seguir para o ponto de extremidade do token, substituindo<tenant-id>
pela ID do locatário e incluindo o cabeçalho indicado e os parâmetros do corpo do registro do aplicativo e o código copiado na etapa anterior.POST https://login.microsoftonline.com/<tenant-id>/oauth2/token HTTP/1.1
Cabeçalho
Content-Type: application/x-www-form-urlencoded
Corpo
grant_type: "authorization_code" client_id: <client-id> client_secret: <client-secret> redirect_uri: <redirect-url> code: <code> ## The code you copied in the previous step
No corpo da resposta, copie o valor do access_token fornecido (exemplo:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjZqQmZ1...
). Você passará esse valor na configuração de política na próxima etapa.
Etapa 6: Configurar a política de contexto de autorização para a API de back-end
Configure a política de contexto de autorização para a API de back-end que você deseja acessar em nome do usuário ou do grupo. Para fins de teste, você pode configurar a política usando o token de acesso do Microsoft Entra ID para o usuário obtido na seção anterior.
Entre no portal e vá para a instância do Gerenciamento de API.
No menu à esquerda, selecione APIs e selecione sua API de back-end do OAuth 2.0.
Selecione Todas as operações. Na seção Processamento de entrada, selecione o ícone (</>) (editor de código).
Configure a política de
get-authorization-context
na seçãoinbound
, definindoidentity-type
comojwt
:<policies> <inbound> [...] <get-authorization-context provider-id="<credential-provider-id>" authorization-id="<connection-id>" context-variable-name="auth-context" identity-type="jwt" identity="<access-token>" ignore-error="false" /> [...] </inbound> </policies>
Na definição de política anterior, substitua:
<credential-provider-id>
e<connection-id>
com os nomes do provedor de credenciais e da conexão, respectivamente, configurados em uma etapa anterior.<access-token>
com o token de acesso do Microsoft Entra ID gerado na etapa anterior.
Etapa 7: Testar a API
Na guia Testar, selecione uma operação que você configurou.
Selecione Enviar.
Uma resposta bem-sucedida retorna dados do usuário da API de back-end.
Conteúdo relacionado
- Saiba mais sobre as políticas de autenticação e autorização
- Saiba mais sobre escopos e permissões no Microsoft Entra ID.