Validar atributos coletados durante a inscrição
Exercício - Validar atributos coletados durante a inscrição
A extensão de autenticação customizada suporta o evento ao enviar de coleta de atributos. Esse evento permite realizar a validação dos atributos coletados do usuário durante a inscrição. Para nosso site de compras, validaremos o nome Cidade em uma lista de países compilada na API REST da extensão de autenticação personalizada. Além disso, se a cidade contiver block, o Microsoft Entra External ID mostrará uma página de bloqueio. Se a cidade contiver modificar, o ID externo do Microsoft Entra modificará alguns dos atributos (nome de exibição e cidade.)
Observação
Você precisará, pelo menos, da função de diretório Administrador de Extensibilidade de Autenticação para configurar a validação de atributos coletados durante a inscrição.
Essa função é uma função privilegiada. Leia sobre as melhores práticas para trabalhar com funções privilegiadas.
Você tem comentários? Conte-nos como está indo seu projeto de prova de conceito. Gostaríamos muito de ouvir de você!
Dica
Você também pode ver um exemplo de API Web .NET C# que demonstra como usar a extensão de autenticação personalizada do Microsoft Entra External ID para vários eventos aqui.
Comece registrando uma extensão de autenticação personalizada usada pelo Microsoft Entra External ID para chamar sua API REST. A extensão de autenticação customizada contém informações sobre o ponto de Extremidade de API da API REST, a ação de início da coleta de atributos que ela analisa na API REST e como autenticar na API REST. Entre no Centro de administração do Microsoft Entra e navegue até Azure Active Directory para Identidade Externas>Extensões de autenticação personalizadas. Observe que você também pode navegar até Aplicativos>Aplicativos corporativos>Extensões de autenticação personalizadas. Em seguida, selecione Criar uma extensão personalizada.
Em Básico, selecione o evento AttributeCollectionSubmit e depois selecione Próximo.
Em Configuração do ponto de extremidade, preencha as seguintes propriedades:
Nome - Um nome para sua extensão de autenticação personalizada, por exemplo, Validar entrada do usuário de inscrição.
URL de destino – O URL da sua API REST.
Timeout em milissegundos - O número máximo de novas tentativas que o Ponto de extremidade da API será chamado em caso de falha. Se estiver vazio, esse valor será padronizado para o padrão do serviço.
Máximo de Tentativas - O número máximo de tentativas que o ponto de extremidade da API será chamado em caso de falha. Se estiver vazio, esse valor será padronizado para o padrão do serviço.
Descrição – uma descrição para suas extensões de autenticação personalizadas. Para continuar, selecione Avançar.
Para garantir que a comunicação entre a extensão de autenticação customizada e sua API REST seja protegida adequadamente, vários controles de segurança devem ser aplicados. A primeira etapa é criar ou escolher um aplicativo usado pelo Microsoft Entra External ID. Ele usa o fluxo de concessão de credenciais do cliente OAuth 2.0 para proteger a chamada para o ponto de Extremidade da API.
Se essa for sua primeira extensão de autenticação personalizada, veja como configuramos nosso evento TokenIssuanceStart. Como já configuramos uma extensão de autenticação personalizada, em Autenticação API, escolha a opção Selecione um registro de aplicativo existente nesse diretório.
Selecione o aplicativo que você configurou para as outras extensões de autenticação personalizadas e escolha Selecionar.
Revise sua configuração e selecione Criar, que registra a extensão de autenticação personalizada que você configurou e o registro de aplicativo associado que você selecionou.
Nesse ponto, a extensão de autenticação personalizada está configurada no seu locatário, mas não é utilizada em nenhuma das páginas de inscrição. Em seguida, você associará a extensão de autenticação personalizada a um ou mais fluxos de usuário. Para fazer isso, navegue até Identidade>Azure Active Directory para Identidade Externas>Fluxos de usuário. Em seguida, selecione o fluxo do usuário na lista.
No menu, selecione Extensões de autenticação personalizadas. Para associar sua extensão de autenticação personalizada, selecione o evento Antes de coletar informações do usuário.
As extensões customizadas configuradas para o evento OnAttributeCollectionStart serão exibidas. Selecione um deles para o evento de início de coleta de atributos e escolha Selecione para salvar as alterações.
Bom trabalho! Você criou uma extensão de autenticação personalizada do tipo OnAttributeCollectionSubmit e associou-a ao seu fluxo de usuário.
1. Registrar aplicativo de extensão de autenticação personalizada
Se essa for sua primeira extensão de autenticação personalizada, registre o aplicativo de extensão de autenticação personalizada.
2. Registrar extensão de autenticação personalizada
Em seguida, você registra a extensão de autenticação personalizada. Você registra a extensão de autenticação personalizada associando-a ao aplicativo de segurança da extensão de autenticação personalizada que você criou e ao seu ponto de Extremidade da API REST. Substitua os seguintes valores pelos seus próprios: - {app-ID} pelo ID do aplicativo da chamada anterior Aplicativo de segurança da extensão de autenticação personalizada. - {REST-API-domain}com o nome de domínio da API REST - {Endpoint-URL} - com a RUL do ponto de extremidade da API REST
POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
"displayName": "Validate sign-up user input",
"description": "Validate user input including the city name and may ask the user to correct the data or block the user",
"behaviorOnError": null,
"authenticationConfiguration": {
"@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
"resourceId": "api://{REST-API-domain}/{app-ID}"
},
"endpointConfiguration": {
"@odata.type": "#microsoft.graph.httpRequestEndpoint",
"targetUrl": "{Endpoint-URL}"
},
"clientConfiguration": {
"timeoutInMilliseconds": null,
"maximumRetries": null
}
}
Exemplo
POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
"displayName": "Validate sign-up user input",
"description": "Validate user input including the city name and may ask the user to correct the data or block the user",
"behaviorOnError": null,
"authenticationConfiguration": {
"@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
"resourceId": "api://auth-api.woodgrovedemo.com/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
},
"endpointConfiguration": {
"@odata.type": "#microsoft.graph.httpRequestEndpoint",
"targetUrl": "https://auth-api.woodgrovedemo.com/OnAttributeCollectionSubmit"
},
"clientConfiguration": {
"timeoutInMilliseconds": null,
"maximumRetries": null
}
}
2.1 Copie o ID da extensão de autenticação personalizada
Da resposta, copie o valor do id. Por exemplo:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/customAuthenticationExtensions/$entity",
"@odata.type": "#microsoft.graph.onAttributeCollectionStartCustomExtension",
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"displayName": "Prepopulate sign-up attributes",
"description": "Prepopulate sign-up attributes from a REST API",
}
2.2 Crie um ouvinte de evento de autenticação
Depois de registrar sua extensão de autenticação personalizada, crie um ouvinte de evento de autenticação. No próximo JSON, substitua {Custom-auth-extension-ID} pela extensão de autenticação personalizada que você acabou de criar.
POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
"conditions": {
"applications": {
"includeAllApplications": false,
"includeApplications": []
}
},
"priority": 500,
"handler": {
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
"customExtension": {
"id": "{Custom-auth-extension-ID}"
}
}
}
Exemplo
POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
"conditions": {
"applications": {
"includeAllApplications": false,
"includeApplications": []
}
},
"priority": 500,
"handler": {
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
"customExtension": {
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}
}
}
2.3 Vincular a extensão de autenticação personalizada a um fluxo de usuário
Atualize seu fluxo de usuário. Na solicitação a seguir, substitua os seguintes valores pelos seus: - {user-flow-ID} pelo seu ID de fluxo do usuário. - {Custom-auth-extension-ID} com a extensão de autenticação personalizada que você acabou de criar.
PUT https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
"@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/{Custom-auth-extension-ID}"
}
Exemplo
PUT https://graph.microsoft.com/beta//identity/authenticationEventsFlows/bbbbbbbb-1111-2222-3333-cccccccccccc/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
"@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}