Partilhar via


Tutorial para configurar o TypingDNA com o Azure Ative Directory B2C

Neste passo a passo, saiba como integrar um aplicativo de pagamento online de exemplo no Azure Ative Directory B2C com o APLICATIVO TypingDNA. Usando o Aplicativo TypingDNA, os clientes do Azure AD B2C podem cumprir os requisitos de transação da Diretiva de Serviços de Pagamento 2 (PSD2) por meio da dinâmica de pressionamento de tecla e da autenticação forte do cliente. Saiba mais sobre o TypingDNA aqui.

O Azure AD B2C usa as tecnologias do TypingDNA para capturar as características de digitação dos usuários e gravá-las e analisá-las para familiaridade em cada autenticação. Isso adiciona uma camada de proteção relacionada ao risco de uma autenticação e avalia os níveis de risco. O Azure AD B2C pode invocar outros mecanismos para fornecer mais confiança de que o usuário é quem afirma ser, invocando a autenticação multifator do Microsoft Entra, forçando a verificação de email ou qualquer outra lógica personalizada para seu cenário.

Nota

Esta política de exemplo é baseada no pacote inicial SocialAndLocalAccountsWithMfa .

Descrição do cenário

Captura de tela do diagrama de arquitetura TypingDNA

Inscrição

  1. As páginas B2C do Azure AD usam a biblioteca JavaScript do TypingDNA para registrar o padrão de digitação do usuário. Por exemplo, o nome de usuário e a senha são registrados na inscrição para o registro inicial e, em seguida, em cada login para verificação.

  2. Quando o usuário envia a página, a biblioteca TypingDNA calculará a característica de digitação do usuário. Depois disso, insira as informações em um campo de texto oculto que o Azure AD B2C renderizou. Este campo está oculto com CSS.

    O exemplo contém arquivos HTML com as modificações JavaScript e CSS e é referenciado api.selfasserted.tdnasignin pelas definições de conteúdo e api.selfasserted.tdnasignup . Consulte hospedar o conteúdo da página para hospedar seus arquivos HTML.

  3. O Azure AD B2C agora tem o padrão de digitação dentro do pacote de declarações quando o usuário envia suas credenciais. Ele deve chamar uma API (sua) para passar esses dados para o ponto de extremidade TypingDNA REST API. Esta API está incluída no exemplo (typingDNA-API-Interface).

  4. Em seguida, a API de camada intermediária passa os dados do padrão de digitação para a API REST do TypingDNA. Na inscrição, o ponto de extremidade de verificação do usuário é chamado para confirmar que o usuário não existia e, em seguida, o ponto de extremidade do padrão de salvamento é chamado para salvar o primeiro padrão de digitação do usuário.

Nota

Todas as chamadas para o ponto de extremidade TypingDNA REST API enviam um UserId. Tem de ser um valor hash. O Azure AD B2C utiliza a transformação das afirmações HashObjectIdWithEmail para criar um hash do e-mail com um segredo e um salt aleatório.

As chamadas à API REST são modeladas com validationTechnicalProfiles LocalAccountSignUpWithLogonEmail-TDNA:


<ValidationTechnicalProfiles>

    <ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail-TDNA" />
    <ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="true"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser"/>

</ValidationTechnicalProfiles>

Iniciar sessão

No login subsequente, o padrão de digitação do usuário é calculado da mesma maneira que na inscrição usando o HTML personalizado. Quando o perfil de digitação estiver dentro do pacote de declarações do Azure AD B2C, o Azure AD B2C chamará sua API para chamar o ponto de extremidade TypingDNA REST API. O ponto de extremidade do usuário de verificação é chamado para confirmar que o usuário existe. Em seguida, verifique se o ponto de extremidade padrão é chamado para retornar o net_score. Esta net_score é uma indicação de quão próximo o padrão de digitação estava do original no momento da inscrição.

Este padrão de digitação é modelado com validationTechnicalProfiles dentro de SelfAsserted-LocalAccountSignin-Email-TDNA:


<ValidationTechnicalProfiles>

    <ValidationTechnicalProfile ReferenceId="login-NonInteractive"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="false"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-VerifyUser"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser">

        <Preconditions>

            <Precondition Type="ClaimEquals" ExecuteActionsIf="true">

            <Value>saveTypingPattern</Value>

            <Value>False</Value>

            <Action>SkipThisValidationTechnicalProfile</Action>

            </Precondition>

        </Preconditions>

    </ValidationTechnicalProfile>

</ValidationTechnicalProfiles>

Se o usuário obtiver um padrão de digitação com um alto net_score, você poderá salvá-lo usando o ponto de extremidade do padrão de digitação TypingDNA salvo.

Sua API deve retornar uma declaração saveTypingPattern se você quiser que o ponto de extremidade do padrão de digitação salvo TypingDNA seja chamado pelo Azure AD B2C (por meio de sua API).

O exemplo no repositório contém uma API (TypingDNA-API-Interface) que é configurada com as seguintes propriedades.

  • Modo de treinamento - Se o usuário tiver menos de dois padrões salvos, sempre solicite MFA.

  • Se o usuário tiver 2-5 padrões salvos e o for inferior a net_score 50, solicite MFA.

  • Se o usuário tiver 5+ padrões salvos e o for inferior a net_score 65, solicite MFA.

Esses limites devem ser ajustados no seu caso de uso.

  • Depois que sua API tiver avaliado o net_score, ele deve retornar uma reivindicação booleana para B2C - promptMFA.

  • A promptMFA declaração é usada dentro de uma pré-condição para executar condicionalmente a autenticação multifator do Microsoft Entra.


<OrchestrationStep Order="3" Type="ClaimsExchange">

    <Preconditions>

        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">

            <Value>isActiveMFASession</Value>

            <Action>SkipThisOrchestrationStep</Action>

        </Precondition>

        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">

            <Value>promptMFA</Value>

            <Value>False</Value>

            <Action>SkipThisOrchestrationStep</Action>

        </Precondition>

    </Preconditions>

    <ClaimsExchanges>

        <ClaimsExchange Id="PhoneFactor-Verify" TechnicalProfileReferenceId="PhoneFactor-InputOrVerify" />

    </ClaimsExchanges>

</OrchestrationStep>

A bordo com TypingDNA

  1. Inscreva-se no TypingDNA aqui
  2. Faça login no painel do TypingDNA e obtenha a chave e o segredo da API. Isso será necessário na configuração da interface da API mais tarde

Integrar o TypingDNA com o Azure AD B2C

  1. Hospede o TypingDNA-API-Interface em seu provedor de hospedagem de escolha

  2. Substitua todas as instâncias de apiKey e apiSecret na solução TypingDNA-API-Interface pelas credenciais do seu painel TypingDNA

  3. Hospede os arquivos HTML em seu provedor de escolha seguindo os requisitos do CORS aqui

  4. Substitua os elementos LoadURI para as api.selfasserted.tdnasignup definições TrustFrameworkExtensions.xml de conteúdo e api.selfasserted.tdnasignin no arquivo para o URI de seus arquivos HTML hospedados, respectivamente.

  5. Crie uma chave de política B2C na estrutura de experiência de identidade na folha Microsoft Entra no portal do Azure. Use a Generate opção e nomeie essa chave tdnaHashedId.

  6. Substitua o TenantId's nos arquivos de política

  7. Substitua ServiceURLs em todos os perfis técnicos da API REST do TypingDNA (REST-TDNA-VerifyUser, REST-TDNA-SaveUser, REST-TDNA-CheckUser) pelo ponto de extremidade da API TypingDNA-API-Interface.

  8. Carregue ficheiros de política para o seu inquilino.

Testar o fluxo do usuário

  1. Abra o locatário B2C e escolha a estrutura de experiência de identidade.

  2. Selecione o fluxo de usuário criado anteriormente.

  3. Selecione Executar fluxo de usuário

    a. Aplicativo - selecione o aplicativo registrado (o exemplo é JWT)

    b. URL de resposta - selecione o URL de redirecionamento

    c. Selecione Executar fluxo de utilizador.

  4. Percorra o fluxo de inscrição e crie uma conta

  5. Terminar sessão

  6. Passar pelo fluxo de entrada

  7. O resultado resultante do JWT mostrará os resultados do TypingDNA

Versão ao vivo

• A MFA foi desativada nesta versão de teste, mas você pode ver o resultado sobre se a MFA teria sido solicitada pela declaração promptMFA após a autenticação.

• Registe-se aqui e Inicie sessão aqui

Próximos passos

Para obter informações adicionais, consulte os seguintes artigos: