Habilitar a autenticação e a autorização nos Aplicativos de Contêiner do Azure com o Microsoft Entra ID
Esse artigo mostra como configurar a autenticação para Aplicativos de Contêiner do Azure para que seu aplicativo assine usuários com a plataforma de identidade da Microsoft como provedor de autenticação.
O recurso de Autenticação de Aplicativos de Contêiner pode criar automaticamente um registro de aplicativo com a plataforma de identidade da Microsoft. Você também pode usar um registro que você ou um administrador de diretório crie separadamente.
Opção 1: Criar um registro de aplicativo automaticamente
Essa opção foi desenvolvida para simplificar a habilitação da autenticação e exige apenas algumas etapas.
Entre no portal do Azure e navegue até o seu aplicativo.
Selecione Autenticação no menu à esquerda. Selecione Adicionar provedor de identidade.
Selecione Microsoft na lista suspensa de provedores de identidade. A opção para criar um registro é selecionada por padrão. Você pode alterar o nome do registro ou os tipos de conta com suporte.
Um segredo do cliente é criado e armazenado como segredo no aplicativo contêiner.
Se você estiver configurando o primeiro provedor de identidade para esse aplicativo, será exibida uma seção Configurações de autenticação de Aplicativos de Contêiner. Caso contrário, você passa para a próxima etapa.
Essas opções determinam como o aplicativo responde a solicitações não autenticadas e como as seleções padrão redirecionam todas as solicitações para conectar esse novo provedor. Você poderá personalizar esse comportamento agora ou ajustar essas configurações posteriormente na tela principal Autenticação escolhendo Editar ao lado de Configurações de autenticação. Para saber mais sobre essas opções, confira Fluxo de autenticação.
(Opcional) Selecione Avançar: Permissões e adicione os escopos necessários ao aplicativo. Os escopos são adicionados ao registro de aplicativo, mas você também poderá alterá-los posteriormente.
Selecione Adicionar.
Agora você está pronto para usar a plataforma de identidade da Microsoft para autenticação em seu aplicativo. O provedor está listado na tela Autenticação. A partir daí, você pode editar ou excluir essa configuração de provedor.
Opção 2: Usar um registro existente criado separadamente
Você também pode registrar manualmente seu aplicativo no plataforma de identidade da Microsoft, personalizar o registro e configurar a Autenticação de Aplicativos de Contêiner com os detalhes do registro. Essa abordagem é útil quando pretende utilizar um registo de aplicação de um inquilino Microsoft Entra diferente daquele em que a sua aplicação está definida.
Crie um registro de aplicativo no Microsoft Entra ID para seu aplicativo de contêiner
Primeiro, você cria o registro do seu aplicativo. Ao fazer isso, colete as seguintes informações necessárias posteriormente ao configurar a autenticação no aplicativo contêiner:
- ID do Cliente
- ID do locatário
- Segredo do cliente (opcional)
- URI da ID de Aplicativo
Para registrar o aplicativo, siga estas etapas:
- Entre no portal do Azure.
- Pesquise e selecione Aplicativos de Contêiner e, em seguida, selecione seu aplicativo. Na página Visão geral, anote a URL do Aplicativo do seu aplicativo. Você o usa para configurar o registro do aplicativo Microsoft Entra.
- Selecione Início para retornar ao menu principal do portal. Procure e selecione o Microsoft Entra ID.
- Na página Visão geral, selecione Adicionar e, em seguida, selecione Registro de aplicativo.
Na página Registrar um aplicativo, insira um Nome para o registro do seu aplicativo.
Em URI de Redirecionamento, selecione Web e insira o seguinte. Substitua
\<APP_URL\>
pela URL do aplicativo que você anotou anteriormente.<APP_URL>/.auth/login/aad/callback
.Por exemplo:
https://<CONTAINER_APP_NAME>.<ENVIRONMENT_UNIQUE_ID>.<REGION_NAME>.azurecontainerapps.io/.auth/login/aad/callback
.Em Concessão implícita e fluxos híbridos, habilite Tokens de ID para permitir logons de usuários do OpenID Connect de Aplicativos de Contêiner.
Selecione Registrar.
- Acesse o novo registro de aplicativo.
- Na página Visão geral, copie a ID do aplicativo (cliente) e a ID do diretório (locatário) para uso posterior.
- (Opcional) Se você não adicionou o URI de redirecionamento ao registro do aplicativo anteriormente, poderá fazê-lo agora.
Em Gerenciado, selecione Autenticação.
Na página Autenticação, em Configurações da plataforma, selecione Adicionar uma plataforma.
Em Configurar plataformas, selecione Web.
Em Configurar Web, em URIs de redirecionamento, insira o seguinte. Substitua
\<APP_URL\>
pela URL do aplicativo que você anotou anteriormente.<APP_URL>/.auth/login/aad/callback
.Por exemplo:
https://<CONTAINER_APP_NAME>.<HOSTNAME>.<LOCATION>.azurecontainerapps.io/.auth/login/aad/callback
.Selecione Configurar.
- (Opcional) Em Gerenciar, selecione Identidade visual e propriedades. Em URL da página inicial, insira a URL do seu aplicativo de contêiner e selecione Salvar.
- Em Gerenciar, selecione Expor uma API.
Selecione Adicionar ao lado do URI da ID do Aplicativo.
O URI da ID do aplicativo identifica exclusivamente seu aplicativo quando ele é usado como um recurso, o que permite que os tokens solicitados concedam acesso. O valor também é usado como um prefixo para os escopos que você cria.
Para um aplicativo de locatário único, é possível usar o valor padrão que está no formato
api://<APPLICATION_CLIENT_ID>
. Você também pode especificar um URI mais acessível comohttps://contoso.com/api
com base em um dos domínios verificados para seu locatário. Para um aplicativo multilocatário, você deve fornecer um URI personalizado. Para saber mais sobre formatos aceitos para URIs de ID do Aplicativo, confira a referência de práticas recomendadas de registros de aplicativo.O valor é salvo automaticamente.
Selecione Adicionar um escopo.
Em Adicionar um escopo, o URI da ID do Aplicativo é o valor definido em uma etapa anterior.
Selecione Salvar e continuar.
Em Nome do escopo, digite user_impersonation.
Insira o Nome de exibição do consentimento do administrador e a Descrição do consentimento do administrador que você deseja que os administradores vejam na página de consentimento. Um exemplo de nome de exibição de consentimento é Acessar <nome do aplicativo>.
Selecione Adicionar escopo.
- Em Gerenciar, selecione Certificados e segredos.
- Na página Certificados e segredos, selecione Segredos do cliente.
- Selecione Novo segredo do cliente.
- Insira uma Descrição e selecione quando o segredo Expira.
- Selecione Adicionar.
- Copie o valor do segredo do cliente mostrado na página, pois o site não o mostrará novamente.
Habilite o Microsoft Entra ID em seu aplicativo de contêiner
Entre no portal do Azure e navegue até o seu aplicativo.
Selecione Autenticação no menu à esquerda. Selecione Adicionar provedor de identidade.
Selecione Microsoft na lista suspensa de provedores de identidade.
Para Tipo de registro de aplicativo, você pode escolher Escolha um registro de aplicativo existente neste diretório que reúne automaticamente as informações necessárias do aplicativo. Se o registro for de outro locatário ou você não tiver permissão para exibir o objeto de registro, escolha Fornecer os detalhes de um registro de aplicativo existente. Para essa opção, você precisa preencher os seguintes detalhes de configuração:
Aviso
Sempre que possível, evite usar o fluxo de concessão implícita. Na maioria dos cenários, alternativas mais seguras estão disponíveis e são recomendadas. Algumas configurações desse fluxo exigem um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros fluxos. Use-o somente quando outros fluxos mais seguros não forem viáveis. Para obter mais informações, consulte as preocupações de segurança com o fluxo de concessão implícito.
Campo Descrição ID do aplicativo (cliente) Use a ID do aplicativo (cliente) do registro do aplicativo. Segredo do cliente Use o segredo do cliente gerado no registro do aplicativo. Os segredos do cliente usam o fluxo híbrido e o aplicativo retorna tokens de acesso e de atualização. Quando o segredo do cliente não está definido, o fluxo implícito é usado e somente um token de ID é retornado. O provedor envia os tokens e eles são armazenados no armazenamento de tokens EasyAuth. URL do emissor Use <authentication-endpoint>/<TENANT-ID>/v2.0
e substitua <authentication-endpoint> pelo ponto de extremidade de autenticação para seu ambiente de nuvem (por exemplo, "https://login.microsoftonline.com" para o Azure global), substituindo também <TENANT-ID> pela ID do Diretório (locatário) no qual o registro do aplicativo foi criado. Esse valor é usado para redirecionar os usuários para o locatário Microsoft Entra correto e para baixar os metadados apropriados para determinar as chaves de assinatura de token apropriadas e o valor de declaração do emissor de token, por exemplo. Para aplicativos que usam o Azure AD v1, omita/v2.0
na URL.Audiências de token permitidas A ID do Aplicativo (cliente) configurada é sempre implicitamente considerada uma audiência permitida. Se esse valor se referir a um aplicativo na nuvem ou de servidor e você quiser aceitar tokens de autenticação de um aplicativo de contêiner de cliente (o token de autenticação poderá ser recuperado no cabeçalho X-MS-TOKEN-AAD-ID-TOKEN
), adicione aqui a ID do Aplicativo (cliente) do aplicativo cliente.O segredo do cliente é armazenado como segredos no seu aplicativo contêiner.
Se esse for o primeiro provedor de identidade configurado para o aplicativo, você também receberá uma seção Configurações de autenticação de Aplicativos de Contêiner. Caso contrário, você passa para a próxima etapa.
Essas opções determinam como o aplicativo responde a solicitações não autenticadas e como as seleções padrão redirecionarão todas as solicitações para conectar esse novo provedor. Você pode alterar e personalizar esse comportamento agora ou ajustar essas configurações posteriormente na tela principal de Autenticação escolhendo Editar ao lado de Configurações de autenticação. Para saber mais sobre essas opções, confira Fluxo de autenticação.
Selecione Adicionar.
Agora você está pronto para usar a plataforma de identidade da Microsoft para autenticação em seu aplicativo. O provedor está listado na tela Autenticação. A partir daí, você pode editar ou excluir essa configuração de provedor.
Configurar aplicativos cliente para acessar o aplicativo de contêiner
Na seção anterior, você registrou seu aplicativo de contêiner para autenticar usuários. Nessa seção, você registra aplicativos nativos de cliente ou daemon. Eles podem então solicitar acesso às APIs expostas pelo seu aplicativo contêiner em nome dos usuários ou deles próprios. Se você quiser apenas autenticar usuários, não será necessário concluir as etapas desta seção.
Aplicativo cliente nativo
Você pode registrar clientes nativos para solicitar acesso às APIs do aplicativo de contêiner em nome de um usuário conectado.
No portal do Azure, selecione Microsoft Entra ID>Adicionar>Registros de aplicativo.
Na página Registrar um aplicativo, insira um Nome para o registro do seu aplicativo.
Em URI de redirecionamento, selecione Cliente público (móvel e área de trabalho) e digite a URL
<app-url>/.auth/login/aad/callback
. Por exemplo,https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
.Observação
Para um aplicativo da Microsoft Store, use o SID de pacote como o URI.
Selecione Criar.
Depois que o registro do aplicativo for criado, copie o valor da ID do aplicativo (cliente) .
Selecione Permissões de API>Adicionar uma permissão>Minhas APIs.
Selecione o registro de aplicativo que você criou anteriormente para o aplicativo de contêiner. Se você não vir o registro do aplicativo, certifique-se de ter adicionado o escopo user_impersonation em Criar um registro de aplicativo no Microsoft Entra ID para seu aplicativo de contêiner.
Em Permissões delegadas, selecione user_impersonation e, em seguida, Adicionar permissões.
Nessa seção, você configurou um aplicativo cliente nativo que pode solicitar acesso ao seu aplicativo contêiner em nome de um usuário.
Aplicativo cliente daemon (chamadas de serviço a serviço)
O aplicativo pode adquirir um token para chamar uma API Web hospedada no aplicativo de contêiner em nome de si mesmo (não em nome de um usuário). Esse cenário é útil para aplicativos daemon não interativos que executam tarefas sem um usuário conectado. Ele usa a concessão das credenciais de cliente padrão do OAuth 2.0.
- No portal do Azure, selecione Microsoft Entra ID>Adicionar>Registros de aplicativo.
- Na página Registrar um aplicativo, insira um Nome para o registro do aplicativo daemon.
- Em um aplicativo daemon, você não precisa de um URI de redirecionamento para que possa mantê-lo vazio.
- Selecione Criar.
- Depois que o registro do aplicativo for criado, copie o valor da ID do aplicativo (cliente) .
- Selecione Certificados e segredos>Novo segredo do cliente>Adicionar. Copie o valor do segredo do cliente mostrado na página. Ela não será mostrada novamente.
Agora você pode solicitar um token de acesso usando a ID e o segredo do cliente, definindo o parâmetro resource
como o URI da ID do aplicativo de destino. O token de acesso resultante pode então ser apresentado ao aplicativo de destino usando o cabeçalho de autorização OAuth 2.0 padrão, e a autenticação/autorização de Aplicativos de Contêiner valida e usa o token normalmente para indicar que o chamador (um aplicativo nesse caso, não um usuário ) é autenticado.
Esse processo permite que qualquer aplicativo cliente em seu locatário do Microsoft Entra solicite um token de acesso e se autentique no aplicativo de destino. Se você também quiser impor autorização para permitir apenas determinados aplicativos cliente, será necessário ajustar a configuração.
- Defina uma Função de Aplicativo no manifesto do registro do aplicativo que representa o aplicativo de contêiner que você quer proteger.
- No registro do aplicativo representando o cliente que precisa ser autorizado, selecione Permissões da API>Adicionar uma permissão>Minhas APIs.
- Selecione o registro de aplicativo que você criou anteriormente. Se você não vir o registro do aplicativo, verifique se adicionou uma Função de Aplicativo.
- Em Permissões de aplicativo, selecione a Função de Aplicativo que você criou anteriormente e, em seguida, selecione Adicionar permissões.
- Selecione Conceder consentimento de administração para autorizar o aplicativo cliente a solicitar a permissão.
- Semelhante ao cenário anterior (antes de quaisquer funções serem adicionadas), agora você pode solicitar um token de acesso para o mesmo destino
resource
, e o token de acesso inclui umaroles
declaração contendo as funções do aplicativo que foram autorizadas para o aplicativo cliente. - No código de Aplicativos de Contêiner de destino, valide se as funções esperadas estão presentes no token. A camada de autenticação do Aplicativos de Contêiner não executa as etapas de validação. Para mais informações, consulte Acessar declarações de usuário.
Nessa seção, você configurou um aplicativo cliente daemon que pode acessar seu aplicativo contêiner usando sua própria identidade.
Trabalhar com usuários autenticados
Use os guias a seguir para obter mais detalhes sobre como trabalhar com usuários autenticados.