Udostępnij za pośrednictwem


Samouczek: konfigurowanie usługi BioCatch za pomocą usługi Azure Active Directory B2C

Dowiedz się, jak zintegrować uwierzytelnianie usługi Azure Active Directory B2C (Azure AD B2C) z technologią BioCatch, aby zwiększyć poziom zabezpieczeń zarządzania tożsamościami i dostępem (CIAM). Produkty BioCatch analizują fizyczne i poznawcze zachowania cyfrowe użytkowników w celu uzyskania szczegółowych informacji, które pomagają odróżnić uzasadnionych klientów.

Przejdź do biocatch.com, aby dowiedzieć się więcej o usłudze BioCatch

Wymagania wstępne

Aby rozpocząć pracę, potrzebne będą następujące elementy:

Opis scenariusza

Integracja z usługą BioCatch obejmuje następujące składniki:

  • Aplikacja internetowa lub usługa internetowa — użytkownicy przechodzą do tej usługi internetowej, która tworzy wystąpienie unikatowego identyfikatora sesji klienta, który przechodzi do usługi BioCatch
    • Identyfikator sesji przesyła cechy zachowania użytkownika do usługi BioCatch
  • Metoda — wysyła identyfikator sesji do Azure AD B2C. W tym przykładzie język JavaScript wprowadza wartość w ukrytym polu HTML.
  • Dostosowany interfejs użytkownika usługi Azure AD B2C — ukrywa pole HTML dla danych wejściowych identyfikatora sesji w języku JavaScript
  • Azure AD zasad niestandardowych B2C:
    • Przyjmuje identyfikator sesji jako oświadczenie za pośrednictwem własnego profilu technicznego
    • Integruje się z usługą BioCatch za pośrednictwem dostawcy oświadczeń interfejsu API REST i przekazuje identyfikator sesji do usługi BioCatch
    • Wiele oświadczeń niestandardowych zwracanych z usługi BioCatch dla logiki zasad niestandardowych
    • Podróż użytkownika ocenia zwrócone oświadczenie i wykonuje akcję warunkową, taką jak uwierzytelnianie wieloskładnikowe

Więcej informacji:

Na poniższym diagramie przedstawiono przepływy użytkowników z informacjami o sesji.

Diagram przepływów użytkownika z informacjami o sesji.

  1. Użytkownik przechodzi do usługi internetowej, która zwraca wartości HTML, CSS lub JavaScript, a następnie ładuje zestaw JAVAScript SDK biocatch. Język JavaScript po stronie klienta konfiguruje identyfikator sesji klienta dla zestawu SDK usługi BioCatch. Alternatywnie usługa internetowa wstępnie konfiguruje identyfikator sesji klienta i wysyła ją do klienta. Można skonfigurować wystąpienie zestawu JavaScript SDK usługi BioCatch dla usługi BioCatch, który wysyła zachowanie użytkownika do serwera BioCatch z urządzenia klienckiego przy użyciu identyfikatora sesji klienta.
  2. Użytkownik loguje się lub loguje i jest przekierowywany do Azure AD B2C.
  3. Podróż użytkownika obejmuje samozwańczego dostawcę oświadczeń, który wprowadza identyfikator sesji klienta. To pole jest ukryte. Użyj języka JavaScript, aby wprowadzić identyfikator sesji w polu. Wybierz pozycję Dalej, aby kontynuować rejestrację lub logowanie. Identyfikator sesji jest kierowany do usługi BioCatch w celu uzyskania oceny ryzyka. Firma BioCatch zwraca informacje o sesji i zaleca zezwalanie lub blokowanie. Podróż użytkownika ma kontrolę warunkową, która działa po zwróconych oświadczeniach.
  4. Na podstawie wyniku sprawdzania warunkowego wywoływana jest akcja.
  5. Usługa internetowa może używać identyfikatora sesji do wysyłania zapytań do interfejsu API usługi BioCatch w celu określenia informacji o ryzyku i sesji.

Wprowadzenie do usługi BioCatch

Przejdź do strony biocatch.com Skontaktuj się z nami , aby zainicjować konto.

Konfigurowanie niestandardowego interfejsu użytkownika

Zalecamy ukrycie pola Identyfikator sesji klienta za pomocą arkuszy CSS, JavaScript lub innej metody. Na potrzeby testowania odkryj pole. Na przykład język JavaScript ukrywa pole wejściowe jako:

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

Konfigurowanie zasad Azure AD B2C Identity Experience Framework

  1. Aby rozpocząć pracę, zobacz Samouczek: tworzenie przepływów użytkownika i zasad niestandardowych w usłudze Azure AD B2C.

  2. Utwórz nowy plik dziedziczony z pliku rozszerzeń.

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. Utwórz odwołanie do niestandardowego interfejsu użytkownika, aby ukryć pole wejściowe w obszarze zasobu BuildingBlocks.

    <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. W obszarze zasobu BuildingBlocks dodaj następujące oświadczenia.

    <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. Skonfiguruj dostawcę oświadczeń samodzielnie asertywnego dla pola Identyfikator sesji klienta.

    <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. Konfigurowanie dostawcy oświadczeń interfejsu API REST dla usługi 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>
    

    Uwaga

    Firma BioCatch udostępnia adres URL, identyfikator klienta i unikatowy identyfikator użytkownika (UUID). Oświadczenie SessionID klienta przechodzi jako parametr ciągu zapytania do usługi BioCatch. Możesz wybrać typ działania, na przykład MAKE_PAYMENT.

  7. Skonfiguruj podróż użytkownika przy użyciu następującego przykładu:

    • Pobierz clientSessionID jako oświadczenie.
    • Wywołaj interfejs API usługi BioCatch, aby uzyskać informacje o sesji.
    • Jeśli zwrócone ryzyko oświadczeń jest niskie, pomiń krok uwierzytelniania wieloskładnikowego, w przeciwnym razie wymuś uwierzytelnianie wieloskładnikowe użytkownika.
    <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. Skonfiguruj jednostkę uzależnioną (opcjonalnie). Informacje zwrócone przez firmę BioCatch można przekazać do aplikacji jako oświadczenia w tokenie: poziom ryzyka i wynik.

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

Integracja z usługą Azure AD B2C

Dodaj pliki zasad do Azure AD B2C. Aby uzyskać poniższe instrukcje, użyj katalogu z dzierżawą usługi Azure AD B2C.

  1. Zaloguj się do Azure Portal jako administrator globalny dzierżawy usługi Azure AD B2C.
  2. Na pasku narzędzi portalu wybierz pozycję Katalogi i subskrypcje.
  3. Na stronie Ustawienia portalu katalogi i subskrypcje na liście Nazwa katalogu znajdź katalog Azure AD B2C.
  4. Wybierz pozycję Przełącz.
  5. W lewym górnym rogu Azure Portal wybierz pozycję Wszystkie usługi.
  6. Wyszukaj i wybierz pozycję Azure AD B2C.
  7. Przejdź do Azure AD B2C>Identity Experience Framework.
  8. Przekaż pliki zasad do dzierżawy.

Testowanie rozwiązania

Aby uzyskać następujące instrukcje, zobacz Samouczek: rejestrowanie aplikacji internetowej w usłudze Azure Active Directory B2C

  1. Zarejestruj fikcyjną aplikację, która przekierowuje do JWT.MS.

  2. W obszarze Identity Experience Framework (Platforma obsługi tożsamości) wybierz utworzone zasady.

  3. W oknie zasad wybierz fikcyjną aplikację JWT.MS

  4. Wybierz pozycję Uruchom teraz.

  5. Wykonaj przepływ rejestracji i utwórz konto.

  6. Token zwrócony do JWT.MS ma 2x oświadczeń dla riskLevel i wynik.

  7. Skorzystaj z poniższego przykładu.

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

Dodatkowe zasoby