Habilitar autenticação e autorização em Aplicativos de Contêiner do Azure com a ID do Microsoft Entra
Este artigo mostra como configurar a autenticação para Aplicativos de Contêiner do Azure para que seu aplicativo entre em usuários com a plataforma de identidade da Microsoft como o provedor de autenticação.
O recurso 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 cria separadamente.
Opção 1: Criar um novo registro de aplicativo automaticamente
Esta opção foi concebida para simplificar a ativação da autenticação e requer apenas alguns passos.
Entre no portal do Azure e navegue até seu aplicativo.
Selecione Autenticação no menu à esquerda. Selecione Adicionar provedor de identidade.
Selecione Microsoft na lista suspensa do provedor de identidade. A opção para criar um novo registo é selecionada por predefinição. Pode alterar o nome do registo ou os tipos de conta suportados.
Um segredo do cliente é criado e armazenado como um segredo no aplicativo de contêiner.
Se você estiver configurando o primeiro provedor de identidade para este aplicativo, será solicitada uma seção de configurações de autenticação de Aplicativos de Contêiner. Caso contrário, passe para a próxima etapa.
Essas opções determinam como seu aplicativo responde a solicitações não autenticadas e as seleções padrão redirecionam todas as solicitações para entrar com esse novo provedor. Você pode 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, consulte Fluxo de autenticação.
(Opcional) Selecione Avançar: Permissões e adicione os escopos necessários para o aplicativo. Os escopos são adicionados ao registro do aplicativo, mas você também pode alterá-los mais tarde.
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 do provedor.
Opção 2: Usar um registro existente criado separadamente
Você também pode registrar manualmente seu aplicativo para a plataforma de identidade da Microsoft, personalizar o registro e configurar a Autenticação de Aplicativos de Contêiner com os detalhes de registro. Essa abordagem é útil quando você deseja usar um registro de aplicativo de um locatário diferente do Microsoft Entra diferente daquele no qual seu aplicativo está definido.
Criar um registro de aplicativo no Microsoft Entra ID para seu aplicativo de contêiner
Primeiro, você cria seu registro de aplicativo. Ao fazer isso, colete as seguintes informações de que precisará mais tarde ao configurar a autenticação no aplicativo de contêiner:
- ID de Cliente
- ID de Inquilino do
- Segredo do cliente (opcional)
- URI da ID do aplicativo
Para registrar o aplicativo, execute as seguintes etapas:
- Inicie sessão no portal do Azure.
- Procure 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 voltar ao menu principal do portal. Procure e selecione Microsoft Entra ID.
- Na página Descrição Geral, selecione Adicionar e, em seguida, selecione Registo da aplicação.
Na página Registar uma aplicação, introduza um Nome para o registo da sua aplicação.
Em Redirecionar URI, selecione Web e digite o seguinte. Substitua
\<APP_URL\>
pelo 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 entradas de usuário do OpenID Connect a partir de Aplicativos de Contêiner.
Selecione Registar.
- Navegue até o novo registro do aplicativo.
- Na página Visão geral, copie a ID do aplicativo (cliente) e a ID do diretório (locatário) para mais tarde.
- (Opcional) Se você não adicionou o URI de redirecionamento ao registro do aplicativo anteriormente, pode 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 Redirecionar URIs, insira o seguinte. Substitua
\<APP_URL\>
pelo 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 Propriedades de identidade visual e outras. 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 de URI da ID do aplicativo.
O URI de 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 escopos que você cria.
Para um aplicativo de locatário único, você pode usar o valor padrão, que está no formato
api://<APPLICATION_CLIENT_ID>
. Você também pode especificar um URI mais legí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 os formatos aceitos para URIs de ID de aplicativo, consulte a referência de práticas recomendadas de registros de aplicativos.O valor é salvo automaticamente.
Selecione Adicionar âmbito.
Em Adicionar um escopo, o URI da ID do Aplicativo é o valor definido em uma etapa anterior.
Selecione Guardar e continuar.
Em Nome do escopo, digite user_impersonation.
Introduza o nome de apresentação do consentimento do administrador e a descrição do consentimento do administrador que pretende que os administradores vejam na página do consentimento. Um exemplo de nome de exibição de consentimento é Access application-name>.<
Selecione Adicionar escopo.
- Em Gerenciar, selecione Certificados & segredos.
- Na página Certificados & 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 secreto 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é seu aplicativo.
Selecione Autenticação no menu à esquerda. Selecione Adicionar provedor de identidade.
Selecione Microsoft na lista suspensa do provedor de identidade.
Para o tipo de registro de aplicativo, você pode optar por Escolher um registro de aplicativo existente neste diretório que reúne automaticamente as informações necessárias do aplicativo. Se o seu registo for de outro inquilino ou não tiver permissão para ver o objeto de registo, selecione Fornecer os detalhes de um registo de aplicação existente. Para esta opção, você precisa preencher os seguintes detalhes de configuração:
Aviso
Sempre que possível, evite usar o fluxo de concessão implícito. Na maioria dos cenários, alternativas mais seguras estão disponíveis e são recomendadas. Certas configurações desse fluxo exigem um grau muito alto de confiança no aplicativo e acarretam riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo 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 da aplicação (cliente) Use a ID do aplicativo (cliente) do registro do aplicativo. Segredo do Cliente Use o segredo do cliente que você gerou no registro do aplicativo. Os segredos do cliente usam fluxo híbrido e o aplicativo retorna tokens de acesso e atualização. Quando o segredo do cliente não é definido, o fluxo implícito é usado e apenas um token de ID é retornado. O provedor envia os tokens e eles são armazenados na loja de tokens EasyAuth. URL do emissor Use <authentication-endpoint>/<TENANT-ID>/v2.0
e substitua <authentication-endpoint> pelo endpoint de autenticação para seu ambiente de nuvem (por exemplo, ";https://login.microsoftonline.com" para o Azure global), substituindo também TENANT-ID> pelo Directory (tenant) ID no qual o registro do aplicativo foi criado.< Esse valor é usado para redirecionar os usuários para o locatário correto do Microsoft Entra 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.Públicos de token permitidos O ID do aplicativo (cliente) configurado é sempre implicitamente considerado como um público permitido. Se esse valor se referir a um aplicativo de nuvem ou servidor e você quiser aceitar tokens de autenticação de um aplicativo de contêiner cliente (o token de autenticação pode ser recuperado no X-MS-TOKEN-AAD-ID-TOKEN
cabeçalho), adicione a ID do aplicativo cliente aqui.O segredo do cliente é armazenado como segredos em seu aplicativo de contêiner.
Se este for o primeiro provedor de identidade configurado para o aplicativo, você também será solicitado com uma seção de configurações de autenticação de Aplicativos de Contêiner. Caso contrário, passe para a próxima etapa.
Essas opções determinam como seu aplicativo responde a solicitações não autenticadas, e as seleções padrão redirecionarão todas as solicitações para entrar com esse novo provedor. Você pode alterar 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, consulte 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 do provedor.
Configurar aplicativos cliente para acessar seu aplicativo de contêiner
Na seção anterior, você registrou seu aplicativo de contêiner para autenticar usuários. Nesta seção, você registra aplicativos nativos do cliente ou daemon. Em seguida, eles podem solicitar acesso às APIs expostas pelo seu aplicativo de contêiner em nome dos usuários ou deles mesmos. Concluir as etapas nesta seção não é necessário se você deseja apenas autenticar usuários.
Aplicativo cliente nativo
Você pode registrar clientes nativos para solicitar acesso às APIs do seu 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 Registar uma aplicação, introduza um Nome para o registo da sua aplicação.
Em Redirecionar URI, selecione Cliente público (mobile & desktop) e digite a URL
<app-url>/.auth/login/aad/callback
. Por exemplo,https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
.Nota
Para um aplicativo da Microsoft Store, use o SID do 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 do aplicativo que você criou anteriormente para seu aplicativo de contêiner. Se não vir o registo da aplicação, certifique-se de que adicionou o âmbito user_impersonation em Criar um registo de aplicação no Microsoft Entra ID para a sua aplicação de contentor.
Em Permissões delegadas, selecione user_impersonation e, em seguida, selecione Adicionar permissões.
Nesta seção, você configurou um aplicativo cliente nativo que pode solicitar acesso ao seu aplicativo de contêiner em nome de um usuário.
Aplicativo cliente Daemon (chamadas serviço-a-serviço)
Seu aplicativo pode adquirir um token para chamar uma API Web hospedada em seu aplicativo de contêiner em nome de si mesmo (não em nome de um usuário). Este cenário é útil para aplicativos daemon não interativos que executam tarefas sem um usuário conectado. Ele usa a concessão de credenciais de cliente OAuth 2.0 padrão.
- 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 daemon.
- Para um aplicativo daemon, você não precisa de um URI de redirecionamento para poder mantê-lo vazio.
- Selecione Criar.
- Depois que o registro do aplicativo for criado, copie o valor da ID do aplicativo (cliente).
- Selecione Certificados & segredos Novo segredo>do>cliente Adicionar. Copie o valor secreto do cliente mostrado na página. Não é mostrado novamente.
Agora você pode solicitar um token de acesso usando a ID do cliente e o segredo do cliente definindo o resource
parâmetro como o URI da ID do aplicativo de destino. O token de acesso resultante pode 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 como de costume para indicar que o chamador (um aplicativo, neste caso, não um usuário) está 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 a autorização para permitir apenas determinados aplicativos cliente, deverá 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ê deseja proteger.
- No registro do aplicativo que representa o cliente que precisa ser autorizado, selecione Permissões>de API Adicionar uma permissão>Minhas APIs.
- Selecione o registro do aplicativo que você criou anteriormente. Se não vir o registo da aplicação, certifique-se de que adiciona uma Função de Aplicação.
- Em Permissões de aplicativo, selecione a Função de Aplicativo criada anteriormente e selecione Adicionar permissões.
- Certifique-se de selecionar Conceder consentimento de administrador 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 de Aplicativo que foram autorizadas para o aplicativo cliente. - Dentro do código de Aplicativos de Contêiner de destino, as funções esperadas de validação agora estão presentes no token. A camada de autenticação de aplicativos de contêiner não executa as etapas de validação. Para obter mais informações, consulte Acessar declarações de usuário.
Nesta seção, você configurou um aplicativo cliente daemon que pode acessar seu aplicativo de contêiner usando sua própria identidade.
Trabalhando com usuários autenticados
Use os guias a seguir para obter detalhes sobre como trabalhar com usuários autenticados.
- Personalizar o início de sessão e terminar sessão
- Acessar declarações de usuário no código do aplicativo