Aracılığıyla paylaş


Azure Active Directory B2C kullanarak SAML kimlik sağlayıcısıyla kaydolma ve oturum açma ayarlama

Önemli

1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.

Azure Active Directory B2C (Azure AD B2C), SAML 2.0 kimlik sağlayıcılarıyla federasyonu destekler. Bu makalede, kullanıcıların ADFS ve Salesforce gibi mevcut sosyal veya kurumsal kimlikleriyle oturum açmalarına olanak tanıyarak SAML kimlik sağlayıcısı kullanıcı hesabıyla oturum açmayı etkinleştirme işlemi gösterilmektedir.

Başlamadan önce, ayarlamakta olduğunuz ilke türünü seçmek için bu sayfanın üst kısmındaki İlke türü seç seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gerekli adımlar her yöntem için farklıdır.

Bu özellik yalnızca özel ilkeler için kullanılabilir. Kurulum adımları için, önceki seçicide Özel ilke'yi seçin.

Senaryoya genel bakış

Azure AD B2C'yi, kullanıcıların dış sosyal veya kurumsal SAML kimlik sağlayıcılarının (IdP) kimlik bilgileriyle uygulamanızda oturum açmasına izin verecek şekilde yapılandırabilirsiniz. Azure AD B2C bir SAML kimlik sağlayıcısıyla bir araya geldiğinde, SAML kimlik sağlayıcısına bir SAML isteği başlatan ve SAML yanıtı bekleyen bir hizmet sağlayıcısı işlevi görür. Aşağıdaki diyagramda:

  1. Uygulama, Azure AD B2C'ye bir yetkilendirme isteği başlatır. Uygulama bir OAuth 2.0 veya OpenId Connect uygulaması ya da SAML hizmet sağlayıcısı olabilir.
  2. Azure AD B2C oturum açma sayfasında, kullanıcı saml kimlik sağlayıcısı hesabıyla ( örneğin Contoso) oturum açmayı seçer. Azure AD B2C bir SAML yetkilendirme isteği başlatır ve kullanıcıyı oturum açma işlemini tamamlamak için SAML kimlik sağlayıcısına götürür.
  3. SAML kimlik sağlayıcısı bir SAML yanıtı döndürür.
  4. Azure AD B2C SAML belirtecini doğrular, talepleri ayıklar, kendi belirtecini çıkarır ve kullanıcıyı uygulamaya geri götürür.

SAML kimlik sağlayıcısı akışıyla oturum açma

Önkoşullar

Çözümün bileşenleri

Bu senaryo için aşağıdaki bileşenler gereklidir:

  • Azure AD B2C'den SAML isteklerini alma, çözme ve yanıtlama özelliğine sahip bir SAML kimlik sağlayıcısı .
  • Kimlik sağlayıcınız için genel kullanıma açık bir SAML meta veri uç noktası .
  • Azure AD B2C kiracısı.

Önemli

Uç noktalarınız Azure AD B2C güvenlik gereksinimlerine uygun olmalıdır. Eski TLS sürümleri ve şifreleri kullanım dışıdır. Daha fazla bilgi için Azure AD B2C TLS ve şifre paketi gereksinimleri bölümüne bakın.

İlke anahtarı oluşturma

Azure AD B2C ile SAML kimlik sağlayıcınız arasında güven oluşturmak için özel anahtarla geçerli bir X509 sertifikası sağlamanız gerekir. Azure AD B2C, sertifikanın özel anahtarını kullanarak SAML isteklerini imzalar. Kimlik sağlayıcısı, sertifikanın ortak anahtarını kullanarak isteği doğrular. Ortak anahtara teknik profil meta verileri aracılığıyla erişilebilir. Alternatif olarak, .cer dosyasını SAML kimlik sağlayıcınıza el ile yükleyebilirsiniz.

Otomatik olarak imzalanan sertifika çoğu senaryo için kabul edilebilir. Üretim ortamları için, bir sertifika yetkilisi tarafından verilen bir X509 sertifikası kullanılması önerilir. Ayrıca, bu belgenin ilerleyen bölümlerinde açıklandığı gibi, üretim dışı bir ortam için saml imzalamayı her iki tarafta da devre dışı bırakabilirsiniz.

Sertifika alma

Henüz bir sertifikanız yoksa, otomatik olarak imzalanan bir sertifika kullanabilirsiniz. Otomatik olarak imzalanan sertifika, sertifika yetkilisi (CA) tarafından imzalanmayan ve CA tarafından imzalanan bir sertifikanın güvenlik garantilerini sağlamayan bir güvenlik sertifikasıdır.

Windows'da, sertifika oluşturmak için PowerShell'de New-SelfSignedCertificate cmdlet'ini kullanın.

  1. Otomatik olarak imzalanan bir sertifika oluşturmak için aşağıdaki PowerShell komutunu çalıştırın. -Subject bağımsız değişkenini, uygulamanıza ve Azure AD B2C kiracı adınıza uygun olacak şekilde, contosowebapp.contoso.onmicrosoft.com olarak değiştirin. Ayrıca, sertifika için -NotAfter farklı bir süre sonu belirtmek üzere tarihi ayarlayabilirsiniz.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Windows bilgisayarda Kullanıcı sertifikalarını yönet'i arayın ve seçin

  3. Sertifikalar - Geçerli Kullanıcı altında Kişisel>Sertifikalar>yourappname.yourtenant.onmicrosoft.com seçin.

  4. Sertifikayı seçin ve ardından Seçenekler>Tüm Görevler>Dışa Aktar seçeneğini seçin.

  5. İleri Sonraki>Evet, özel anahtarı dışa aktar>Sonraki seçin.

  6. Dosya Biçimini Dışarı Aktar varsayılanlarını kabul edin ve İleri'yi seçin.

  7. Parolayı Etkinleştir seçeneğini belirleyin, sertifika için bir parola girin ve İleri'yi seçin.

  8. Sertifikanızı kaydedeceğiniz konumu belirtmek için Gözat'ı seçin ve istediğiniz bir dizine gidin.

  9. Farklı Kaydet penceresinde bir Dosya adı girin ve Kaydet'i seçin.

  10. İleri>Bitiş öğesini seçin.

Azure AD B2C'nin .pfx dosya parolasını kabul etmesi için, parolanın AES256-SHA256 yerine Windows Sertifika Deposu Dışarı Aktarma yardımcı programındaki TripleDES-SHA1 seçeneğiyle şifrelenmesi gerekir.

Sertifikayı karşıya yükle

Sertifikanızı Azure AD B2C kiracınızda depolamanız gerekir.

  1. Azure portalınaoturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin, sonra Ekle'yi seçin.
  6. Seçenekler için Upload öğesini seçin.
  7. İlke anahtarı için bir Ad girin. Örneğin, SAMLSigningCert. Ön ek B2C_1A_ , anahtarınızın adına otomatik olarak eklenir.
  8. Özel anahtarla sertifika .pfx dosyanıza gidin ve dosyayı seçin.
  9. Oluştur'utıklayın.

SAML teknik profilini yapılandırma

SAML kimlik sağlayıcısını ilkenizin uzantı dosyasındaki ClaimsProviders öğesine ekleyerek tanımlayın. Talep sağlayıcıları, SAML kimlik sağlayıcısıyla iletişim kurmak için gereken uç noktaları ve protokolleri belirleyen bir SAML teknik profili içerir. SAML teknik profiline sahip bir talep sağlayıcısı eklemek için:

  1. TrustFrameworkExtensions.xml açın.

  2. ClaimsProviders öğesini bulun. Eğer yoksa, bunu kök öğesinin altına ekleyin.

  3. Aşağıdaki gibi yeni bir ClaimsProvider ekleyin:

    <ClaimsProvider>
      <Domain>Contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-SAML2">
          <DisplayName>Contoso</DisplayName>
          <Description>Login with your SAML identity provider account</Description>
          <Protocol Name="SAML2"/>
          <Metadata>
            <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="http://schemas.microsoft.com/identity/claims/displayname" />
            <OutputClaim ClaimTypeReferenceId="email"  />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    

Aşağıdaki XML öğelerini ilgili değerle güncelleştirin:

XML öğesi Değer
Talep Sağlayıcı\Alan Doğrudan oturum açma için kullanılan etki alanı adı. Oturum açmada doğrudan kullanmak istediğiniz etki alanı adını girin. Örneğin , Contoso.com.
TechnicalProfile\DisplayName Bu değer, oturum açma ekranınızdaki oturum açma düğmesinde görüntülenir. Örneğin, Contoso.
Metadata\PartnerEntity SAML kimlik sağlayıcısının meta verilerinin URL'si. Veya kimlik sağlayıcısı meta verilerini kopyalayıp CDATA öğesinin <![CDATA[Your IDP metadata]]>içine ekleyebilirsiniz.

Hak taleplerini eşleme

OutputClaims öğesi, SAML kimlik sağlayıcısı tarafından döndürülen taleplerin listesini içerir. İlkenizde tanımlanan talebin adını kimlik sağlayıcısında tanımlanan onay adıyla eşleyin. Kimlik sağlayıcınızda talep listesi (onaylar) olup olmadığını denetleyin. Daha fazla bilgi için bkz. talep eşleme.

Yukarıdaki örnekte , Contoso-SAML2 bir SAML kimlik sağlayıcısı tarafından döndürülen talepleri içerir:

  • assertionSubjectName talebi issuerUserId talebiyle eşlenir.
  • first_name talebi givenName talebiyle eşlenir.
  • last_name talebi, soyadı talebiyle eşleştirilir.
  • Talep http://schemas.microsoft.com/identity/claims/displayname , displayName talebiyle eşlenir.
  • Ad eşlemesi olmayan e-posta talebi.

Teknik profil, kimlik sağlayıcı tarafından sağlanmayan iddiaları da içerir.

  • Kimlik sağlayıcısının adını içeren identityProvider talebi.
  • socialIdpAuthentication varsayılan değerine sahip authenticationSource talebi.

SAML oturumu teknik profilini ekleme

Halihazırda bir SM-Saml-idp SAML oturumu teknik profiliniz yoksa, uzantı ilkenize bir tane ekleyin. <ClaimsProviders> bölümünü bulun ve aşağıdaki XML parçacığını ekleyin. İlkeniz teknik profili zaten içeriyorsa SM-Saml-idp sonraki adıma geçin. Daha fazla bilgi için bkz. tek oturum açma oturum yönetimi.

<ClaimsProvider>
  <DisplayName>Session Management</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="SM-Saml-idp">
      <DisplayName>Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="IncludeSessionIndex">false</Item>
        <Item Key="RegisterServiceProviders">false</Item>
      </Metadata>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Bir kullanıcı yolculuğu ekleyin

Bu noktada, kimlik sağlayıcısı ayarlanmıştır, ancak henüz giriş sayfalarından herhangi birinde erişilebilir değildir. Kendi özel kullanıcı yolculuğunuz yoksa, mevcut şablon kullanıcı yolculuğunun bir kopyasını oluşturun, aksi takdirde sonraki adıma geçin.

  1. Başlangıç paketinden TrustFrameworkBase.xml dosyasını açın.
  2. içeren Id="SignUpOrSignIn" öğesinin tüm içeriğini bulun ve kopyalayın.
  3. TrustFrameworkExtensions.xml açın ve UserJourneys öğesini bulun. Öğesi yoksa bir tane ekleyin.
  4. UserJourneys öğesinin alt öğesi olarak kopyaladığınız UserJourney öğesinin tüm içeriğini yapıştırın.
  5. Kullanıcı yolculuğunun Id'sini yeniden adlandırın. Örneğin, Id="CustomSignUpSignIn".

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

Artık bir kullanıcı yolculuğunuz olduğuna göre, yeni kimlik sağlayıcısını kullanıcı yolculuğuna ekleyin. Önce bir oturum açma düğmesi eklersiniz, ardından düğmeyi bir eyleme bağlarsınız. Eylem, daha önce oluşturduğunuz teknik profildir.

  1. Kullanıcı yolculuğunda Type="CombinedSignInAndSignUp" veya Type="ClaimsProviderSelection" içeren düzenleme adımı öğesini bulun. Genellikle ilk düzenleme adımıdır. ClaimsProviderSelections öğesi, kullanıcının oturum açabileceği kimlik sağlayıcılarının listesini içerir. Öğelerin sırası, kullanıcıya sunulan oturum açma düğmelerinin sırasını denetler. ClaimsProviderSelection XML öğesi ekleyin. TargetClaimsExchangeId değerini kolay bir ad olarak ayarlayın.

  2. Sonraki düzenleme adımında claimsexchange öğesi ekleyin. Id'yi hedef talepler değişimi kimliğinin değerine ayarlayın. TechnicalProfileReferenceId değerini daha önce oluşturduğunuz teknik profilin Id'sine güncelleyin.

Aşağıdaki XML, kimlik sağlayıcısıyla bir kullanıcı yolculuğunun ilk iki düzenleme adımını gösterir:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-SAML2" />
  </ClaimsExchanges>
</OrchestrationStep>

Bağımlı taraf ilkesini yapılandırın

Bağlı olan taraf ilkesi, örneğin SignUpSignIn.xml, Azure AD B2C'nin yürüteceği kullanıcı yolculuğunu belirtir. Bağlı olan taraf içinde DefaultUserJourney öğesini bulun. ReferenceId değerini, kimlik sağlayıcısını eklediğiniz kullanıcı yolculuğu ID'si ile eşleşecek şekilde güncelleyin.

Aşağıdaki örnekte, kullanıcı yolculuğu için CustomSignUpSignInReferenceId değeri olarak CustomSignUpSignInayarlanmıştır:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Özel ilkeyi karşıya yükle

  1. Azure portalınaoturum açın.
  2. Portal araç çubuğunda Dizin + Abonelik simgesini ve ardından Azure AD B2C kiracınızı içeren dizini seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin.
  4. Politikalar altında Kimlik Deneyimi Çerçevesi seçin.
  5. Özel İlkeyi Karşıya Yükle'yi seçin ve değiştirdiğiniz iki ilke dosyasını şu sırayla karşıya yükleyin: uzantı ilkesi, örneğin TrustFrameworkExtensions.xml, ardından da SignUpSignIn.xml gibi bağlı olan taraf ilkesi.

SAML kimlik sağlayıcınızı yapılandırma

İlkeniz yapılandırıldıktan sonra SAML kimlik sağlayıcınızı Azure AD B2C SAML meta verileriyle yapılandırmanız gerekir. SAML meta verileri, ilkenizin , hizmet sağlayıcısının yapılandırmasını kullanıma açmak için SAML protokolünde kullanılan bilgilerdir. Hizmetlerin oturum açma ve oturum kapatma, sertifikalar, oturum açma yöntemi ve daha fazlası gibi konumunu tanımlar.

Her SAML kimlik sağlayıcısının bir hizmet sağlayıcısı ayarlamaya yönelik farklı adımları vardır. Bazı SAML kimlik sağlayıcıları Azure AD B2C meta verilerini isterken, diğerleri meta veri dosyasını el ile gözden geçirmenizi ve bilgileri sağlamanızı gerektirir. Rehberlik için kimlik sağlayıcınızın belgelerine bakın.

Aşağıdaki örnekte, Azure AD B2C teknik profilinin SAML meta verilerinin URL adresi gösterilmektedir:

https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

Özel etki alanı kullanırken aşağıdaki biçimi kullanın:

https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

Aşağıdaki değerleri değiştirin:

  • kiracı adınızı girin (örneğin, your-tenant.onmicrosoft.com).
  • etki-alanı-adınız gibi özel etki alanı adınızla özelleştirilmiş bir etki alanı kullanın, örneğin login.contoso.com.
  • ilkenizin adını yazın. Örneğin, B2C_1A_signup_signin_adfs.
  • SAML kimlik sağlayıcınızın teknik profili adıyla your-technical-profile. Örneğin, Contoso-SAML2.

Bir tarayıcı açın ve URL'ye gidin. Doğru URL'yi yazdığınızdan ve XML meta veri dosyasına erişiminiz olduğundan emin olun.

Özel ilkenizi test edin

  1. Azure portalınaoturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin.
  4. İlkeler altında Kimlik Deneyimi Çerçevesi'ni seçin
  5. Bağlı olan taraf ilkenizi seçin, örneğin B2C_1A_signup_signin.
  6. Uygulama için daha önce kaydettiğiniz bir web uygulamasını seçin. Yanıt URL'si göstermelidirhttps://jwt.ms.
  7. Şimdi çalıştır düğmesini seçin.
  8. Contoso hesabıyla oturum açmak için kaydolma veya oturum açma sayfasında Contoso'yı seçin.

Oturum açma işlemi başarılı olursa, tarayıcınız, Azure AD B2C tarafından döndürülen belirtecin içeriğini görüntüleyen https://jwt.ms adresine yönlendirilir.

Sonraki Adımlar