Delen via


Zelfstudie: BioCatch configureren met Azure Active Directory B2C

Meer informatie over het integreren van Azure Active Directory B2C-verificatie (Azure AD B2C) met BioCatch-technologie om uw CIAM-beveiligingspostuur (Customer Identity and Access Management) uit te breiden. BioCatch-producten analyseren fysiek en cognitief digitaal gedrag van gebruikers voor inzichten die legitieme klanten helpen onderscheiden.

Ga naar biocatch.com voor meer informatie Over BioCatch

Vereisten

Om aan de slag te gaan, hebt u het volgende nodig:

Scenariobeschrijving

BioCatch-integratie omvat de volgende onderdelen:

  • Een web-app of webservice : gebruikers bladeren naar deze webservice die een unieke clientsessie-id maakt die naar BioCatch gaat
    • De sessie-id verzendt kenmerken van gebruikersgedrag naar BioCatch
  • Een methode: verzendt de sessie-id naar Azure AD B2C. In het voorbeeld voert JavaScript de waarde in een verborgen HTML-veld in.
  • Een Azure AD aangepaste gebruikersinterface van B2C- verbergt een HTML-veld voor de sessie-id-invoer in JavaScript
  • Azure AD aangepast B2C-beleid:
    • Neemt de sessie-id als een claim via een zelf-gecontroleerd technisch profiel
    • Integreert met BioCatch via een REST API-claimprovider en geeft de sessie-id door aan BioCatch
    • Meerdere aangepaste claims retourneren van BioCatch voor de aangepaste beleidslogica
    • Een gebruikerstraject evalueert een geretourneerde claim en voert een voorwaardelijke actie uit, zoals meervoudige verificatie

Meer informatie:

In het volgende diagram ziet u gebruikersstromen met sessiegegevens.

Diagram van gebruikersstromen met sessiegegevens.

  1. De gebruiker bladert naar de webservice, die HTML-, CSS- of JavaScript-waarden retourneert en vervolgens de BioCatch JavaScript SDK laadt. JavaScript aan de clientzijde configureert een clientsessie-id voor de BioCatch SDK. De webservice configureert ook vooraf de clientsessie-id en verzendt deze naar de client. U kunt de geïnstantieerde BioCatch JavaScript SDK voor BioCatch configureren, waarmee gebruikersgedrag vanaf het clientapparaat naar BioCatch wordt verzonden met behulp van de clientsessie-id.
  2. De gebruiker registreert zich of meldt zich aan en wordt omgeleid naar Azure AD B2C.
  3. Het gebruikerstraject bevat een zelf-gecontroleerde claimprovider, die de clientsessie-id invoert. Dit veld is verborgen. Gebruik JavaScript om de sessie-id in het veld in te voeren. Selecteer Volgende om door te gaan met registreren of aanmelden. De sessie-id gaat naar BioCatch voor een risicoscore. BioCatch retourneert sessiegegevens en beveelt toestaan of blokkeren aan. Het gebruikerstraject heeft een voorwaardelijke controle, die reageert op de geretourneerde claims.
  4. Op basis van het resultaat van de voorwaardelijke controle wordt een actie aangeroepen.
  5. De webservice kan de sessie-id gebruiken om een query uit te voeren op de BioCatch-API om risico- en sessiegegevens te bepalen.

Aan de slag met BioCatch

Ga naar de pagina Biocatch.com Contact opnemen om een account te initiëren.

De aangepaste gebruikersinterface configureren

We raden u aan het veld Clientsessie-id te verbergen met CSS, JavaScript of een andere methode. Voor het testen moet u het veld zichtbaar maken. JavaScript verbergt bijvoorbeeld het invoerveld als:

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

Beleid voor Azure AD B2C Identity Experience Framework configureren

  1. Zie Zelfstudie: Gebruikersstromen en aangepaste beleidsregels maken in Azure AD B2C om aan de slag te gaan.

  2. Maak een nieuw bestand dat wordt overgenomen van het extensiebestand.

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. Maak een verwijzing naar de aangepaste gebruikersinterface om het invoervak te verbergen, onder de resource 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. Voeg onder de resource BuildingBlocks de volgende claims toe.

    <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. Configureer een zelf-gecontroleerde claimprovider voor het veld clientsessie-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. Configureer een REST API-claimprovider voor 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>
    

    Notitie

    BioCatch biedt de URL, klant-id en unieke gebruikers-id (UUID). De sessionID-claim van de klant wordt als een queryreeksparameter doorgegeven aan BioCatch. U kunt het activiteitstype selecteren, bijvoorbeeld MAKE_PAYMENT.

  7. Configureer het gebruikerstraject met behulp van het volgende voorbeeld:

    • Haal de clientSessionID op als een claim.
    • Roep de BioCatch-API aan om de sessiegegevens op te halen.
    • Als het geretourneerde claimrisico laag is, slaat u de stap voor MFA over, anders dwingt u gebruikers MFA af.
    <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. Relying Party configureren (optioneel). U kunt de door BioCatch geretourneerde informatie doorgeven aan uw toepassing als claims in het token: risiconiveau en 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>
    

Integreren met Azure AD B2C

Voeg de beleidsbestanden toe aan Azure AD B2C. Gebruik voor de volgende instructies de map met de Azure AD B2C-tenant.

  1. Meld u aan bij de Azure Portal als globale beheerder van de Azure AD B2C-tenant.
  2. Selecteer mappen en abonnementen in de portalwerkbalk.
  3. Zoek op de pagina Portalinstellingen, mappen en abonnementen, in de lijst Directorynaam, de Azure AD B2C-directory.
  4. Selecteer Schakelen.
  5. Selecteer In de linkerbovenhoek van de Azure Portal alle services.
  6. Ga naar Azure AD B2C en selecteer het.
  7. Navigeer naar Azure AD B2C>Identity Experience Framework.
  8. Upload de beleidsbestanden naar de tenant.

De oplossing testen

Zie Zelfstudie: Een webtoepassing registreren in Azure Active Directory B2C voor de volgende instructies

  1. Registreer een dummytoepassing die wordt omgeleid naar JWT.MS.

  2. Selecteer onder Identity Experience Framework het beleid dat u hebt gemaakt.

  3. Selecteer in het beleidsvenster de dummy-JWT.MS-toepassing

  4. Selecteer Nu uitvoeren.

  5. Voer een registratiestroom uit en maak een account.

  6. Het token dat wordt geretourneerd naar JWT.MS heeft 2x claims voor riskLevel en score.

  7. Gebruik het volgende voorbeeld.

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

Aanvullende resources