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
Inscrição
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.
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 eapi.selfasserted.tdnasignup
. Consulte hospedar o conteúdo da página para hospedar seus arquivos HTML.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).
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
- Inscreva-se no TypingDNA aqui
- 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
Hospede o TypingDNA-API-Interface em seu provedor de hospedagem de escolha
Substitua todas as instâncias de
apiKey
eapiSecret
na solução TypingDNA-API-Interface pelas credenciais do seu painel TypingDNAHospede os arquivos HTML em seu provedor de escolha seguindo os requisitos do CORS aqui
Substitua os elementos LoadURI para as
api.selfasserted.tdnasignup
definiçõesTrustFrameworkExtensions.xml
de conteúdo eapi.selfasserted.tdnasignin
no arquivo para o URI de seus arquivos HTML hospedados, respectivamente.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 chavetdnaHashedId
.Substitua o TenantId's nos arquivos de política
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.
Carregue ficheiros de política para o seu inquilino.
Testar o fluxo do usuário
Abra o locatário B2C e escolha a estrutura de experiência de identidade.
Selecione o fluxo de usuário criado anteriormente.
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.
Percorra o fluxo de inscrição e crie uma conta
Terminar sessão
Passar pelo fluxo de entrada
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: