Share via


Självstudie för att konfigurera TypingDNA med Azure Active Directory B2C

I den här genomgången får du lära dig hur du integrerar ett exempel på en onlinebetalningsapp i Azure Active Directory B2C med TypingDNA APP. 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 att bekanta sig med varje autentisering. Detta lägger till ett skyddslager som är relaterat till riskfyllda autentiseringar 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.

Anteckning

Den här exempelprincipen baseras på Startpaketet SocialAndLocalAccountsWithMfa .

Scenariobeskrivning

Skärmbild av arkitekturdiagram för TypingDNA

Registrera dig

  1. Azure AD B2C-sidor använder SkrivaDNA: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.

  2. När användaren skickar sidan beräknar TypingDNA-biblioteket användarens skrivegenskaper. Därefter infogar du informationen i ett dolt textfält som Azure AD B2C har renderats. 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 och api.selfasserted.tdnasignup . Se värd för sidinnehållet för att vara värd för DINA HTML-filer.

  3. 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).

  4. API:et för mellanlagret skickar sedan skrivmönsterdata till TypingDNA REST API. Vid registreringen anropas kontrollanvändarslutpunkten för att bekräfta att användaren inte fanns och sedan anropas slutpunkten för sparandemönster för att spara användarens första skrivmönster.

Anteckning

Alla anrop till rest-API-slutpunkten för TypingDNA skickar ett UserId. Det här 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 i 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åse anropar Azure AD B2C ditt API för att anropa REST API-slutpunkten TypingDNA. Kontrollanvändarslutpunkten anropas för att bekräfta att användaren finns. Kontrollera sedan att mönsterslutpunkten anropas för att returnera net_score. Det här net_score är en indikation på hur nära skrivmönstret var originalet vid registreringen.

Det här skrivmönstret modelleras med validationTechnicalProfiles i 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 får ett skrivmönster som har ett högt net_scorekan du spara det med hjälp av slutpunkten För att spara skrivmönster i TypingDNA.

Ditt API måste returnera ett anspråk saveTypingPattern om du vill att typingDNA-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 konfigureras med följande egenskaper.

  • Träningsläge – Om användaren har färre än två sparade 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 för ditt användningsfall.

  • När api:et net_scorehar 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>

Registrera med TypingDNA

  1. Registrera dig för Att skrivaDNA här
  2. 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

  1. Värd för TypingDNA-API-Interface hos valfri värdleverantör

  2. Ersätt alla instanser av apiKey och apiSecret i lösningen TypingDNA-API-Interface med autentiseringsuppgifterna från instrumentpanelen För typningSNA

  3. Värdhantera HTML-filerna hos valfri leverantör enligt CORS-kraven här

  4. Ersätt LoadURI-elementen api.selfasserted.tdnasignup för innehållsdefinitionerna och api.selfasserted.tdnasignin i TrustFrameworkExtensions.xml filen till URI:n för dina värdbaserade HTML-filer.

  5. Skapa en B2C-principnyckel under Identity Experience Framework på Microsoft Entra-bladet i Azure Portal. Generate Använd alternativet och ge den här nyckeln tdnaHashedIdnamnet .

  6. Ersätt TenantId:erna i principfilerna

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

  8. Ladda upp principfiler till din klientorganisation.

Testa användarflödet

  1. Öppna B2C-klientorganisationen och välj ramverk för identitetsupplevelse.

  2. Välj ditt tidigare skapade användarflöde.

  3. 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älj Kör användarflöde.

  4. Gå igenom registreringsflödet och skapa ett konto

  5. Logga ut

  6. Gå igenom inloggningsflödet

  7. Resulterande JWT-resultat visar TypingDNA-resultaten

Live-version

• MFA har inaktiverats i den här testversionen, men du kan se resultatet 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: