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
Inscrição
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.
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 eapi.selfasserted.tdnasignup
. Veja alojar o conteúdo da página para alojar os seus ficheiros HTML.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).
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
- Inscreva-se no TypingDNA aqui
- 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
Alojar a TypingDNA-API-Interface no seu fornecedor de alojamento à escolha
Substitua todas as instâncias de
apiKey
eapiSecret
na solução TypingDNA-API-Interface pelas credenciais do dashboard TypingDNAAloje os ficheiros HTML no seu fornecedor de eleição ao seguir os requisitos do CORS aqui
Substitua os elementos LoadURI das
api.selfasserted.tdnasignup
definições de conteúdo eapi.selfasserted.tdnasignin
noTrustFrameworkExtensions.xml
ficheiro pelo URI dos seus ficheiros HTML alojados, respetivamente.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 chavetdnaHashedId
.Substitua os TenantId's nos ficheiros de política
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.
Carregue ficheiros de política para o seu inquilino.
Testar o fluxo de utilizador
Abra o inquilino do B2C e escolha a arquitetura de experiência de identidade.
Selecione o Fluxo de Utilizador criado anteriormente.
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.
Percorrer o fluxo de inscrição e criar uma conta
Terminar sessão
Percorrer o fluxo de início de sessão
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:
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários