Dela via


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

Skärmbild av arkitekturdiagram för TypingDNA

Registrera dig

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

  2. 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 och api.selfasserted.tdnasignup . Se värd för sidinnehållet som 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 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_scorekan 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_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>

Publicera med TypingDNA

  1. Registrera dig för TypingDNA 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 TypingDNA-API-Interface-lösningen med autentiseringsuppgifterna från din TypingDNA-instrumentpanel

  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. Använd alternativet Generate 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älja Kör användarflödet.

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