Aracılığıyla paylaş


Parolasız kimlik doğrulaması için Azure Active Directory B2C ile İletme Güvenliğini yapılandırma

Bu öğreticide, Azure Active Directory B2C (Azure AD B2C) kimlik doğrulamasını parolasız bir kimlik doğrulama çözümü olan İletme Güvenliği BindID ile tümleştirmeyi öğrenin. BindID, güvenilir çok kanallı kimlik doğrulaması için güçlü Fast Identity Online (FIDO2) biyometrik kimlik doğrulaması kullanır. Çözüm, cihazlar ve kanallar genelinde müşteriler için sorunsuz oturum açma deneyimi sağlarken sahtekarlık, kimlik avı ve kimlik bilgisi yeniden kullanımını azaltır.

Senaryo açıklaması

Aşağıdaki mimari diyagramında uygulama gösterilmektedir.

BindID ve Azure AD B2C mimarisinin diyagramı.

  1. Kullanıcı Azure AD B2C oturum açma sayfasını açar ve oturum açar veya kaydolr.
  2. Azure AD B2C, kullanıcıyı OpenID Connect (OIDC) isteği kullanarak BindID'ye yönlendirir.
  3. BindID, parmak izi gibi appless FIDO2 biyometrisini kullanarak kullanıcının kimliğini doğrular.
  4. BindID'ye merkezi olmayan bir kimlik doğrulama yanıtı döndürülür.
  5. OIDC yanıtı Azure AD B2C'ye geçer.
  6. Doğrulama sonuçlarına bağlı olarak kullanıcıya uygulamaya erişim izni verilir veya erişim reddedilir.

Önkoşullar

Başlamak için gerekli olanlar:

BindID'de uygulama kaydetme

Başlamak için:

  1. Uygulamanızı Yapılandırmak için developer.bindid.io gidin.
  2. BindID Yönetici Portalı'nda bir uygulama ekleyin. Oturum açma gereklidir.
Özellik Açıklama
Ad Uygulama adı
Etki alanı your-B2C-tenant-name.onmicrosoft.com yazın. değerini Azure AD B2C kiracınızla değiştirinyour-B2C-tenant.
Yeniden yönlendirme URI'leri https://jwt.ms/
Yeniden Yönlendirme URL'leri https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp yazın. değerini Azure AD B2C kiracınızla değiştirinyour-B2C-tenant. Özel etki alanı için değerini özel etki alanınızla değiştirin your-B2C-tenant-name.b2clogin.com .
  1. Kayıt sonrasında bir İstemci Kimliği ve gizli dizi görüntülenir.
  2. Daha sonra kullanmak üzere değerleri kaydedin.

Azure AD B2C'de BindID'yi kimlik sağlayıcısı olarak yapılandırma

Aşağıdaki yönergeler için dizini Azure AD B2C kiracınızla birlikte kullanın.

  1. Azure portal Genel Yönetici olarak oturum açın.
  2. Portal araç çubuğunda Dizinler + abonelikler'i seçin.
  3. Portal ayarlarında | 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. Kimlik sağlayıcıları'ı seçin.
  8. Yeni OpenID Connect sağlayıcısı'yı seçin.
  9. Bir Ad girin.
  10. Meta Veri URL'si için girinhttps://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. İstemci Kimliği için kaydettiğiniz İstemci Kimliğini girin.
  12. gizli dizi için kaydettiğiniz gizli diziyi girin.
  13. Kapsam alanına girinopenid email.
  14. Yanıt türü olarak kodu seçin.
  15. Yanıt modu için form_post'ı seçin.
  16. Kimlik sağlayıcısı talep eşlemesi'nin altında Kullanıcı Kimliği için öğesini seçinsub.
  17. Email için öğesini seçinemail.
  18. Kaydet’i seçin.

Kullanıcı akışı oluşturma

  1. Azure AD B2C kiracınızda, İlkeler'in altında Kullanıcı akışları'yı seçin.
  2. Yeni kullanıcı akışı’nı seçin.
  3. Kaydol'a tıklayın ve kullanıcı akışı türünde oturum açın.
  4. Oluştur’u seçin.
  5. Bir Ad girin.
  6. Kimlik sağlayıcıları'nın altında Yerel Hesaplar için Yok'a tıklayın. Bu eylem, e-posta ve parola tabanlı kimlik doğrulamasını devre dışı bırakır.
  7. Özel kimlik sağlayıcıları için BindID ile oturum açma gibi oluşturulan BindID Kimlik sağlayıcısını seçin.
  8. Oluştur’u seçin.

Kullanıcı akışını test etme

  1. Azure AD B2C kiracısında Kullanıcı akışları'nı seçin.
  2. Oluşturulan kullanıcı akışını ( B2C_1_signupsignin gibi) seçin.
  3. Uygulama için kaydettiğiniz web uygulamasını seçin. Yanıt URL'si şeklindedirhttps://jwt.ms.
  4. Kullanıcı akışını çalıştır'ı seçin.
  5. Tarayıcı BindID oturum açma sayfasına yönlendirilir.
  6. Kayıtlı hesap e-postasını girin.
  7. Parmak izi gibi elma FIDO2 biyometrisini kullanarak kimlik doğrulaması yapar.
  8. Tarayıcı adresine https://jwt.msyönlendirilir. İçeriği, Azure AD B2C tarafından döndürülen belirteç için görünür.

BindID ilke anahtarı oluşturma

BindID uygulaması İstemci Gizli Anahtarını ilke anahtarı olarak ekleyin. Aşağıdaki yönergeler için dizini Azure AD B2C kiracınızla birlikte kullanın.

  1. Azure Portal’ında oturum açın.
  2. Portal araç çubuğunda Dizinler + abonelikler'i seçin.
  3. Portal ayarlarında | Dizinler + abonelikler sayfasında, Dizin adı listesinde Azure AD B2C dizinini bulun.
  4. Değiştir'i seçin.
  5. Genel Bakış sayfasındaki İlkeler'in altında Kimlik Deneyimi Çerçevesi'ni seçin.
  6. İlke Anahtarları'nı seçin.
  7. Add (Ekle) seçeneğini belirleyin.
  8. Seçenekler için El ile'yi seçin.
  9. Bir Ad girin. Ön ek B2C_1A_ anahtar adına eklenir.
  10. Gizli dizi alanına kaydettiğiniz gizli diziyi girin.
  11. Anahtar kullanımı için İmza'yı seçin.
  12. Oluştur’u seçin.

BindID'yi kimlik sağlayıcısı olarak yapılandırma

BindID ile oturum açmayı etkinleştirmek için BindID'yi B2C'Azure AD bir uç nokta üzerinden iletişim kuran bir talep sağlayıcısı olarak tanımlayın. Uç nokta, Azure AD B2C tarafından bir cihazda dijital kimlikle kimlik doğrulaması yapılan bir kullanıcıyı doğrulamak için kullanılan talepleri sağlar.

BindID'yi talep sağlayıcısı olarak ekleyin. Başlamak için GitHub'dan özel ilke başlangıç paketlerini alın, ardından SocialAndLocalAccounts başlangıç paketindeki XML dosyalarını Azure AD B2C kiracı adınızla güncelleştirin:

  1. Zip klasörünü açınactive-directory-b2c-custom-policy-starterpack-main.zip veya depoyu kopyalayın:

        git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. LocalAccounts dizinindeki dosyalarda dizesini yourtenant Azure AD B2C kiracı adıyla değiştirin.

  3. LocalAccounts/ TrustFrameworkExtensions.xmluygulamasını açın.

  4. ClaimsProviders öğesini bulun. Görünmezse, kök öğesinin altına ekleyin.

  5. Aşağıdaki örneğe benzer yeni bir ClaimsProvider ekleyin:

     <ClaimsProvider>
         <Domain>signin.bindid-sandbox.io</Domain>
         <DisplayName>BindID</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="BindID-OpenIdConnect">
             <DisplayName>BindID</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the BindID Application ID -->
               <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
               <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
             </OutputClaims>
             <OutputClaimsTransformations>
               <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
               <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
               <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
             </OutputClaimsTransformations>
             <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
           </TechnicalProfile>
         </TechnicalProfiles>
       </ClaimsProvider>    
    
  6. Kaydettiğiniz BindID Uygulama Kimliği ile client_id ayarlayın.

  7. Kaydet’i seçin.

Kullanıcı yolculuğu ekleme

Kimlik sağlayıcısı oturum açma sayfalarında değil. Özel bir kullanıcı yolculuğunuz varsa Kimlik sağlayıcısını bir kullanıcı yolculuğuna ekleme bölümüne geçin, aksi takdirde yinelenen bir şablon kullanıcı yolculuğu oluşturun:

  1. Başlangıç paketinden dosyayı açın LocalAccounts/ TrustFrameworkBase.xml .
  2. öğesini içeren Id=SignUpOrSignInUserJourney öğesinin içeriğini bulun ve kopyalayın.
  3. LocalAccounts/ TrustFrameworkExtensions.xmluygulamasını açın.
  4. UserJourneys öğesini bulun. Öğe yoksa bir öğe ekleyin.
  5. UserJourney öğesini UserJourneys öğesinin alt öğesi olarak yapıştırın.
  6. Kullanıcı yolculuğu kimliğini yeniden adlandırın.

Kimlik sağlayıcısını kullanıcı yolculuğuna ekleme

Yeni kimlik sağlayıcısını kullanıcı yolculuğuna ekleyin.

  1. veya kullanıcı yolculuğunda içeren Type=CombinedSignInAndSignUpType=ClaimsProviderSelection düzenleme adımı öğesini bulun. Bu genellikle ilk düzenleme adımıdır. ClaimsProviderSelections öğesinde kullanıcıların oturum açabilecekleri bir kimlik sağlayıcısı listesi vardır. Öğelerin sırası, oturum açma düğmelerinin sırasını denetler.
  2. ClaimsProviderSelection XML öğesi ekleyin.
  3. TargetClaimsExchangeId değerini kolay bir ad olarak ayarlayın.
  4. ClaimsExchange öğesi ekleyin.
  5. Kimlik değerini hedef talep değişim kimliğinin değerine ayarlayın. Bu eylem BindID düğmesini öğesine BindID-SignInbağlar.
  6. TechnicalProfileReferenceId değerini oluşturduğunuz teknik profil kimliğiyle güncelleştirin.

Aşağıdaki XML, kimlik sağlayıcısıyla kullanıcı yolculuğunu düzenlemeyi gösterir.

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>
    
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

Bağlı olan taraf ilkesini yapılandırma

Bağlı olan taraf ilkesi, örneğin SignUpOrSignIn.xml, B2C'nin yürüttüğü Azure AD kullanıcı yolculuğunu belirtir. PolicyProfile TechnicalProfile öğesinin OutputClaims öğesini ayarlayarak uygulamanıza geçirilen talepleri denetleyebilirsiniz. Bu öğreticide uygulama görünen ad, verilen ad, soyadı, e-posta, objectId, kimlik sağlayıcısı ve tenantId gibi kullanıcı özniteliklerini alır.

Bkz. Azure-Samples/active-directory-b2c-custom-policy-starterpack

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
    <TechnicalProfile Id="BindID-OpenIdConnect">
      <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="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

Özel ilkeyi karşıya yükleme

  1. Azure Portal’ında oturum açın.
  2. Portal araç çubuğunda Dizinler + abonelikler'i seçin.
  3. Portal ayarlarında | Dizinler + abonelikler sayfasındaki Dizin adı listesinde Azure AD B2C dizinini bulun.
  4. Değiştir'i seçin.
  5. Azure portal Azure AD B2C'yi arayın ve seçin.
  6. İlkeler'in altında Kimlik Deneyimi Çerçevesi'ne tıklayın.
  7. Özel İlkeyi Karşıya Yükle'yi seçin.
  8. LocalAccounts başlangıç paketindeki dosyaları aşağıdaki sırayla karşıya yükleyin:
  • Temel ilke, örneğin TrustFrameworkBase.xml
  • Yerelleştirme ilkesi, örneğin TrustFrameworkLocalization.xml
  • Uzantı ilkesi, örneğin TrustFrameworkExtensions.xml
  • Bağlı olan taraf ilkesi, örneğin SignUpOrSignIn.xml

Özel ilkenizi test etme

Aşağıdaki yönergeler için dizini Azure AD B2C kiracınızla birlikte kullanın.

  1. Azure AD B2C kiracısında ve İlkeler'in altında Kimlik Deneyimi Çerçevesi'ni seçin.
  2. Özel ilkeler'in altında B2C_1A_signup_signin'ı seçin.
  3. Uygulama için kaydettiğiniz web uygulamasını seçin. Yanıt URL'si şeklindedirhttps://jwt.ms.
  4. Şimdi çalıştır'ı seçin.
  5. Tarayıcı BindID oturum açma sayfasına yönlendirilir.
  6. Kayıtlı hesap e-postasını girin.
  7. Parmak izi gibi elma FIDO2 biyometrisini kullanarak kimlik doğrulaması yapın.
  8. Tarayıcı adresine https://jwt.msyönlendirilir. Azure AD B2C tarafından döndürülen belirteç içeriği görüntülenir.

Sonraki adımlar

Ek bilgi için aşağıdaki makaleleri gözden geçirin: