Kurz: Konfigurace BioCatch pomocí Azure Active Directory B2C

Zjistěte, jak integrovat ověřování Azure Active Directory B2C (Azure AD B2C) s technologií BioCatch, abyste rozšířili stav zabezpečení správy identit a přístupu zákazníků (CIAM). Produkty BioCatch analyzují fyzické a kognitivní digitální chování uživatelů a poskytují přehledy, které pomáhají odlišit legitimní zákazníky.

Další informace o biocatch najdete v biocatch.com.

Požadavky

Na začátek budete potřebovat:

Popis scénáře

Integrace bioCatch zahrnuje následující komponenty:

  • Webová aplikace nebo webová služba – uživatelé přejdou na tuto webovou službu, která vytvoří instanci jedinečného ID relace klienta, které přejde do biocatchu.
    • ID relace přenáší charakteristiky chování uživatele do biocatch.
  • Metoda – odešle ID relace do Azure AD B2C. V tomto příkladu JavaScript zadá hodnotu do skrytého pole HTML.
  • Přizpůsobené uživatelské rozhraní Azure AD B2C – skryje pole HTML pro vstup ID relace z JavaScriptu.
  • vlastní zásady Azure AD B2C:
    • Převezme ID relace jako deklaraci identity prostřednictvím technického profilu s vlastním nárokem.
    • Integruje se s bioCatchem prostřednictvím zprostředkovatele deklarací identity rozhraní REST API a předává ID relace do bioCatch.
    • Více vlastních deklarací identity vrácených z bioCatch pro logiku vlastních zásad
    • Cesta uživatele vyhodnotí vrácenou deklaraci identity a provede podmíněnou akci, jako je vícefaktorové ověřování.

Další informace:

Následující diagram znázorňuje toky uživatelů s informacemi o relacích.

Diagram toků uživatelů s informacemi o relacích

  1. Uživatel přejde do webové služby, která vrátí hodnoty HTML, CSS nebo JavaScript, a pak načte sadu BioCatch JavaScript SDK. JavaScript na straně klienta konfiguruje ID relace klienta pro sadu BioCatch SDK. Webová služba také předem nakonfiguruje ID relace klienta a odešle ho klientovi. Můžete nakonfigurovat instanci sady BioCatch JavaScript SDK pro BioCatch, která odesílá chování uživatele do bioCatch z klientského zařízení pomocí ID relace klienta.
  2. Uživatel se zaregistruje nebo přihlásí a je přesměrován na Azure AD B2C.
  3. Cesta uživatele zahrnuje zprostředkovatele deklarací identity, který zadává ID relace klienta. Toto pole je skryté. K zadání ID relace do pole použijte JavaScript. Vyberte Další a pokračujte v registraci nebo přihlášení. ID relace přejde do bioCatch pro rizikové skóre. BioCatch vrátí informace o relaci a doporučí povolit nebo blokovat. Cesta uživatele má podmíněnou kontrolu, která se chová na základě vrácených deklarací identity.
  4. Na základě výsledku podmíněné kontroly se vyvolá akce.
  5. Webová služba může pomocí ID relace dotazovat rozhraní BioCatch API k určení rizik a informací o relacích.

Začínáme s BioCatchem

Přejděte na stránku biocatch.com Kontaktujte nás a zahajte účet.

Konfigurace vlastního uživatelského rozhraní

Doporučujeme skrýt pole ID relace klienta pomocí šablon stylů CSS, JavaScriptu nebo jiné metody. Pro účely testování zobrazte pole. JavaScript například skryje vstupní pole jako:

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

Konfigurace zásad Azure AD B2C Identity Experience Framework

  1. Začněte kurzem Vytváření toků uživatelů a vlastních zásad v Azure AD B2C.

  2. Vytvořte nový soubor, který dědí ze souboru s příponou .

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. Vytvořte odkaz na vlastní uživatelské rozhraní pro skrytí vstupního pole v rámci prostředku 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. V části Prostředek BuildingBlocks přidejte následující deklarace identity.

    <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. Nakonfigurujte zprostředkovatele samoobslužných deklarací identity pro pole ID relace 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. Nakonfigurujte zprostředkovatele deklarací identity rozhraní REST API pro 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>
    

    Poznámka

    BioCatch poskytuje adresu URL, ID zákazníka a jedinečné ID uživatele (UUID). Deklarace id relace zákazníka se předává jako parametr řetězce dotazu do služby BioCatch. Můžete vybrat typ aktivity, například MAKE_PAYMENT.

  7. Nakonfigurujte cestu uživatele pomocí následujícího příkladu:

    • Získejte clientSessionID jako deklaraci identity.
    • Informace o relaci získáte voláním rozhraní BioCatch API.
    • Pokud je riziko vrácené deklarace identity nízké, přeskočte tento krok pro vícefaktorové ověřování, jinak vícefaktorové ověřování uživatele vynucujte.
    <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. Konfigurace předávající strany (volitelné) Informace vrácené službou BioCatch můžete předat vaší aplikaci jako deklarace identity v tokenu: úroveň rizika a skóre.

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

Integrace s Azure AD B2C

Přidejte soubory zásad do Azure AD B2C. Následující pokyny najdete v adresáři s tenantem Azure AD B2C.

  1. Přihlaste se k Azure Portal jako globální správce tenanta Azure AD B2C.
  2. Na panelu nástrojů portálu vyberte Adresáře a předplatná.
  3. Na stránce Nastavení portálu, Adresáře a předplatná vyhledejte v seznamu Název adresáře Azure AD adresář B2C.
  4. Vyberte Přepnout.
  5. V levém horním rohu Azure Portal vyberte Všechny služby.
  6. Vyhledejte a vyberte Azure AD B2C.
  7. Přejděte na Azure AD B2C>Identity Experience Framework.
  8. Nahrajte soubory zásad do tenanta.

Testování řešení

Následující pokyny najdete v tématu Kurz: Registrace webové aplikace v Azure Active Directory B2C.

  1. Zaregistrujte fiktivní aplikaci, která přesměruje na JWT.MS.

  2. V části Architektura prostředí identit vyberte zásadu, kterou jste vytvořili.

  3. V okně zásad vyberte fiktivní aplikaci JWT.MS.

  4. Vyberte Spustit.

  5. Proveďte tok registrace a vytvořte účet.

  6. Token vrácený do JWT.MS obsahuje 2x deklarace identity pro riskLevel a skóre.

  7. Použijte následující příklad.

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

Další materiály