Självstudie för att konfigurera TypingDNA med Azure Active Directory B2C
I den här genomgången lär du dig hur du integrerar en onlinebetalningsapp i Azure Active Directory B2C med TypingDNA-appen. Med hjälp av TypingDNA-appen kan Azure AD B2C-kunder uppfylla transaktionskraven för Payment Services Directive 2 (PSD2) genom tangenttryckningsdynamik och stark kundautentisering. Läs mer om att skrivaDNA här.
Azure AD B2C använder TypingDNA:s tekniker för att samla in de användare som skriver egenskaper och få dem registrerade och analyserade för kännedom om varje autentisering. Detta lägger till ett skyddslager som är relaterat till riskigheten för en autentisering och utvärderar risknivåerna. Azure AD B2C kan anropa andra mekanismer för att ge ytterligare förtroende för att användaren är den de påstår sig vara genom att anropa Microsoft Entra multifaktorautentisering, tvinga e-postverifiering eller annan anpassad logik för ditt scenario.
Kommentar
Den här exempelprincipen baseras på Startpaketet SocialAndLocalAccountsWithMfa .
Beskrivning av scenario
Registrera dig
Azure AD B2C-sidor använder TypingDNA:s JavaScript-bibliotek för att registrera användarens skrivmönster. Användarnamnet och lösenordet registreras till exempel vid registreringen för den första registreringen och sedan vid varje inloggning för verifiering.
När användaren skickar sidan beräknar TypingDNA-biblioteket användarens typegenskaper. Därefter infogar du informationen i ett dolt textfält som Azure AD B2C har renderat. Det här fältet är dolt med CSS.
Exemplet innehåller HTML-filer med JavaScript- och CSS-ändringar och refereras av
api.selfasserted.tdnasignin
innehållsdefinitionerna ochapi.selfasserted.tdnasignup
. Se värd för sidinnehållet som värd för DINA HTML-filer.Azure AD B2C har nu skrivmönstret i anspråkspåsen när användaren skickar sina autentiseringsuppgifter. Den måste anropa ett API (ditt) för att skicka dessa data till slutpunkten för TypingDNA REST API. Det här API:et ingår i exemplet (skriverDNA-API-Interface).
API:et för mellanskiktet skickar sedan skrivmönsterdata till TypningDNA REST API. Vid registreringen anropas kontrollanvändarslutpunkten för att bekräfta att användaren inte fanns och sedan anropas slutpunkten för sparandemönstret för att spara användarens första skrivmönster.
Kommentar
Alla anrop till REST API-slutpunkten TypingDNA skickar ett UserId. Detta måste vara ett hashvärde. Azure AD B2C använder HashObjectIdWithEmail
anspråkstransformeringen för att hasha e-postmeddelandet med ett slumpmässigt salt och en hemlighet.
REST API-anropen modelleras med validationTechnicalProfiles
inom LocalAccountSignUpWithLogonEmail-TDNA
:
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail-TDNA" />
<ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="true"/>
<ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser"/>
</ValidationTechnicalProfiles>
Logga in
Vid efterföljande inloggningar beräknas användarens skrivmönster på samma sätt som vid registreringen med hjälp av den anpassade HTML-koden. När skrivprofilen finns i Azure AD B2C-anspråkspåsen anropar Azure AD B2C ditt API för att anropa slutpunkten för TypingDNA REST API. Kontrollanvändarslutpunkten anropas för att bekräfta att användaren finns. Kontrollera sedan att mönsterslutpunkten anropas för att returnera net_score
. Detta net_score
är en indikation på hur nära skrivmönstret var originalet vid registreringen.
Det här skrivmönstret modelleras med validationTechnicalProfiles
inom 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>
Om användaren hämtar ett skrivmönster som har ett högt net_score
kan du spara det med hjälp av mönstret TypingDNA spara inmatningsmönsterslutpunkten .
Ditt API måste returnera ett anspråk saveTypingPattern
om du vill att typningSNA-slutpunkten för sparande av skrivmönster ska anropas av Azure AD B2C (via ditt API).
Exemplet på lagringsplatsen innehåller ett API (TypingDNA-API-Interface) som har konfigurerats med följande egenskaper.
Träningsläge – Om användaren har sparat färre än två mönster frågar du alltid efter MFA.
Om användaren har sparat 2–5 mönster och är
net_score
lägre än 50 frågar du efter MFA.Om användaren har sparat 5+ mönster och är
net_score
lägre än 65 frågar du efter MFA.
Dessa tröskelvärden bör justeras i ditt användningsfall.
När API:et
net_score
har utvärderat ska det returnera ett booleskt anspråk till B2C –promptMFA
.Anspråket
promptMFA
används i ett förhandsvillkor för att villkorligt köra Microsoft Entra multifaktorautentisering.
<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>
Publicera med TypingDNA
- Registrera dig för TypingDNA här
- Logga in på TypingDNA-instrumentpanelen och hämta API-nyckeln och API-hemligheten. Detta kommer att behövas i API-gränssnittskonfigurationen senare
Integrera TypingDNA med Azure AD B2C
Värd för TypingDNA-API-Interface hos valfri värdleverantör
Ersätt alla instanser av
apiKey
ochapiSecret
i TypingDNA-API-Interface-lösningen med autentiseringsuppgifterna från din TypingDNA-instrumentpanelVärdhantera HTML-filerna hos valfri leverantör enligt CORS-kraven här
Ersätt LoadURI-elementen
api.selfasserted.tdnasignup
för innehållsdefinitionerna ochapi.selfasserted.tdnasignin
iTrustFrameworkExtensions.xml
filen till URI:n för dina värdbaserade HTML-filer.Skapa en B2C-principnyckel under Identity Experience Framework på Microsoft Entra-bladet i Azure Portal. Använd alternativet
Generate
och ge den här nyckelntdnaHashedId
namnet .Ersätt TenantId:erna i principfilerna
Ersätt ServiceURLs i alla tekniska profiler för TypingDNA REST API (REST-TDNA-VerifyUser, REST-TDNA-SaveUser, REST-TDNA-CheckUser) med slutpunkten för api :et TypingDNA-API-Interface.
Ladda upp principfiler till din klientorganisation.
Testa användarflödet
Öppna B2C-klientorganisationen och välj ramverk för identitetsupplevelse.
Välj ditt tidigare skapade användarflöde.
Välj Kör användarflöde
a. Program – välj den registrerade appen (exempel är JWT)
b. Svars-URL – välj omdirigerings-URL
c. Välja Kör användarflödet.
Gå igenom registreringsflödet och skapa ett konto
Logga ut
Gå igenom inloggningsflödet
Resulterande JWT-resultat visar TypingDNA-resultaten
Live-version
• MFA har inaktiverats i den här testversionen, men du kan se resultatet av om MFA skulle ha frågats av anspråket promptMFA
efter autentiseringen.
• Registrera dig här och logga in här
Nästa steg
Mer information finns i följande artiklar: