Dela via


Självstudie: Konfigurera BioCatch med Azure Active Directory B2C

Lär dig hur du integrerar Azure Active Directory B2C-autentisering (Azure AD B2C) med BioCatch-teknik för att utöka din säkerhetsstatus för kundidentitet och åtkomsthantering (CIAM). BioCatch-produkter analyserar användarnas fysiska och kognitiva digitala beteenden för insikter som hjälper till att skilja legitima kunder åt.

Gå till biocatch.com om du vill veta mer om BioCatch

Förutsättningar

Du behöver följande för att komma igång:

Scenariobeskrivning

BioCatch-integrering innehåller följande komponenter:

  • En webbapp eller webbtjänst – användare bläddrar till den här webbtjänsten som instansierar ett unikt klientsessions-ID som går till BioCatch
    • Sessions-ID:t överför användarbeteendeegenskaper till BioCatch
  • En metod – skickar sessions-ID:t till Azure AD B2C. I exemplet matar JavaScript in värdet i ett dolt HTML-fält.
  • Ett Azure AD B2C-anpassat användargränssnitt – döljer ett HTML-fält för sessions-ID-indata från JavaScript
  • Azure AD anpassad princip för B2C:
    • Tar sessions-ID:t som ett anspråk via en självsäkrad teknisk profil
    • Integreras med BioCatch via en REST API-anspråksprovider och skickar sessions-ID:t till BioCatch
    • Flera anpassade anspråk returnerar från BioCatch för den anpassade principlogiken
    • En användarresa utvärderar ett returnerat anspråk och kör en villkorsstyrd åtgärd, till exempel multifaktorautentisering

Läs mer:

Följande diagram illustrerar användarflöden med sessionsinformation.

Diagram över användarflöden med sessionsinformation.

  1. Användaren bläddrar till webbtjänsten, som returnerar HTML-, CSS- eller JavaScript-värden och läser sedan in SDK:t BioCatch JavaScript. JavaScript på klientsidan konfigurerar ett klientsessions-ID för BioCatch SDK. Webbtjänsten förkonfigurerar även klientsessions-ID och skickar det till klienten. Du kan konfigurera instansierad BioCatch JavaScript SDK för BioCatch, som skickar användarbeteende till BioCatch från klientenheten med hjälp av klientsessions-ID:t.
  2. Användaren registrerar sig eller loggar in och omdirigeras till Azure AD B2C.
  3. Användarresan innehåller en självsäkrad anspråksprovider som anger klientsessions-ID:t. Det här fältet är dolt. Använd JavaScript för att mata in sessions-ID:t i fältet. Välj Nästa för att fortsätta registrera dig eller logga in. Sessions-ID:t går till BioCatch för en riskpoäng. BioCatch returnerar sessionsinformation och rekommenderar tillåt eller blockera. Användarens resa har en villkorsstyrd kontroll som agerar på de returnerade anspråken.
  4. Baserat på resultatet av villkorsstyrd kontroll anropas en åtgärd.
  5. Webbtjänsten kan använda sessions-ID:t för att fråga BioCatch-API:et för att fastställa risk- och sessionsinformation.

Kom igång med BioCatch

Gå till sidan biocatch.com Kontakta oss för att initiera ett konto.

Konfigurera det anpassade användargränssnittet

Vi rekommenderar att du döljer fältet Klientsessions-ID med CSS, JavaScript eller någon annan metod. Ta fram fältet för testning. JavaScript döljer till exempel indatafältet som:

document.getElementById("clientSessionId").style.display = 'none';

Konfigurera Azure AD principer för B2C Identity Experience Framework

  1. Kom igång i Självstudie: Skapa användarflöden och anpassade principer i Azure AD B2C.

  2. Skapa en ny fil som ärver från filnamnstillägget.

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. Skapa en referens till det anpassade användargränssnittet för att dölja indatarutan under BuildingBlocks-resursen.

    <ContentDefinitions> 
    
        <ContentDefinition Id="api.selfasserted"> 
    
            <LoadUri>https://domain.com/path/to/selfAsserted.cshtml</LoadUri> 
    
            <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.0</DataUri> 
    
          </ContentDefinition> 
    
        </ContentDefinitions>
    
  4. Under resursen BuildingBlocks lägger du till följande anspråk.

    <ClaimsSchema> 
    
          <ClaimType Id="riskLevel"> 
    
            <DisplayName>Session risk level</DisplayName> 
    
            <DataType>string</DataType>       
    
          </ClaimType> 
    
          <ClaimType Id="score"> 
    
            <DisplayName>Session risk score</DisplayName> 
    
            <DataType>int</DataType>       
    
          </ClaimType> 
    
          <ClaimType Id="clientSessionId"> 
    
            <DisplayName>The ID of the client session</DisplayName> 
    
            <DataType>string</DataType> 
    
            <UserInputType>TextBox</UserInputType> 
    
          </ClaimType> 
    
    </ClaimsSchema> 
    
  5. Konfigurera en självsäkrad anspråksprovider för fältet klientsessions-ID.

    <ClaimsProvider> 
    
          <DisplayName>Client Session ID Claims Provider</DisplayName> 
    
          <TechnicalProfiles> 
    
            <TechnicalProfile Id="login-NonInteractive-clientSessionId"> 
    
              <DisplayName>Client Session ID TP</DisplayName> 
    
              <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    
              <Metadata> 
    
                <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> 
    
              </Metadata> 
    
              <CryptographicKeys> 
    
                <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" /> 
    
              </CryptographicKeys> 
    
            <!—Claim we created earlier --> 
    
              <OutputClaims> 
    
                <OutputClaim ClaimTypeReferenceId="clientSessionId" Required="false" DefaultValue="100"/> 
    
              </OutputClaims> 
    
            <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" /> 
    
            </TechnicalProfile> 
    
          </TechnicalProfiles> 
    
        </ClaimsProvider> 
    
  6. Konfigurera en REST API-anspråksprovider för BioCatch.

    <TechnicalProfile Id="BioCatch-API-GETSCORE"> 
    
          <DisplayName>Technical profile for BioCatch API to return session information</DisplayName> 
    
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    
          <Metadata> 
    
            <Item Key="ServiceUrl">https://biocatch-url.com/api/v6/score?customerID=<customerid>&amp;action=getScore&amp;uuid=<uuid>&amp;customerSessionID={clientSessionId}&amp;solution=ATO&amp;activtyType=<activity_type>&amp;brand=<brand></Item>
    
            <Item Key="SendClaimsIn">Url</Item> 
    
            <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item> 
    
            <!-- Set AuthenticationType to Basic or ClientCertificate in production environments --> 
    
            <Item Key="AuthenticationType">None</Item> 
    
            <!-- REMOVE the following line in production environments --> 
    
            <Item Key="AllowInsecureAuthInProduction">true</Item> 
    
          </Metadata> 
    
          <InputClaims> 
    
            <InputClaim ClaimTypeReferenceId="clientsessionId" /> 
    
          </InputClaims> 
    
          <OutputClaims> 
    
            <OutputClaim ClaimTypeReferenceId="riskLevel" /> 
    
            <OutputClaim ClaimTypeReferenceId="score" /> 
    
          </OutputClaims> 
    
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> 
    
        </TechnicalProfile> 
    
      </TechnicalProfiles>
    

    Anteckning

    BioCatch tillhandahåller URL, kund-ID och unikt användar-ID (UUID). Kundens SessionID-anspråk skickas som en frågesträngsparameter till BioCatch. Du kan välja aktivitetstyp, till exempel MAKE_PAYMENT.

  7. Konfigurera användarresan med hjälp av följande exempel:

    • Hämta clientSessionID som ett anspråk.
    • Anropa BioCatch API för att hämta sessionsinformationen.
    • Om den returnerade anspråksrisken är låg hoppar du över steget för MFA, annars framtvingar du användarens MFA.
    <OrchestrationStep Order="8" Type="ClaimsExchange"> 
    
          <ClaimsExchanges> 
    
            <ClaimsExchange Id="clientSessionIdInput" TechnicalProfileReferenceId="login-NonInteractive-clientSessionId" /> 
    
          </ClaimsExchanges> 
    
        </OrchestrationStep> 
    
        <OrchestrationStep Order="9" Type="ClaimsExchange"> 
    
          <ClaimsExchanges> 
    
            <ClaimsExchange Id="BcGetScore" TechnicalProfileReferenceId=" BioCatch-API-GETSCORE" /> 
    
          </ClaimsExchanges> 
    
        </OrchestrationStep> 
    
        <OrchestrationStep Order="10" Type="ClaimsExchange"> 
    
          <Preconditions> 
    
            <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> 
    
              <Value>riskLevel</Value> 
    
              <Value>LOW</Value> 
    
              <Action>SkipThisOrchestrationStep</Action> 
    
            </Precondition> 
    
          </Preconditions> 
    
          <ClaimsExchanges> 
    
            <ClaimsExchange Id="PhoneFactor-Verify" TechnicalProfileReferenceId="PhoneFactor-InputOrVerify" /> 
    
          </ClaimsExchanges>
    
  8. Konfigurera förlitande part (valfritt). Du kan skicka den BioCatch-returnerade informationen till ditt program som anspråk i token: risklevel och score.

    <RelyingParty> 
    
    <DefaultUserJourney ReferenceId="SignUpOrSignInMfa" /> 
    
    <UserJourneyBehaviors> 
    
      <SingleSignOn Scope="Tenant" KeepAliveInDays="30" /> 
    
      <SessionExpiryType>Absolute</SessionExpiryType> 
    
      <SessionExpiryInSeconds>1200</SessionExpiryInSeconds> 
    
      <ScriptExecution>Allow</ScriptExecution> 
    
    </UserJourneyBehaviors> 
    
    <TechnicalProfile Id="PolicyProfile"> 
    
      <DisplayName>PolicyProfile</DisplayName> 
    
      <Protocol Name="OpenIdConnect" /> 
    
      <OutputClaims> 
    
        <OutputClaim ClaimTypeReferenceId="displayName" /> 
    
        <OutputClaim ClaimTypeReferenceId="givenName" /> 
    
        <OutputClaim ClaimTypeReferenceId="surname" /> 
    
        <OutputClaim ClaimTypeReferenceId="email" /> 
    
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> 
    
        <OutputClaim ClaimTypeReferenceId="identityProvider" />                 
    
        <OutputClaim ClaimTypeReferenceId="riskLevel" /> 
    
        <OutputClaim ClaimTypeReferenceId="score" /> 
    
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" /> 
    
      </OutputClaims> 
    
      <SubjectNamingInfo ClaimType="sub" /> 
    
    </TechnicalProfile> 
    
    </RelyingParty>
    

Integrera med Azure AD B2C

Lägg till principfilerna i Azure AD B2C. Använd katalogen med Azure AD B2C-klientorganisationen för följande instruktioner.

  1. Logga in på Azure Portal som global administratör för Azure AD B2C-klientorganisationen.
  2. I portalens verktygsfält väljer du Kataloger + prenumerationer.
  3. sidan Portalinställningar, Kataloger + prenumerationer letar du upp katalogen Azure AD B2C i listan Katalognamn.
  4. Välj Växla.
  5. I det övre vänstra hörnet i Azure Portal väljer du Alla tjänster.
  6. Sök efter och välj Azure AD B2C.
  7. Gå till Azure AD B2C>Identity Experience Framework.
  8. Ladda upp principfilerna till klientorganisationen.

Testa lösningen

Följande anvisningar finns i Självstudie: Registrera ett webbprogram i Azure Active Directory B2C

  1. Registrera ett dummyprogram som omdirigeras till JWT.MS.

  2. Under Identity Experience Framework väljer du den princip som du skapade.

  3. I principfönstret väljer du dummy-JWT.MS-programmet

  4. Välj Kör nu.

  5. Utför ett registreringsflöde och skapa ett konto.

  6. Token som returneras till JWT.MS har 2x anspråk för riskNivå och poäng.

  7. Använd följande exempel.

    { 
    
      "typ": "JWT", 
    
      "alg": "RS256", 
    
      "kid": "_keyid" 
    
    }.{ 
    
      "exp": 1615872580, 
    
      "nbf": 1615868980, 
    
      "ver": "1.0", 
    
      "iss": "https://tenant.b2clogin.com/12345678-1234-1234-1234-123456789012/v2.0/", 
    
      "sub": "12345678-1234-1234-1234-123456789012", 
    
      "aud": "12345678-1234-1234-1234-123456789012", 
    
      "acr": "b2c_1a_signup_signin_biocatch_policy", 
    
      "nonce": "defaultNonce", 
    
      "iat": 1615868980, 
    
      "auth_time": 1615868980, 
    
      "name": "John Smith", 
    
      "email": "john.smith@contoso.com", 
    
      "given_name": "John", 
    
      "family_name": "Smith", 
    
      "riskLevel": "LOW", 
    
      "score": 275, 
    
      "tid": "12345678-1234-1234-1234-123456789012" 
    
    }.[Signature]  
    
    

Ytterligare resurser