Implementar a autenticação e a autorização nos Aplicativos de Contêiner do Azure
Os Aplicativos de Contêiner do Azure fornecem recursos internos de autenticação e autorização para proteger o aplicativo de contêiner habilitado para entrada externa com código mínimo ou sem código. O recurso de autenticação integrado para Aplicativos de Contêiner poderá economizar tempo e esforço fornecendo autenticação pronta para uso com provedores de identidade federados, permitindo que você se concentre no restante do aplicativo.
- Os Aplicativos de Contêiner do Azure fornecem acesso a vários provedores de autenticação internos.
- Os recursos de autenticação integrados não exigem nenhuma linguagem específica, SDK, experiência em segurança ou mesmo qualquer código que você precise gravar.
Esse recurso só deve ser usado com HTTPS. Verifique se allowInsecure
está desabilitado na configuração de entrada do seu aplicativo de contêiner. É possível configurar o aplicativo de contêiner para autenticação com ou sem restringir o acesso ao conteúdo e às APIs do seu site.
- Para restringir o acesso ao aplicativo somente a usuários autenticados, defina a configuração Restringir acesso como Exigir autenticação.
- Para autenticar, mas não restringir o acesso, defina a configuração Restringir acesso como Permitir acesso não autenticado.
Provedores de identidade
Os Aplicativos de Contêiner usam identidade federada, em que um provedor de identidade de terceiros gerencia as identidades do usuário e o fluxo de autenticação para você. Os provedores de identidade a seguir estão disponíveis por padrão:
Provedor | Ponto de extremidade de logon | Diretrizes |
---|---|---|
Plataforma de identidade da Microsoft | /.auth/login/aad |
Plataforma de identidade da Microsoft |
/.auth/login/facebook |
||
GitHub | /.auth/login/github |
GitHub |
/.auth/login/google |
||
X | /.auth/login/twitter |
X |
Qualquer provedor do OpenID Connect | /.auth/login/<providerName> |
OpenID Connect |
Ao usar um desses provedores, o ponto de extremidade de entrada ficará disponível para a autenticação de usuário e a validação de token de autenticação do provedor. Você poderá fornecer a seus usuários qualquer número dessas opções de provedor.
Arquitetura de recursos
O componente de middleware de autenticação e autorização é um recurso da plataforma que executa como um contêiner sidecar em cada réplica no aplicativo. Quando habilitado, cada solicitação HTTP recebida passará pela camada de segurança antes de ser manipulada pelo aplicativo.
O middleware de plataforma lida com várias coisas para seu aplicativo:
- Autentica usuários e clientes com os provedores de identidade especificados
- Gerencia a sessão autenticada
- Injeta informações de identidade em cabeçalhos da solicitação
O módulo de autenticação e autorização é executado em um contêiner separado, isolado do código do aplicativo. Como o contêiner de segurança não executa em processo, nenhuma integração direta com estruturas de linguagem específicas será possível. No entanto, as informações relevantes de que o aplicativo precisa são fornecidas nos cabeçalhos de solicitação.
Fluxo de autenticação
O fluxo de autenticação é o mesmo para todos os provedores, mas difere dependendo se você deseja entrar com o SDK do provedor:
Sem o SDK do provedor (fluxo direcionado pelo servidor ou fluxo de servidor): o aplicativo delega a entrada federada aos Aplicativos de Contêiner. A delegação é normalmente o caso de aplicativos de navegador, que apresentam a página de entrada do provedor ao usuário.
Com o SDK do provedor (fluxo direcionado pelo cliente ou fluxo de cliente): o aplicativo conecta os usuários ao provedor manualmente e, em seguida, envia o token de autenticação aos Aplicativos de Contêiner para validação. Essa abordagem é típica para aplicativos sem navegador que não apresentam a página de entrada do provedor ao usuário. Um exemplo é um aplicativo móvel nativo que conecta usuários usando o SDK do provedor.