Visão geral das extensões de autenticação personalizadas
Este artigo fornece uma visão geral técnica de alto nível das extensões de autenticação personalizadas para o Microsoft Entra ID. As extensões de autenticação personalizadas permitem personalizar a experiência de autenticação do Microsoft Entra integrando-se com sistemas externos.
O diagrama a seguir mostra o fluxo de entrada integrado a uma extensão de autenticação personalizada.
- Um utilizador tenta iniciar sessão numa aplicação e é redirecionado para a página de início de sessão do Microsoft Entra.
- Quando um usuário conclui uma determinada etapa na autenticação, um ouvinte de eventos é acionado.
- Sua extensão de autenticação personalizada envia uma solicitação HTTP para seu ponto de extremidade da API REST. A solicitação contém informações sobre o evento, o perfil de usuário, dados da sessão e outras informações de contexto.
- A API REST executa um fluxo de trabalho personalizado.
- A API REST retorna uma resposta HTTP para o Microsoft Entra ID.
- A extensão de autenticação personalizada do Microsoft Entra processa a resposta e personaliza a autenticação com base no tipo de evento e na carga útil da resposta HTTP.
- Um token é retornado ao aplicativo.
Ponto de extremidade da API REST da extensão de autenticação personalizada
Quando um evento é acionado, o Microsoft Entra ID chama um ponto de extremidade da API REST de sua propriedade. A solicitação para a API REST contém informações sobre o evento, o perfil de usuário, dados de solicitação de autenticação e outras informações de contexto.
Você pode usar qualquer linguagem de programação, estrutura e ambiente de hospedagem para criar e hospedar suas extensões de autenticação personalizadas API REST. Para uma maneira rápida de começar, use uma Função do Azure em C#. O Azure Functions permite executar seu código em um ambiente sem servidor sem precisar primeiro criar uma máquina virtual (VM) ou publicar um aplicativo Web.
Sua API REST deve lidar:
- Validação de token para proteger as chamadas da API REST.
- Lógica de negócio
- Validação de entrada e saída de esquemas de solicitação e resposta HTTP.
- Auditoria e registo.
- Controles de disponibilidade, desempenho e segurança.
Para desenvolvedores que executam a API REST no Azure Functions, considere usar a biblioteca NuGet Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents, que ajuda na implementação da validação de token usando os recursos internos de autenticação do Microsoft Azure. Ele fornece um modelo de dados para diferentes tipos de eventos, inicia o processamento de solicitações e respostas de entrada e saída, para que mais foco possa ser colocado na lógica de negócios.
Proteja sua API REST
Para garantir que as comunicações entre a extensão de autenticação personalizada e sua API REST sejam protegidas adequadamente, vários controles de segurança devem ser aplicados.
- Quando a extensão de autenticação personalizada chama sua API REST, ela envia um cabeçalho HTTP
Authorization
com um token de portador emitido pelo Microsoft Entra ID. - O token ao portador contém uma
appid
ouazp
reivindicação. Valide se a respetiva declaração contém o99045fe1-7639-4a75-9d4a-577b6ca3810f
valor. Esse valor garante que a ID do Microsoft Entra seja aquela que chama a API REST.- Para Aplicações V1 , valide a
appid
declaração. - Para Aplicações V2 , valide a
azp
declaração.
- Para Aplicações V1 , valide a
- A declaração de audiência do token
aud
portador contém a ID do registro do aplicativo associado. Seu endpoint da API REST precisa validar se o token de portador foi emitido para esse público específico. - A declaração do emissor do token
iss
ao portador contém a URL do emissor do Microsoft Entra. Dependendo da configuração do seu inquilino, o URL do emissor será um dos seguintes;- Mão de obra:
https://login.microsoftonline.com/{tenantId}/v2.0
. - Cliente:
https://{domainName}.ciamlogin.com/{tenantId}/v2.0
.
- Mão de obra:
Provedor de declarações personalizado
Um provedor de declarações personalizado é um tipo de extensão de autenticação personalizada que chama uma API REST para buscar declarações de sistemas externos. Um provedor de declarações personalizado mapeia declarações de sistemas externos em tokens e pode ser atribuído a um ou vários aplicativos em seu diretório.
Saiba mais sobre fornecedores de declarações personalizadas.
Iniciar e enviar eventos da coleção de atributos
Os eventos de início e envio da coleção de atributos podem ser usados com extensões de autenticação personalizadas para adicionar lógica antes e depois que os atributos são coletados de um usuário. Por exemplo, você pode adicionar um fluxo de trabalho para validar os atributos que um usuário insere durante a inscrição. O evento OnAttributeCollectionStart ocorre no início da etapa de coleta de atributos, antes da renderização da página de coleção de atributos. Ele permite que você adicione ações como pré-preenchimento de valores e exibição de um erro de bloqueio. O evento OnAttributeCollectionSubmit é acionado depois que o usuário insere e envia atributos, permitindo que você adicione ações como validar entradas ou modificar atributos.
Nota
Os eventos de início e envio da coleção de atributos estão atualmente disponíveis apenas para fluxos de usuários no Microsoft Entra External ID em locatários externos. Para obter detalhes, consulte Adicionar sua própria lógica de negócios.
Evento de envio de código de acesso único
O evento OnOtpSend é acionado quando um e-mail contendo uma senha única é enviado. Ele permite que você chame uma API REST para usar seu próprio provedor de e-mail. Esse evento pode ser usado para enviar e-mails personalizados para usuários que se inscrevem, redefinir sua senha, entrar com e-mail e senha de uso único ou autenticação multifator de e-mail (MFA).
Quando o evento OnOtpSend é ativado, o Microsoft Entra envia uma senha única para a API REST especificada que você possui. Em seguida, a API REST usa seu provedor de email escolhido, como o Serviço de Comunicação do Azure ou o SendGrid, para enviar a senha única com seu modelo de email personalizado, de endereço e assunto de email, além de oferecer suporte à localização.
Nota
O evento de envio de código de acesso único está atualmente disponível apenas para fluxos de utilizadores no Microsoft Entra External ID em locatários externos. Para obter detalhes, consulte Configurar um provedor de email personalizado para eventos de envio de senha única
Conteúdo relacionado
- Saiba mais sobre provedores de declarações personalizados
- Criar extensões de autenticação personalizadas para iniciar e enviar eventos de coleta de atributos com um aplicativo OpenID Connect de exemplo
- Configure um provedor de email personalizado para enviar eventos de senha única