Share via


Tutoriel : Configurer BioCatch avec Azure Active Directory B2C

Découvrez comment intégrer l’authentification Azure Active Directory B2C (Azure AD B2C) avec la technologie BioCatch pour améliorer votre posture de sécurité pour la gestion des identités et des accès client (CIAM). Les produits BioCatch analysent les comportements numériques physiques et cognitifs des utilisateurs pour obtenir des insights qui aident à distinguer les clients légitimes.

Accédez à biocatch.com BioCatch pour en savoir plus

Prérequis

Pour commencer, vous avez besoin des éléments suivants :

Description du scénario

L’intégration BioCatch inclut les composants suivants :

  • Une application web ou un service web : les utilisateurs accèdent à ce service web qui instancie un ID de session client unique qui accède à BioCatch
    • L’ID de session transmet les caractéristiques de comportement de l’utilisateur à BioCatch
  • Une méthode : envoie l’ID de session à Azure AD B2C. Dans l’exemple, JavaScript entre la valeur dans un champ HTML masqué.
  • Une interface utilisateur Azure AD B2C personnalisée : masque un champ HTML pour l’entrée de l’ID de session à partir de JavaScript
  • Stratégie personnalisée Azure Active Directory B2C :
    • Prend l’ID de session comme revendication via un profil technique autodéclaré
    • S’intègre à BioCatch via un fournisseur de revendications d’API REST et transmet l’ID de session à BioCatch
    • Plusieurs revendications personnalisées sont retournées à partir de BioCatch pour la logique de stratégie personnalisée
    • Un parcours utilisateur évalue une revendication retournée et exécute une action conditionnelle, telle que l’authentification multifacteur

En savoir plus :

Le diagramme suivant illustre les flux d’utilisateurs avec des informations de session.

Diagramme de flux d’utilisateurs avec des informations de session.

  1. L’utilisateur accède au service web, qui retourne des valeurs HTML, CSS ou JavaScript, puis charge le kit de développement logiciel (SDK) JavaScript BioCatch. Le JavaScript côté client configure l’ID de session client pour le kit de développement logiciel (SDK) BioCatch. Le service web préconfigure également l’ID de session client et l’envoyer au client. Vous pouvez configurer le SDK JavaScript BioCatch instancié pour BioCatch, qui envoie le comportement de l’utilisateur à BioCatch à partir de l’appareil client, à l’aide de l’ID de session client.
  2. L’utilisateur s’inscrit ou se connecte et est redirigé vers Azure AD B2C.
  3. Le parcours utilisateur inclut un fournisseur de revendications autodéclarées, qui entre l’ID de session client. Ce champ est masqué. Utilisez JavaScript pour entrer l’ID de session dans le champ. Sélectionnez Suivant pour continuer l’inscription ou la connexion. L’ID de session est envoyé à BioCatch pour obtenir un score de risque. BioCatch retourne des informations de session et recommande d’autoriser ou de bloquer. Le parcours utilisateur comporte une vérification conditionnelle, qui agit sur les revendications retournées.
  4. En fonction du résultat de la vérification conditionnelle, une action est appelée.
  5. Le service web peut utiliser l’ID de session pour interroger l’API BioCatch pour déterminer les risques et les informations de session.

Démarrage de BioCatch

Accédez à la page Nous contacter de biocatch.com pour lancer un compte.

Configurer l’interface utilisateur personnalisée

Nous vous recommandons de masquer le champ ID de session du client avec CSS, JavaScript ou une autre méthode. Pour le test, affichez le champ. Par exemple, JavaScript masque le champ d’entrée comme suit :

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

Configurer les stratégies Active Directory B2C Identity Experience Framework

  1. Pour démarrer, voir Tutoriel : Créer des flux d’utilisateurs et des stratégies personnalisées dans Azure AD B2C.

  2. Créez un fichier qui hérite du fichier d’extensions.

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. Créez une référence à l’interface utilisateur personnalisée pour masquer la zone d’entrée, sous la ressource 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. Sous la ressource BuildingBlocks, ajoutez les revendications suivantes.

    <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. Configurez un fournisseur de revendications auto-déclaré pour le champ d’ID de session client.

    <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. Configurez le fournisseur de revendications de l’API REST pour 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>
    

    Notes

    BioCatch vous fournit l’URL, l’ID client et l’ID d’utilisateur unique (UUID). La revendication SessionID du client est transmise comme paramètre de chaîne de requête à BioCatch. Vous pouvez sélectionner le type d’activité, par exemple MAKE_PAYMENT.

  7. Configurez le parcours utilisateur à l’aide de l’exemple suivant :

    • Obtenez le clientSessionID en tant que revendication.
    • Appelez l’API BioCatch pour accéder aux informations de session.
    • Si le risque de revendication retourné est faible, ignorez l’étape pour l’authentification multifacteur, sinon forcez l’authentification multifacteur de l’utilisateur.
    <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. Configurez la partie de confiance (facultatif). Vous pouvez transmettre les informations renvoyées par BioCatch à votre application sous forme de revendications dans le jeton : risklevel et 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>
    

Intégrer avec Azure AD B2C

Ajoutez les fichiers de stratégie à Azure AD B2C. Pour les instructions suivantes, utilisez le répertoire avec le locataire Azure AD B2C.

  1. Connectez-vous au portail Azure en tant qu’administrateur général de votre abonné Azure AD B2C.
  2. Dans la barre d’outils du portail, sélectionnez Répertoires + abonnements.
  3. Sur la page Paramètres du portail, Répertoires + abonnements, dans la liste Nom de répertoire, repérez votre répertoire Azure AD B2C.
  4. Sélectionnez Changer.
  5. En haut à gauche du portail Azure, sélectionnez Tous les services.
  6. Recherchez et sélectionnez Azure AD B2C.
  7. Accédez à Azure AD B2C>Identity Experience Framework.
  8. Chargez les fichiers de stratégie sur le locataire.

Test de la solution

Pour obtenir les instructions suivantes, consultez Tutoriel : Inscrire une application web dans Azure Active Directory B2C

  1. Inscrivez une application factice qui redirige vers JWT.MS.

  2. Sous Identity Experience Framework, sélectionnez la stratégie que vous avez créée.

  3. Dans la fenêtre de stratégie, sélectionnez l’application factice JWT.MS.

  4. Sélectionnez Exécuter maintenant.

  5. Suivez un flux d’inscription et créez un compte.

  6. Le jeton renvoyé à JWT.MS doit avoir 2 revendications pour riskLevel et score.

  7. Utilisez l’exemple suivant.

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

Ressources supplémentaires