Aracılığıyla paylaş


Öğretici: Azure Active Directory B2C ile BioCatch'i yapılandırma

Müşteri Kimliği ve Erişim Yönetimi (CIAM) güvenlik duruşunuzu artırmak için Azure Active Directory B2C (Azure AD B2C) kimlik doğrulamasını BioCatch teknolojisiyle tümleştirmeyi öğrenin. BioCatch ürünleri, meşru müşterileri ayırt etmenize yardımcı olan içgörüler için kullanıcının fiziksel ve bilişsel dijital davranışlarını analiz eder.

Daha fazla Bilgi edinmek için biocatch.com'ye gidin BioCatch

Önkoşullar

Başlamak için gerekli olanlar:

Senaryo açıklaması

BioCatch tümleştirmesi aşağıdaki bileşenleri içerir:

  • Web uygulaması veya web hizmeti - Kullanıcılar, BioCatch'e giden benzersiz bir istemci oturum kimliğinin örneğini oluşturan bu web hizmetine göz atar
    • Oturum kimliği, kullanıcı davranışı özelliklerini BioCatch'e iletir
  • Yöntem - oturum kimliğini Azure AD B2C'ye gönderir. Örnekte JavaScript değeri gizli bir HTML alanına girer.
  • Azure AD B2C özelleştirilmiş kullanıcı arabirimi - JavaScript'ten oturum kimliği girişi için bir HTML alanını gizler
  • B2C özel ilkesini Azure AD:
    • Oturum kimliğini, kendi kendine onaylanan bir teknik profil aracılığıyla talep olarak alır
    • REST API talep sağlayıcısı aracılığıyla BioCatch ile tümleşir ve oturum kimliğini BioCatch'e geçirir
    • Özel ilke mantığı için BioCatch'ten birden çok özel talep döndürülmesi
    • Kullanıcı yolculuğu, döndürülen talebi değerlendirir ve çok faktörlü kimlik doğrulaması gibi bir koşullu eylem yürütür

Daha fazla bilgi edinin:

Aşağıdaki diyagramda oturum bilgilerine sahip kullanıcı akışları gösterilmektedir.

Oturum bilgileriyle kullanıcı akışlarının diyagramı.

  1. Kullanıcı, HTML, CSS veya JavaScript değerlerini döndüren web hizmetine göz atar ve ardından BioCatch JavaScript SDK'sını yükler. İstemci tarafı JavaScript, BioCatch SDK'sı için bir istemci oturum kimliği yapılandırıyor. Alternatif olarak, web hizmeti istemci oturum kimliğini önceden yapılandırıp istemciye gönderir. İstemci oturum kimliğini kullanarak kullanıcı davranışını istemci cihazından BioCatch'e gönderen BioCatch için örnek bioCatch JavaScript SDK'sını yapılandırabilirsiniz.
  2. Kullanıcı kaydolup oturum açar ve Azure AD B2C'ye yönlendirilir.
  3. Kullanıcı yolculuğu, istemci oturum kimliğini giriş yapan kendi kendini onaylayan bir talep sağlayıcısı içerir. Bu alan gizlidir. Alana oturum kimliğini girmek için JavaScript kullanın. Kaydolmaya veya oturum açmaya devam etmek için İleri'yi seçin. Oturum kimliği, risk puanı için BioCatch'e gider. BioCatch oturum bilgilerini döndürür ve izin verme veya engellemeyi önerir. Kullanıcı yolculuğu, döndürülen taleplere göre hareket eden bir koşullu denetime sahiptir.
  4. Koşullu denetim sonucuna bağlı olarak bir eylem çağrılır.
  5. Web hizmeti, risk ve oturum bilgilerini belirlemek üzere BioCatch API'sini sorgulamak için oturum kimliğini kullanabilir.

BioCatch'i kullanmaya başlama

Bir hesap başlatmak için biocatch.com Bize Ulaşın sayfasına gidin.

Özel kullanıcı arabirimini yapılandırma

İstemci Oturumu Kimliği alanını CSS, JavaScript veya başka bir yöntemle gizlemenizi öneririz. Test için alanı gösterebilirsiniz. Örneğin, JavaScript giriş alanını şu şekilde gizler:

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

Azure AD B2C Kimlik Deneyimi Çerçevesi ilkelerini yapılandırma

  1. Başlamak için bkz. Öğretici: Azure AD B2C'de kullanıcı akışları ve özel ilkeler oluşturma.

  2. Uzantılar dosyasından devralan yeni bir dosya oluşturun.

    <BasePolicy> 
    
        <TenantId>tenant.onmicrosoft.com</TenantId> 
    
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId> 
    
      </BasePolicy> 
    
  3. BuildingBlocks kaynağının altındaki giriş kutusunu gizlemek için özel kullanıcı arabirimine bir başvuru oluşturun.

    <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. BuildingBlocks kaynağının altına aşağıdaki talepleri ekleyin.

    <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. İstemci oturum kimliği alanı için kendi kendine onaylanan bir talep sağlayıcısı yapılandırın.

    <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. BioCatch için bir REST API talep sağlayıcısı yapılandırın.

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

    Not

    BioCatch URL'yi, müşteri kimliğini ve benzersiz kullanıcı kimliğini (UUID) sağlar. Müşteri SessionID talebi, BioCatch'e sorgu dizesi parametresi olarak geçer. Etkinlik türünü seçebilirsiniz, örneğin MAKE_PAYMENT.

  7. Aşağıdaki örneği kullanarak kullanıcı yolculuğunu yapılandırın:

    • clientSessionID değerini talep olarak alın.
    • Oturum bilgilerini almak için BioCatch API'sini çağırın.
    • Döndürülen talep riski düşükse, MFA adımını atlayın, aksi takdirde kullanıcı MFA'sını zorunlu kılın.
    <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. Bağlı olan tarafı yapılandırın (isteğe bağlı). BioCatch döndürülen bilgilerini uygulamanıza belirteçte talep olarak geçirebilirsiniz: risk düzeyi ve puan.

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

Azure AD B2C ile tümleştirme

İlke dosyalarını Azure AD B2C'ye ekleyin. Aşağıdaki yönergeler için Azure AD B2C kiracısıyla dizini kullanın.

  1. Azure AD B2C kiracısının Genel Yöneticisi olarak Azure portal oturum açın.
  2. Portal araç çubuğunda Dizinler + abonelikler'i seçin.
  3. Portal ayarları, Dizinler + abonelikler sayfasındaki Dizin adı listesinde Azure AD B2C dizinini bulun.
  4. Değiştir'i seçin.
  5. Azure portal sol üst köşesinde Tüm hizmetler'i seçin.
  6. Azure AD B2C'yi arayın ve seçin.
  7. Azure AD B2C>Kimlik Deneyimi Çerçevesi'ne gidin.
  8. İlke dosyalarını kiracıya yükleyin.

Çözümü test etme

Aşağıdaki yönergeler için bkz . Öğretici: Azure Active Directory B2C'de web uygulaması kaydetme

  1. JWT.MS'e yeniden yönlendiren sahte bir uygulamayı kaydedin.

  2. Kimlik Deneyimi Çerçevesi'nin altında oluşturduğunuz ilkeyi seçin.

  3. İlke penceresinde sahte JWT.MS uygulamasını seçin

  4. Şimdi çalıştır'ı seçin.

  5. Kaydolma akışı gerçekleştirin ve bir hesap oluşturun.

  6. JWT.MS döndürülen belirtecin risk Düzeyi ve puanı için 2 kat talebi vardır.

  7. Aşağıdaki örneği kullanın.

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

Ek kaynaklar