Compartilhar via


Tutorial para configurar o TypingDNA com o Azure Active Directory B2C

Neste passo a passo, saiba como integrar um aplicativo de pagamento online no Azure Active Directory B2C com a API de Verificação do TypingDNA. Ao usar o Aplicativo de Verificação TypingDNA, os clientes do Azure AD B2C podem atender aos requisitos da transação da Diretiva de serviços de pagamento 2 (PSD2) por meio de pressionamento de teclas e autenticação forte de cliente. Saiba mais sobre o TypingDNA aqui.

Azure AD B2C usa as tecnologias do TypingDNA para capturar as características de digitação dos usuários e fazer com que elas sejam registradas e analisadas quanto à 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 maior confiança de que o usuário é quem alega ser por meio da invocação da autenticação multifator do Microsoft Entra, forçando a verificação de email ou qualquer outra lógica personalizada para seu cenário.

Observação

Esta política de exemplo se baseia no pacote de início do SocialAndLocalAccountsWithMfa.

Descrição do cenário

Captura de tela do diagrama de arquitetura do TypingDNA

Inscrição

  1. As páginas do Azure AD B2C 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 entrada para verificação.

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

    A amostra contém arquivos HTML com as modificações de JavaScript e CSS e é referenciada pelas definições de conteúdo api.selfasserted.tdnasignin e api.selfasserted.tdnasignup. Veja 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 recipiente 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 da API REST do TypingDNA. Essa API está incluída na amostra (typingDNA-API-interface).

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

Observação

Todas as chamadas para o ponto de extremidade da API REST do TypingDNA enviam um UserId. Ele deve ser um valor com hash. O Azure AD B2C usa a transformação declarações HashObjectIdWithEmail para aplicar o hash ao email com sal e segredo aleatórios.

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


<ValidationTechnicalProfiles>

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

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

</ValidationTechnicalProfiles>

Conexão

Em uma entrada subsequente, o padrão de digitação do usuário é calculado da mesma maneira que ao inscrever-se usando o HTML personalizado. Depois que o perfil de digitação estiver dentro do conjunto de declarações Azure AD B2C, o Azure AD B2C chamará sua API para chamar o ponto de extremidade da API REST do TypingDNA. O ponto de extremidade verificar usuário é chamado para confirmar se o usuário existe. Em seguida, o ponto de extremidade verificar padrão é chamado para retornar net_score. net_score é uma indicação da proximidade entre o padrão de digitação com o original na inscrição.

Esse padrão de digitação é modelado com validationTechnicalProfiles em 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 que tenha um net_score alto, você poderá salvá-lo usando o ponto de extremidade do TypingDNA Salvar padrão de digitação.

A API deverá retornar uma declaração saveTypingPattern se você quiser que o ponto de extremidade Salvar padrão de digitação do 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 propriedades a seguir.

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

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

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

Esses limites devem ser ajustados em seu caso de uso.

  • Depois que a API tiver avaliado o net_score, ela deverá retornar uma declaração booliana para B2C – promptMFA.

  • A declaração promptMFA é usada em uma condição prévia 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>

Integração com o TypingDNA

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

Integrar o TypingDNA ao Azure AD B2C

  1. Hospede o TypingDNA-API-interface no seu provedor de Hospedagem de sua escolha

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

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

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

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

  6. Substituir os TenantId nos arquivos de política

  7. Substitua as 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 para sua API TypingDNA-API-interface.

  8. Carregar os arquivos de política para o seu locatário.

Testar o fluxo de usuário

  1. Abra o locatário B2C e escolha Identity Experience Framework.

  2. Selecione o Fluxo de Usuário criado anteriormente.

  3. Selecionar Executar fluxo de usuário

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

    b. URL de Resposta – selecione a URL de redirecionamento

    c. Selecione Executar fluxo de usuário.

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

  5. Sair

  6. Percorra o fluxo de entrada

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

Versão do Live

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

• Inscreva-se aqui e entre aqui

Próximas etapas

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