Partilhar via


Tutorial para configurar o TypingDNA com o Azure Active Directory B2C

Nestas instruções, saiba como integrar uma aplicação de pagamento online de exemplo no Azure Active Directory B2C com a APLICAÇÃO TypingDNA. Ao utilizar a Aplicação TypingDNA, os clientes Azure AD B2C podem cumprir os requisitos de transação da Diretiva 2 (PSD2) dos Serviços de Pagamento através da dinâmica do batimento de teclas e da autenticação forte do cliente. Saiba mais sobre EscreverDNA aqui.

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

Nota

Esta política de exemplo baseia-se no pacote de arranque SocialAndLocalAccountsWithMfa .

Descrição do cenário

Captura de ecrã do diagrama de arquitetura TypingDNA

Inscrição

  1. Azure AD páginas B2C utilizam a biblioteca JavaScript da TypingDNA para registar o padrão de escrita do utilizador. Por exemplo, o nome de utilizador e a palavra-passe são registados na inscrição inicial e, em seguida, em todos os inícios de sessão para verificação.

  2. Quando o utilizador submeter a página, a biblioteca TypingDNA calculará a característica de escrita do utilizador. Depois disso, insira as informações num campo de texto oculto que Azure AD B2C foi composto. Este campo está oculto com CSS.

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

  3. Azure AD B2C tem agora o padrão de escrita no saco de afirmações quando o utilizador submete as respetivas credenciais. Tem de chamar uma API (sua) para transmitir estes dados para o ponto final da API REST TypingDNA. Esta API está incluída no exemplo (typingDNA-API-Interface).

  4. Em seguida, a API de camada média transmite os dados do padrão de escrita para a API REST TypingDNA. Na inscrição, o ponto final de verificação do utilizador é chamado para confirmar que o utilizador não existia e, em seguida, o ponto final do padrão guardar é chamado para guardar o primeiro padrão de escrita do utilizador.

Nota

Todas as chamadas para o ponto final da API REST TypingDNA 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 no LocalAccountSignUpWithLogonEmail-TDNA:


<ValidationTechnicalProfiles>

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

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

</ValidationTechnicalProfiles>

Iniciar sessão

Nos inícios de sessão subsequentes, o padrão de escrita do utilizador é calculado da mesma forma que ao inscrever-se com o HTML personalizado. Assim que o perfil de escrita estiver no Azure AD saco de afirmações B2C, Azure AD B2C irá chamar a API para chamar o ponto final da API REST TypingDNA. O ponto final de verificação do utilizador é chamado para confirmar que o utilizador existe. Em seguida, verifique se o ponto final do padrão é chamado para devolver o net_score. Esta net_score é uma indicação da proximidade do padrão de escrita com o original na inscrição.

Este padrão de escrita é modelado com validationTechnicalProfiles no 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 utilizador obtiver um padrão de escrita que tenha uma elevada net_score, pode guardá-lo com o ponto final do padrão de escrita guardar TypingDNA.

A API tem de devolver uma afirmação saveTypingPattern se quiser que o ponto final do padrão de escrita guardar TypingDNA seja chamado pelo Azure AD B2C (através da sua API).

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

  • Modo de preparação – se o utilizador tiver menos de dois padrões guardados, peça sempre MFA.

  • Se o utilizador tiver 2 a 5 padrões guardados e o for inferior a net_score 50, pedir MFA.

  • Se o utilizador tiver mais de 5 padrões guardados e o for inferior a net_score 65, pedir a MFA.

Estes limiares devem ser ajustados no seu caso de utilização.

  • Depois de a API ter avaliado o net_score, deverá devolver uma afirmação booleana para B2C – promptMFA.

  • A promptMFA afirmação é utilizada numa pré-condição para executar condicionalmente Microsoft Entra autenticação multifator.


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

Integrar com TypingDNA

  1. Inscreva-se no TypingDNA aqui
  2. Inicie sessão no dashboard TypingDNA e obtenha a chave de API e o segredo da API. Isto será necessário na configuração da interface de API mais tarde

Integrar o TypingDNA no Azure AD B2C

  1. Alojar a TypingDNA-API-Interface no seu fornecedor de alojamento à escolha

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

  3. Aloje os ficheiros HTML no seu fornecedor de eleição ao seguir os requisitos do CORS aqui

  4. Substitua os elementos LoadURI das api.selfasserted.tdnasignup definições de conteúdo e api.selfasserted.tdnasignin no TrustFrameworkExtensions.xml ficheiro pelo URI dos seus ficheiros HTML alojados, respetivamente.

  5. Crie uma chave de política B2C na arquitetura de experiência de identidade no painel Microsoft Entra no portal do Azure. Utilize a opção Generate e dê o nome a esta chave tdnaHashedId.

  6. Substitua os TenantId's nos ficheiros de política

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

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

Testar o fluxo de utilizador

  1. Abra o inquilino do B2C e escolha a arquitetura de experiência de identidade.

  2. Selecione o Fluxo de Utilizador criado anteriormente.

  3. Selecione Executar fluxo de utilizador

    a. Aplicação – selecione a aplicação registada (o exemplo é JWT)

    b. URL de Resposta – selecione o URL de redirecionamento

    c. Selecione Executar fluxo de utilizador.

  4. Percorrer o fluxo de inscrição e criar uma conta

  5. Terminar sessão

  6. Percorrer o fluxo de início de sessão

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

Versão em direto

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

• Inscreva-se aqui e Inicie sessão aqui

Passos seguintes

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