Validar atributos coletados durante a inscrição

Concluído

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.

  1. 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.

    Captura de tela da folha Extensões de autenticação personalizadas de Azure Active Directory para Identidade Externas destacando um botão na barra de ferramentas intitulado Criar uma extensão personalizada.

  2. Em Básico, selecione o evento AttributeCollectionSubmit e depois selecione Próximo.

    Captura de tela da guia Básico da folha Criar nova extensão personalizada destacando o tipo de evento intitulado Envio de coleção de atributos.

  3. 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.

      Captura de tela da guia Configuração de ponto de extremidade da folha Criar nova extensão personalizada mostrando os campos Nome, URL de destino, Tempo limite em milissegundos, Máximo de tentativas e Descrição.

  4. 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.

    Captura de tela da guia Autenticação de API da opção Criar nova folha de extensão personalizada destacando o botão de opção intitulada Selecione um registro de aplicativo existente nesse diretório e Selecione um aplicativo abaixo em Tipo de registro de aplicativo.

  5. Selecione o aplicativo que você configurou para as outras extensões de autenticação personalizadas e escolha Selecionar.

    Captura de tela do painel Selecionar aplicativo aberto à direita que destaca um aplicativo intitulado Aplicativo de segurança de extensão de autenticação personalizada verificado.

  6. 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.

    Captura de tela da guia Revisão da folha Criar nova extensão personalizada mostrando as configurações de Configuração de Ponto de extremidade e Autenticação de API.

  7. 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.

    Captura de tela da folha Fluxos de usuário de Azure Active Directory para Identidade Externas destacando um fluxo de usuário intitulado Padrão na lista da grade de fluxos de usuário.

  8. 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.

    Captura de tela da folha Extensões de autenticação personalizadas para o fluxo do usuário intitulada Padrão que destaca o botão de edição ao lado de Quando um usuário envia suas informações.

  9. 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.

    Captura de tela do painel Extensões personalizadas aberto à direita com Validar entrada do usuário de inscrição e seu URL destacado no menu suspenso para Selecionar uma extensão personalizada.

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"
        }
    }
}

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"
}