Freigeben über


Tutorial: Konfigurieren von BioCatch mit Azure Active Directory B2C

Erfahren Sie, wie Sie die Azure Active Directory B2C-Authentifizierung in die BioCatch-Technologie integrieren, um den Sicherheitsstatus der Identitäts- und Zugriffsverwaltung für Kunden (Customer Identity and Access Management, CIAM) zu verbessern. BioCatch-Produkte analysieren physisches und kognitives digitales Verhalten von Benutzer*innen, um Erkenntnisse zu liefern, die zur Erkennung legitimer Kunden beitragen.

Weitere Informationen finden Sie auf biocatch.com: BioCatch.

Voraussetzungen

Zunächst benötigen Sie Folgendes:

Beschreibung des Szenarios

Die BioCatch-Integration umfasst die folgenden Komponenten:

  • Eine Web-App oder ein Webdienst: Benutzer*innen navigieren zu diesem Webdienst, der eine eindeutige Clientsitzungs-ID instanziiert, die an BioCatch weiterleitet.
    • Die Sitzungs-ID überträgt Merkmale des Benutzerverhaltens an BioCatch.
  • Eine Methode: Sendet die Sitzungs-ID an Azure AD B2C. Im Beispiel gibt JavaScript den Wert in ein verborgenes HTML-Feld ein.
  • Eine benutzerdefinierte Azure AD B2C-Benutzeroberfläche: Verbirgt ein HTML-Feld für die von JavaScript eingegebene Sitzungs-ID.
  • Benutzerdefinierte Azure AD B2C-Richtlinie:
    • Verwendet die Sitzungs-ID als Anspruch über ein selbstbestätigtes technisches Profil.
    • Führt die Integration in BioCatch über einen REST-API-Anspruchsanbieter durch und übergibt die Sitzungs-ID an BioCatch.
    • Mehrere benutzerdefinierte Ansprüche werden von BioCatch für die Logik der benutzerdefinierten Richtlinie zurückgegeben.
    • Eine User Journey wertet einen zurückgegebenen Anspruch aus und führt eine bedingte Aktion aus, z. B. eine Multi-Faktor-Authentifizierung.

Weitere Informationen:

Das folgende Diagramm veranschaulicht Benutzerflows mit Sitzungsinformationen.

Diagramm: Benutzerflows mit Sitzungsinformationen

  1. Die Benutzer*innen navigieren zum Webdienst, der HTML-, CSS- oder JavaScript-Werte zurückgibt und dann das BioCatch JavaScript SDK lädt. Clientseitiger JavaScript-Code konfiguriert eine Clientsitzungs-ID für das BioCatch SDK. Alternativ dazu konfiguriert der Webdienst die Clientsitzungs-ID vor und sendet sie an den Client. Sie können das instanziierte BioCatch JavaScript SDK für BioCatch konfigurieren, das das Benutzerverhalten vom Clientgerät mithilfe der Clientsitzungs-ID an BioCatch sendet.
  2. Benutzer*innen registrieren sich oder melden sich an und werden zu Azure AD B2C umgeleitet.
  3. Die User Journey enthält einen selbstbestätigten Anspruchsanbieter, der die Clientsitzungs-ID eingibt. Dieses Feld ist ausgeblendet. Verwenden Sie JavaScript, um die Sitzungs-ID in das Feld einzugeben. Wählen Sie Weiter aus, um die Registrierung oder Anmeldung fortzusetzen. Die Sitzungs-ID wird zur Risikobewertung an BioCatch zurückgegeben. BioCatch gibt Sitzungsinformationen zurück und empfiehlt die Zulassung oder Blockierung. Die User Journey umfasst eine bedingte Überprüfung, die auf die zurückgegebenen Ansprüche reagiert.
  4. Basierend auf dem Ergebnis der bedingten Überprüfung wird eine Aktion aufgerufen.
  5. Der Webdienst kann die Sitzungs-ID verwenden, um die BioCatch-API zum Ermitteln von Risiko- und Sitzungsinformationen abzufragen.

Erste Schritte mit BioCatch

Initiieren Sie über die Kontaktseite auf biocatch.com ein Konto.

Konfigurieren der benutzerdefinierten Benutzeroberfläche

Es wird empfohlen, das Feld für die Clientsitzungs-ID mit CSS, JavaScript oder einer anderen Methode auszublenden. Machen Sie das Feld zum Testen sichtbar. JavaScript blendet das Eingabefeld beispielsweise wie folgt aus:

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

Konfigurieren von Azure AD B2C Identity Experience Framework-Richtlinien

  1. Sehen Sie sich auch das Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure AD B2C an.

  2. Erstellen Sie eine neue Datei, die von der Erweiterungsdatei erbt.

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. Erstellen Sie unter der BuildingBlocks-Ressource einen Verweis auf die benutzerdefinierte Benutzeroberfläche, um das Eingabefeld auszublenden.

    <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. Fügen Sie in der BuildingBlocks-Ressource die folgenden Ansprüche hinzu.

    <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. Konfigurieren Sie einen selbstbestätigten Anspruchsanbieter für das Feld für die Clientsitzungs-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. Konfigurieren Sie einen REST-API-Anspruchsanbieter 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>
    

    Hinweis

    BioCatch stellt die URL, die Kunden-ID und eine eindeutige Benutzer-ID (Unique User ID, UUID) bereit. Der SessionID-Anspruch des Kunden wird als Abfragezeichenfolge-Parameter an BioCatch übergeben. Sie können den Aktivitätstyp (z. B. MAKE_PAYMENT) auswählen.

  7. Konfigurieren Sie die User Journey mithilfe des folgenden Beispiels:

    • Rufen Sie die clientSessionID als Anspruch ab.
    • Rufen Sie die BioCatch-API zum Abrufen der Sitzungsinformationen auf.
    • Wenn das zurückgegebene Anspruchsrisiko als niedrig angegeben ist, überspringen Sie den MFA-Schritt. Andernfalls erzwingen Sie die Benutzer-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. Konfigurieren Sie die vertrauende Seite (optional). Sie können die von BioCatch zurückgegebenen Informationen als Ansprüche im Token an Ihre Anwendung übergeben Risikostufe (riskLevel) und Bewertung (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>
    

Integration in Azure AD B2C

Fügen Sie Azure AD B2C die Richtliniendateien hinzu. Verwenden Sie für die folgenden Anweisungen das Verzeichnis mit dem Azure AD B2C-Mandanten.

  1. Melden Sie sich beim Azure-Portal als globaler Administrator des Azure AD B2C-Mandanten an.
  2. Wählen Sie auf der Toolbar des Portals Verzeichnisse + Abonnements aus.
  3. Suchen Sie auf der Seite Portaleinstellungen, Verzeichnisse + Abonnements in der Liste Verzeichnisname das Azure AD B2C-Verzeichnis.
  4. Wählen Sie Wechseln aus.
  5. Wählen Sie in der linken oberen Ecke im Azure-Portal die Option Alle Dienste aus.
  6. Suchen Sie nach Azure AD B2C, und wählen Sie diese Option aus.
  7. Navigieren Sie zu Azure AD B2C>Identity Experience Framework.
  8. Laden Sie die Richtliniendateien in den Mandanten hoch.

Testen der Lösung

Für die folgenden Anweisungen finden Sie weitere Informationen unter Tutorial: Registrieren einer Webanwendung in Azure Active Directory B2C.

  1. Registrieren Sie eine Dummyanwendung, die zu JWT.MS umleitet.

  2. Wählen Sie unter Identity Experience Framework die von Ihnen erstellte Richtlinie aus.

  3. Wählen Sie die JWT.MS-Dummyanwendung im Richtlinienfenster aus.

  4. Wählen Sie die Option Jetzt ausführen.

  5. Führen Sie einen Registrierungsflow aus, und erstellen Sie ein Konto.

  6. Das an JWT.MS zurückgegebene Token enthält je 2 Ansprüche für „riskLevel“ und „score“.

  7. Verwenden Sie das folgende Beispiel.

    { 
    
      "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]  
    
    

Zusätzliche Ressourcen