Configure o Serviço de Aplicativo ou o aplicativo do Azure Functions para fazer logon usando um provedor do OpenID Connect
Este artigo mostra como configurar o Serviço de Aplicativo do Azure ou o Azure Functions para usar um provedor de autenticação personalizado que cumpre a especificação do OpenID Connect. OIDC (OpenID Connect) é um padrão do setor usado por muitos IPDs (provedores de identidade). Não é necessário entender os detalhes da especificação para configurar o aplicativo para usar um IDP aderente.
Você pode configurar o aplicativo para usar um ou mais provedores de OIDC. Cada um deve receber um nome alfanumérico exclusivo na configuração e apenas um pode servir como o destino de redirecionamento padrão.
Registrar o aplicativo no provedor de identidade
O provedor exigirá que você registre os detalhes do seu aplicativo. Uma dessas etapas envolve a especificação de um URI de redirecionamento. Esse URI de redirecionamento será do formulário <app-url>/.auth/login/<provider-name>/callback
. Cada provedor de identidade deve fornecer mais instruções sobre como concluir essas etapas. <provider-name>
se refere ao nome amigável que você atribui ao nome do provedor OpenID no Azure.
Observação
Alguns provedores podem exigir etapas adicionais para a configuração e para o uso dos valores que eles informam. Por exemplo, a Apple fornece uma chave privada que não é utilizada como o segredo do cliente OIDC e, em vez disso, você deve utilizá-la para criar um JWT que é tratado como o segredo que você fornece na configuração do aplicativo (consulte a seção "Criando o segredo do cliente" da documentação Entrar com a Apple )
Você precisará coletar uma ID do cliente e o segredo do cliente para o aplicativo.
Importante
O segredo do cliente é uma credencial de segurança importante. Não compartilhe essa senha com ninguém nem distribua-a em um aplicativo cliente.
Além disso, serão necessários os metadados do OpenID Connect para o provedor. Geralmente, eles são expostos por meio de um documento de metadados de configuração, que é o URL de emissor do provedor com o sufixo /.well-known/openid-configuration
. Obtenha esse URL de configuração.
Se você não conseguir usar um documento de metadados de configuração, será necessário reunir os seguintes valores separadamente:
- O URL do emissor (às vezes, exibido como
issuer
) - O ponto de extremidade da autorização do OAuth 2.0 (às vezes, exibido como
authorization_endpoint
) - O ponto de extremidade de token do OAuth 2.0 (às vezes, exibido como
token_endpoint
) - O URL do documento do Conjunto de Chaves Web JSON do OAuth 2.0 (às vezes, exibido como
jwks_uri
)
Adicione informações do provedor ao seu aplicativo
- Entre no portal do Azure e navegue até o seu aplicativo.
- Selecione Autenticação no menu à esquerda. Selecione Adicionar provedor de identidade.
- Selecione OpenID Connect no menu suspenso Provedores de Identidade.
- Forneça o nome alfanumérico exclusivo selecionado anteriormente para o nome do provedor OpenID.
- Se você tem a URL do documento de metadados a partir do provedor de identidade, forneça esse valor para URL de metadados. Caso contrário, selecione a opção Fornecer pontos de extremidade separadamente e coloque cada URL coletada do provedor de identidade no campo apropriado.
- Forneça o ID do cliente coletado anteriormente e Segredo do cliente nos campos apropriados.
- Especifique um nome de configuração de aplicativo para o segredo do cliente. O segredo do cliente será armazenado como uma configuração de aplicativo para garantir que os segredos sejam armazenados de maneira segura. Você poderá atualizar essa configuração posteriormente para usar referências do Key Vault se quiser gerenciar o segredo no Azure Key Vault.
- Pressione o botão Adicionar para terminar de configurar o provedor de identidade.
Observação
O nome do provedor OpenID não pode conter símbolos como "-" porque um appsetting será criado com base nele e não dá suporte. Em vez disso, use "_".
Observação
O Azure requer escopos "openid", "perfil" e "email". Verifique se você configurou o Registro do Aplicativo em seu Provedor de ID com pelo menos esses escopos.