Validar atributos coletados durante a inscrição

Concluído

Exercício - Validar atributos coletados durante a inscrição

A extensão de autenticação personalizada suporta o evento on attribute collection submit . Esse evento permite que você execute a validação em atributos coletados do usuário durante a inscrição. Para o nosso site de mantimentos, validaremos o nome da cidade em relação a uma lista de países compilada na API REST da extensão de autenticação personalizada. Além disso, se a cidade contiver bloco, o ID Externo do Microsoft Entra mostrará uma página de bloco. Se a cidade contiver modificar, o ID Externo do Microsoft Entra modificará alguns dos atributos (nome para exibição e cidade).

Nota

Você precisará de pelo menos a função de diretório Administrador de Extensibilidade de Autenticação para configurar a validação de atributos coletados durante a inscrição.

Este papel é um papel privilegiado. Leia sobre as práticas recomendadas para trabalhar com funções privilegiadas.

Você tem comentários? Por favor, deixe-nos saber como está o seu projeto de prova de conceito. Gostaríamos de ouvir a sua opinião!

Gorjeta

Você também pode exibir um exemplo de uma 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 que é usada pela ID Externa do Microsoft Entra para chamar sua API REST. A extensão de autenticação personalizada contém informações sobre o ponto de extremidade da API REST, a ação de início da coleção de atributos que ela analisa da API REST e como autenticar na API REST. Entre no centro de administração do Microsoft Entra e navegue até > Observe que você também pode navegar até Extensões de autenticação personalizadas de>aplicativos>corporativos de aplicativos. Em seguida, selecione Criar uma extensão personalizada.

    Captura de ecrã da folha Identidades Externas Extensões de autenticação personalizadas realçando um botão na barra de ferramentas intitulado Criar uma extensão personalizada.

  2. Em Noções básicas, selecione o evento AttributeCollectionSubmit e, em seguida, selecione Avançar.

    Captura de tela da guia Noções básicas de Criar nova folha de extensão personalizada destacando o tipo de evento intitulado Attribute Collection Submit.

  3. Em Configuração do ponto final, preencha as seguintes propriedades:

    • Nome - Um nome para sua extensão de autenticação personalizada, por exemplo, Validar entrada de usuário de inscrição.

    • URL de destino - A URL da sua API REST.

    • Tempo limite em milissegundos - O número máximo de novas tentativas do ponto de extremidade da API será chamado em caso de falha. Se estiver vazio, esse valor será padronizado para o padrão de serviço.

    • Máximo de tentativas - 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 de serviço.

    • Descrição - Uma descrição para suas extensões de autenticação personalizadas. Para continuar, selecione Seguinte.

      Captura de ecrã do separador Configuração do Ponto Final da folha Criar nova extensão personalizada a mostrar 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 personalizada e sua API REST seja protegida adequadamente, vários controles de segurança devem ser aplicados. O primeiro passo é criar ou escolher um aplicativo que o Microsoft Entra External ID usa. 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 esta 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 de API, escolha a opção Selecionar um registro de aplicativo existente neste diretório .

    Captura de ecrã do separador Autenticação de API da opção de botão de opção Criar nova folha de extensão personalizada realçando a opção de botão de opção intitulada Selecione um registo de aplicação existente neste diretório e Selecione uma aplicação por baixo em Tipo de registo de aplicação.

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

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

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

  7. Neste ponto, a extensão de autenticação personalizada está configurada em seu locatário, mas não é usada 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é Identidades externas Fluxos>> de usuário. Em seguida, selecione o fluxo de usuário na lista.

    Captura de tela da folha Identidades Externas Fluxos de usuário destacando um fluxo de usuário intitulado Padrão na lista de grade de fluxos de usuários.

  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 fluxo de usuário intitulada Padrão que realça o botão de edição ao lado de Quando um usuário envia suas informações.

  9. As extensões personalizadas configuradas para o evento OnAttributeCollectionStart serão exibidas. Selecione um deles para o evento de início da coleção de atributos e, em seguida, escolha Selecionar para salvar as alterações.

    Captura de ecrã do painel Extensões personalizadas aberto à direita com Validar entrada de utilizador de inscrição e respetivo URL realçado no menu pendente para Selecionar uma extensão personalizada.

Muito bem! Você criou uma extensão de autenticação personalizada do tipo OnAttributeCollectionSubmit, em seguida, associou-a ao seu fluxo de usuário.

1. Registre o aplicativo de extensão de autenticação personalizado

Se esta for sua primeira extensão de autenticação personalizada, registre o aplicativo de extensão de autenticação personalizada.

2. Registre a extensão de autenticação personalizada

Em seguida, registre a extensão de autenticação personalizada. Você registra a extensão de autenticação personalizada associando-a ao aplicativo de segurança de extensão de autenticação personalizada que você criou e ao seu ponto de extremidade da API REST. Substitua os seguintes valores pelos seus: - {app-ID} pelo ID do aplicativo da chamada anterior Aplicativo de segurança de extensão de autenticação personalizada. - {REST-API-domínio} com o nome de domínio da API rest - {Endpoint-URL} - com o 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

A partir 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 Criar um ouvinte de eventos de autenticação

Depois de registrar sua extensão de autenticação personalizada, crie um ouvinte de eventos 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ários. Na solicitação a seguir, substitua os seguintes valores pelos seus: - {user-flow-ID} pelo seu ID de fluxo de 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"
}