Azure Active Directory B2C'de özel ilkeler kullanarak AD FS'yi SAML kimlik sağlayıcısı olarak ekleme
Başlamadan önce, ayarladığınız ilke türünü seçmek için İlke türü seçin 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.
Dekont
Azure Active Directory B2C'de özel ilkeler öncelikli olarak karmaşık senaryoları ele almak için tasarlanmıştır. Çoğu senaryoda, yerleşik kullanıcı akışlarını kullanmanızı öneririz. Bunu yapmadıysanız, Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümünde özel ilke başlangıç paketi hakkında bilgi edinin.
Bu makalede, Azure Active Directory B2C'de (Azure AD B2C) özel ilkeler kullanarak AD FS kullanıcı hesabı için oturum açmayı etkinleştirme işlemi gösterilmektedir. Özel bir ilkeye SAML kimlik sağlayıcısı ekleyerek oturum açmayı etkinleştirirsiniz.
Önkoşullar
- Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümündeki adımları tamamlayın.
- Henüz yapmadıysanız bir web uygulaması kaydedin.
Otomatik olarak imzalanan sertifika oluşturma
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.
Otomatik olarak imzalanan bir sertifika oluşturmak için aşağıdaki PowerShell komutunu çalıştırın. bağımsız değişkenini
-Subject
uygulamanız ve Azure AD B2C kiracı adı gibi uygun şekildecontosowebapp.contoso.onmicrosoft.com
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"
Windows bilgisayarda Kullanıcı sertifikalarını yönet'i arayın ve seçin
Sertifikalar - Geçerli Kullanıcı'nın altında Kişisel>Sertifikalar>yourappname.yourtenant.onmicrosoft.com'ni seçin.
Sertifikayı seçin ve ardından Tüm Görevleri>Dışarı Aktar eylemini>seçin.
İleri>Evet, özel anahtarı>dışarı aktar İleri'yi seçin.
Dosya Biçimini Dışarı Aktar varsayılanlarını kabul edin ve İleri'yi seçin.
Parolayı Etkinleştir seçeneğini belirleyin, sertifika için bir parola girin ve İleri'yi seçin.
Sertifikanızı kaydedeceğiniz konumu belirtmek için Gözat'ı seçin ve istediğiniz bir dizine gidin.
Farklı Kaydet penceresinde bir Dosya adı girin ve Kaydet'i seçin.
İleri>Son seçeneğini belirleyin.
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.
İlke anahtarı oluşturma
Sertifikanızı Azure AD B2C kiracınızda depolamanız gerekir.
- Azure Portal oturum açın.
- Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
- 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.
- Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
- İlke Anahtarları'nı ve ardından Ekle'yi seçin.
- Seçenekler için öğesini seçin
Upload
. - İlke anahtarı için bir Ad girin. Örneğin,
SAMLSigningCert
. Ön ekB2C_1A_
, anahtarınızın adına otomatik olarak eklenir. - Özel anahtarla sertifika .pfx dosyanıza gidin ve dosyayı seçin.
- Oluştur’a tıklayın.
Talep sağlayıcısı ekleme
Kullanıcıların BIR AD FS hesabı kullanarak oturum açmasını istiyorsanız, hesabı Azure AD B2C'nin bir uç nokta üzerinden iletişim kurabileceği bir talep sağlayıcısı olarak tanımlamanız gerekir. Uç nokta, belirli bir kullanıcının kimliğini doğrulamak için Azure AD B2C tarafından kullanılan bir dizi talep sağlar.
Ad FS hesabını, ilkenizin uzantı dosyasındaki ClaimsProviders öğesine ekleyerek talep sağlayıcısı olarak tanımlayabilirsiniz. Daha fazla bilgi için bkz . SAML kimlik sağlayıcısı tanımlama.
TrustFrameworkExtensions.xml dosyasını açın.
ClaimsProviders öğesini bulun. Yoksa kök öğesinin altına ekleyin.
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 AD FS account</Description> <Protocol Name="SAML2"/> <Metadata> <Item Key="WantsEncryptedAssertions">false</Item> <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="userPrincipalName" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name"/> <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>
değerini
your-AD-FS-domain
AD FS etki alanınızın adıyla değiştirin ve identityProvider çıkış talebi değerini DNS'nizle (etki alanınızı gösteren rastgele değer) değiştirin.<ClaimsProviders>
bölümünü bulun ve aşağıdaki XML parçacığını ekleyin. İlkeniz teknik profili zaten içeriyorsaSM-Saml-idp
sonraki adıma geçin. Daha fazla bilgi için bkz . çoklu oturum açma oturumu 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>
Dosyayı kaydedin.
Kullanıcı yolculuğu ekleme
Bu noktada, kimlik sağlayıcısı ayarlanmıştır, ancak henüz oturum açma sayfalarından herhangi birinde kullanılamaz. 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.
- Başlangıç paketinden TrustFrameworkBase.xml dosyasını açın.
- içeren
Id="SignUpOrSignIn"
UserJourney öğesinin tüm içeriğini bulun ve kopyalayın. - TrustFrameworkExtensions.xml dosyasını açın ve UserJourneys öğesini bulun. Öğesi yoksa bir tane ekleyin.
- UserJourneys öğesinin alt öğesi olarak kopyaladığınız UserJourney öğesinin tüm içeriğini yapıştırın.
- Kullanıcı yolculuğunun kimliğini 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.
veya içeren düzenleme adımı öğesini
Type="CombinedSignInAndSignUp"
Type="ClaimsProviderSelection"
kullanıcı yolculuğunda 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.Sonraki düzenleme adımında claimsexchange öğesi ekleyin. Kimliği hedef talep değişim kimliğinin değerine ayarlayın. TechnicalProfileReferenceId değerini daha önce oluşturduğunuz teknik profilin kimliğine güncelleştirin.
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ğlı olan taraf ilkesini yapılandırma
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 kimliğiyle eşleşecek şekilde güncelleştirin.
Aşağıdaki örnekte, kullanıcı yolculuğu için CustomSignUpSignIn
ReferenceId değeri olarak CustomSignUpSignIn
ayarlanmıştır:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Özel ilkeyi karşıya yükleme
- Azure Portal oturum açın.
- Portal araç çubuğunda Dizin + Abonelik simgesini ve ardından Azure AD B2C kiracınızı içeren dizini seçin.
- Azure portalında Azure AD B2C'yi arayın ve seçin.
- İlkeler'in altında Kimlik Deneyimi Çerçevesi'ne tıklayın.
- Ö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
, ve gibiSignUpSignIn.xml
bağlı olan taraf ilkesi.
AD FS bağlı olan taraf güvenini yapılandırma
AD FS'yi Azure AD B2C'de kimlik sağlayıcısı olarak kullanmak için Azure AD B2C SAML meta verileriyle bir AD FS Bağlı Taraf Güveni oluşturmanız gerekir. 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ınızın adıyla (örneğin, your-tenant.onmicrosoft.com).
- login.contoso.com gibi özel etki alanı adınız ile etki alanınız-adınız .
- ilkenizin adını yazın. Örneğin, B2C_1A_signup_signin_adfs.
- saml kimlik sağlayıcısı teknik profilinizin adıyla sizin-technical-profiliniz. Ö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. AD FS Yönetimi ek bileşenini kullanarak yeni bir bağlı olan taraf güveni eklemek ve ayarları el ile yapılandırmak için, federasyon sunucusunda aşağıdaki yordamı uygulayın. Yönetici istrators veya yerel bilgisayardaki eşdeğer üyelik, bu yordamı tamamlamak için gereken en düşük değerdir.
Sunucu Yöneticisi'nde Araçlar'ı ve sonra AD FS Yönetimi'ni seçin.
Bağımlı Taraf Güveni Ekle'yi seçin.
Hoş Geldiniz sayfasında Talep kullanan'ı ve ardından Başlat'ı seçin.
Veri Kaynağı Seç sayfasında Bağlı olan taraf çevrimiçi yayımlama veya yerel ağda verileri içeri aktar'ı seçin, Azure AD B2C meta veri URL'nizi sağlayın ve ardından İleri'yi seçin.
Görünen Ad Belirtin sayfasında, Bir Görünen ad girin, Notlar'ın altına bu bağlı olan taraf güveni için bir açıklama girin ve İleri'yi seçin.
Erişim Denetimi İlkesi Seç sayfasında bir ilke seçin ve ardından İleri'yi seçin.
Güven Eklemeye Hazır sayfasında ayarları gözden geçirin ve ardından bağlı olan taraf güven bilgilerinizi kaydetmek için İleri'yi seçin.
Son sayfasında Kapat'ı seçtiğinizde, bu eylem Talep Kurallarını Düzenle iletişim kutusunu otomatik olarak görüntüler.
Kural Ekle'yi seçin.
Talep kuralı şablonunda LDAP özniteliklerini talep olarak gönder'i seçin.
Talep kuralı adı girin. Öznitelik deposu için Active Directory Seç'i seçin, aşağıdaki talepleri ekleyin, ardından Son ve Tamam'ı seçin.
LDAP özniteliği Giden talep türü Kullanıcı Asıl Adı userPrincipalName Surname family_name Verilen Ad given_name E-posta Adresi e-posta Görünen Ad name Bazı adların giden talep türü açılan listesinde görüntülenmeyeceğini unutmayın. Bunları el ile yazmanız gerekir. (Açılan menü düzenlenebilir).
Sertifika türünüz temelinde KARMA algoritmasını ayarlamanız gerekebilir. Bağlı olan taraf güveni (B2C Tanıtım) özellikleri penceresinde Gelişmiş sekmesini seçin, Güvenli karma algoritmasınıolarak
SHA-256
değiştirin ve Tamam'ı seçin.Sunucu Yöneticisi'nde Araçlar'ı ve sonra AD FS Yönetimi'ni seçin.
Oluşturduğunuz bağlı olan taraf güvenini seçin, Federasyon Meta Verilerinden Güncelleştir'i ve ardından Güncelleştir'i seçin.
Özel ilkenizi test edin
- Azure Portal oturum açın.
- Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
- Azure portalında Azure AD B2C'yi arayın ve seçin.
- İlkeler'in altında Kimlik Deneyimi Çerçevesi'ne tıklayın
- Bağlı olan taraf ilkenizi seçin, örneğin
B2C_1A_signup_signin
. - Uygulama için daha önce kaydettiğiniz bir web uygulamasını seçin. Yanıt URL'si göstermelidir
https://jwt.ms
. - Şimdi çalıştır düğmesini seçin.
- Contoso AD FS kimlik sağlayıcısıyla oturum açmak için kaydolma veya oturum açma sayfasında Contoso AD FS'yi 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 öğesine yönlendirilir https://jwt.ms
.
AD FS hizmeti sorunlarını giderme
AD FS, Windows uygulama günlüğünü kullanacak şekilde yapılandırılmıştır. Azure AD B2C'de özel ilkeler kullanarak AD FS'yi SAML kimlik sağlayıcısı olarak ayarlamayla ilgili zorluklarla karşılaşırsanız, AD FS olay günlüğünü denetlemek isteyebilirsiniz:
- Windows Search çubuğuna Olay Görüntüleyicisi yazın ve ardından Olay Görüntüleyicisi masaüstü uygulamasını seçin.
- Farklı bir bilgisayarın günlüğünü görüntülemek için Olay Görüntüleyicisi (yerel) öğesine sağ tıklayın. Başka bir bilgisayara Bağlan seçin ve Bilgisayar Seç iletişim kutusunu tamamlamak için alanları doldurun.
- Olay Görüntüleyicisi'da Uygulama ve Hizmet Günlükleri'ni açın.
- AD FS'yi ve ardından Yönetici'ı seçin.
- Bir olay hakkında daha fazla bilgi görüntülemek için olaya çift tıklayın.
SAML isteği beklenen imza algoritması olayıyla imzalı değil
Bu hata, Azure AD B2C tarafından gönderilen SAML isteğinin AD FS'de yapılandırılmış beklenen imza algoritmasıyla imzalanmadığını gösterir. Örneğin, SAML isteği imza algoritmasıyla rsa-sha256
imzalanır, ancak beklenen imza algoritması olur rsa-sha1
. Bu sorunu çözmek için hem Azure AD B2C hem de AD FS'nin aynı imza algoritmasıyla yapılandırıldığından emin olun.
1. Seçenek: Azure AD B2C'de imza algoritmasını ayarlama
Azure AD B2C'de SAML isteğini imzalamayı yapılandırabilirsiniz. XmlSignatureAlgorithm meta verileri, SAML isteğindeki parametrenin SigAlg
(sorgu dizesi veya post parametre) değerini denetler. Aşağıdaki örnek, Azure AD B2C'yi imza algoritmasını rsa-sha256
kullanacak şekilde yapılandırılır.
<Metadata>
<Item Key="WantsEncryptedAssertions">false</Item>
<Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
<Item Key="XmlSignatureAlgorithm">Sha256</Item>
</Metadata>
2. Seçenek: AD FS'de imza algoritmasını ayarlama
Alternatif olarak, AD FS'de beklenen SAML istek imzası algoritmasını yapılandırabilirsiniz.
- Sunucu Yöneticisi'nde Araçlar'ı ve sonra AD FS Yönetimi'ni seçin.
- Daha önce oluşturduğunuz Bağlı Taraf Güveni'ni seçin.
- Özellikler'i ve ardından İlerle'yi seçin
- Güvenli karma algoritmasını yapılandırın ve değişiklikleri kaydetmek için Tamam'ı seçin.
HTTP-Redirect isteği, imzalı istek için gerekli 'signature' parametresini içermiyor (AADB2C90168)
Seçenek 1: Azure AD B2C'de ResponsesSigned değerini false olarak ayarlayın
Azure AD B2C'de imzalı ileti gereksinimini devre dışı bırakabilirsiniz. Aşağıdaki örnek, Azure AD B2C'yi imzalı istek için 'Signature' parametresi gerektirmemesi için yapılandırılır.
<Metadata>
<Item Key="WantsEncryptedAssertions">false</Item>
<Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
<Item Key="ResponsesSigned">false</Item>
</Metadata>
2. Seçenek: AD FS'de bağlı olan tarafı hem İletiyi hem de Onay'ı imzalayacak şekilde ayarlayın
Alternatif olarak, bağlı olan tarafı aşağıda belirtildiği gibi AD FS'de yapılandırabilirsiniz:
- PowerShell'i Yönetici istrator olarak açın ve hem İleti hem de Onay'ı imzalamak için cmdlet'i çalıştırın
Set-AdfsRelyingPartyTrust -TargetName <RP Name> -SamlResponseSignature MessageAndAssertion
. - Komutunu çalıştırın
Set-AdfsRelyingPartyTrust -TargetName <RP Name>
ve SamlResponseSignature özelliğinin MessageAndAssertion olarak ayarlandığını onaylayın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin