Azure AD B2C'de SAML uygulaması kaydetme
Bu makalede, kimlik doğrulaması için Güvenlik Onaylama İşaretleme Dili (SAML) uygulamalarınızı (hizmet sağlayıcıları) Azure Active Directory B2C'ye (Azure AD B2C) bağlamayı öğrenin.
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.
Genel Bakış
Müşteri kimliği ve erişim yönetimi çözümü olarak Azure AD B2C kullanan kuruluşlar, SAML protokollerini kullanarak kimlik doğrulaması yapılan uygulamalarla tümleştirme gerektirebilir. Aşağıdaki diyagramda Azure AD B2C'nin SAML tabanlı uygulamalarla çoklu oturum açma (SSO) elde etmek için kimlik sağlayıcısı (IdP) olarak nasıl hizmet ettiği gösterilmektedir.
- Uygulama, Azure AD B2C için SAML oturum açma uç noktasına gönderilen bir SAML AuthN isteği oluşturur.
- Kullanıcı kimlik doğrulaması için bir Azure AD B2C yerel hesabı veya başka bir federasyon kimlik sağlayıcısı (yapılandırıldıysa) kullanabilir.
- Kullanıcı federasyon kimlik sağlayıcısı kullanarak oturum açarsa, Azure AD B2C'ye bir belirteç yanıtı gönderilir.
- Azure AD B2C bir SAML onayı oluşturur ve bunu uygulamaya gönderir.
SAML uygulamalarını Azure AD B2C ile tümleştirmeyi öğrenmek için bu videoyu izleyin.
Önkoşullar
Bu makaledeki senaryo için şunlar gerekir:
- Özel bir ilke başlangıç paketinden SocialAndLocalAccounts özel ilkesi. Azure AD B2C'de özel ilkeleri kullanmaya başlama bölümündeki adımları tamamlayın.
- SAML protokolü hakkında temel bilgiler ve uygulamanın SAML uygulaması hakkında bilgi.
- SAML uygulaması olarak yapılandırılmış bir web uygulaması. SamL AuthN istekleri gönderebilme ve Azure AD B2C'den SAML yanıtlarını alma, çözme ve doğrulama özelliğine sahip olmalıdır. SAML uygulaması, bağlı olan taraf uygulaması veya hizmet sağlayıcısı olarak da bilinir.
- SAML uygulamasının genel kullanıma açık SAML meta veri uç noktası veya XML belgesi.
- Azure AD B2C kiracısı.
Henüz bir SAML uygulamanız ve ilişkili bir meta veri uç noktanız yoksa, test için kullanıma sunduğumuz SAML test uygulamasını kullanabilirsiniz.
Ö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 bkz . Azure AD B2C TLS ve şifre paketi gereksinimleri.
Sertifikaları ayarlama
Uygulamanızla Azure AD B2C arasında bir güven ilişkisi oluşturmak için her iki hizmetin de birbirlerinin imzalarını oluşturabilmesi ve doğrulayabilmesi gerekir. Uygulamanızda ve Azure AD B2C'de X509 sertifikalarını yapılandırın.
Uygulama sertifikaları
Kullanım | Zorunlu | Tanım |
---|---|---|
SAML isteği imzalama | Hayır | Web uygulamanızda depolanan özel anahtara sahip bir sertifika. Uygulamanız, Azure AD B2C'ye gönderilen SAML isteklerini imzalamak için sertifikayı kullanır. Web uygulamasının ortak anahtarı SAML meta veri uç noktası aracılığıyla kullanıma sunması gerekir. Azure AD B2C, uygulama meta verilerindeki ortak anahtarı kullanarak SAML istek imzasını doğrular. |
SAML onay şifrelemesi | Hayır | Web uygulamanızda depolanan özel anahtara sahip bir sertifika. Web uygulamasının ortak anahtarı SAML meta veri uç noktası aracılığıyla kullanıma sunması gerekir. Azure AD B2C, ortak anahtarı kullanarak uygulamanıza yönelik onayları şifreleyebilir. Uygulama, onaylama işleminin şifresini çözmek için özel anahtarı kullanır. |
Azure AD B2C sertifikaları
Kullanım | Zorunlu | Tanım |
---|---|---|
SAML yanıt imzalama | Evet | Azure AD B2C'de depolanan özel anahtara sahip bir sertifika. Azure AD B2C, uygulamanıza gönderilen SAML yanıtını imzalamak için bu sertifikayı kullanır. Uygulamanız, SAML yanıtının imzasını doğrulamak için Azure AD B2C'deki meta veri ortak anahtarını okur. |
SAML onay imzalama | Evet | Azure AD B2C'de depolanan özel anahtara sahip bir sertifika. Azure AD B2C, SAML yanıtının <saml:Assertion> bölümünü imzalamak için bu sertifikayı kullanır. |
Üretim ortamında, genel sertifika yetkilisinin verdiği sertifikaları kullanmanızı öneririz. Ancak bu yordamı otomatik olarak imzalanan sertifikalarla da tamamlayabilirsiniz.
İlke anahtarı oluşturma
Uygulamanızla Azure AD B2C arasında güven ilişkisine sahip olmak için SAML yanıtı için bir imzalama sertifikası oluşturun. Azure AD B2C, uygulamanıza gönderilen SAML yanıtını imzalamak için bu sertifikayı kullanır. Uygulamanız, SAML yanıtının imzasını doğrulamak için Azure AD B2C için meta veri ortak anahtarını okur.
Bahşiş
Bu ilke anahtarını SAML onayını imzalama gibi başka amaçlar için kullanabilirsiniz.
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.
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.
Sertifikayı karşıya yükleme
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 Karşıya Yükle'yi seçin.
- Ad alanına ilke anahtarı için bir ad girin. Örneğin, SamlIdpCert girin. B2C_1A_ ön eki anahtarınızın adına otomatik olarak eklenir.
- Özel anahtarla sertifika .pfx dosyanıza gidin ve dosyayı seçin.
- Oluştur seçeneğini belirleyin.
saml uygulamasına bağlanmak için ilkenizi etkinleştirme
SAML uygulamanıza bağlanmak için Azure AD B2C'nin SAML yanıtları oluşturabilmesi gerekir.
Özel ilke başlangıç paketinde SocialAndLocalAccounts\TrustFrameworkExtensions.xml dosyasını açın.
<ClaimsProviders>
bölümünü bulun ve SAML yanıt oluşturucunuzu uygulamak için aşağıdaki XML parçacığını ekleyin:
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<!-- SAML Token Issuer technical profile -->
<TechnicalProfile Id="Saml2AssertionIssuer">
<DisplayName>Token Issuer</DisplayName>
<Protocol Name="SAML2"/>
<OutputTokenFormat>SAML2</OutputTokenFormat>
<Metadata>
<Item Key="IssuerUri">https://issuerUriMyAppExpects</Item>
</Metadata>
<CryptographicKeys>
<Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
<Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SamlIdpCert"/>
</CryptographicKeys>
<InputClaims/>
<OutputClaims/>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuer"/>
</TechnicalProfile>
<!-- Session management technical profile for SAML-based tokens -->
<TechnicalProfile Id="SM-Saml-issuer">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
SAML yanıtının veren URI'sini yapılandırma
SAML Belirteci Veren teknik profilinde meta veri öğesinin değerini IssuerUri
değiştirebilirsiniz. Bu değişiklik, Azure AD B2C'den issuerUri
SAML yanıtında döndürülen özniteliğine yansıtılır. Uygulamanızı SAML yanıt doğrulaması sırasında aynı IssuerUri
değeri kabul etmek üzere yapılandırın.
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<!-- SAML Token Issuer technical profile -->
<TechnicalProfile Id="Saml2AssertionIssuer">
<DisplayName>Token Issuer</DisplayName>
<Protocol Name="SAML2"/>
<OutputTokenFormat>SAML2</OutputTokenFormat>
<Metadata>
<Item Key="IssuerUri">https://issuerUriMyAppExpects</Item>
</Metadata>
...
</TechnicalProfile>
İlkenizi SAML yanıtı vermek için yapılandırma
artık ilkeniz SAML yanıtları oluşturabildiğine göre, ilkeyi uygulamanıza varsayılan JWT yanıtı yerine bir SAML yanıtı vermek üzere yapılandırmanız gerekir.
SAML için yapılandırılmış bir kaydolma veya oturum açma ilkesi oluşturma
Başlangıç paketinizin çalışma dizininde SignUpOrSignin.xml dosyasının bir kopyasını oluşturun ve yeni bir adla kaydedin. Bu makalede örnek olarak SignUpOrSigninSAML.xml kullanılır. Bu dosya, bağlı olan taraf için ilke dosyanızdır. Varsayılan olarak bir JWT yanıtı vermek üzere yapılandırılmıştır.
Tercih ettiğiniz düzenleyicide SignUpOrSigninSAML.xml dosyasını açın.
Değerini değiştirin:
PolicyId
-B2C_1A_signup_signin_saml
PublicPolicyUri
olarak belirleyinhttp://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml
. Yer tutucuyu Azure AD B2C kiracınızın etki alanı adının alt etki alanıyla değiştirin<tenant-name>
. Örneğin, kiracı birincil etki alanınız isecontoso.onmicrosoft.com
kullanıncontoso
. Kiracı adınız yoksa kiracınızın ayrıntılarını nasıl okuyacağınızı öğrenin.
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0" TenantId="<tenant-name>.onmicrosoft.com" PolicyId="B2C_1A_signup_signin_saml" PublicPolicyUri="http://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml">
Kullanıcı yolculuğunun sonunda Azure AD B2C bir
SendClaims
adım içerir. Bu adım Belirteç Veren teknik profiline başvurur. Varsayılan JWT yanıtı yerine bir SAML yanıtı vermek için, yeni SAML Belirteci Veren teknik profilineSaml2AssertionIssuer
başvurmak için adımı değiştirinSendClaims
.
Aşağıdaki XML kod parçacığını öğenin hemen önüne <RelyingParty>
ekleyin. Bu XML, SignUpOrSignIn kullanıcı yolculuğunda düzenleme adım 7'nin üzerine yazar.
Başlangıç paketindeki farklı bir klasörden başladıysanız veya düzenleme adımlarını ekleyerek veya kaldırarak kullanıcı yolculuğunu özelleştirdiyseniz, öğedeki sayinin order
belirteç veren adımı için kullanıcı yolculuğunda belirtilen sayıya karşılık olduğundan emin olun. Örneğin, diğer başlangıç paketi klasörlerinde ilgili adım numarası için 4, için LocalAccounts
6 SocialAccounts
ve için SocialAndLocalAccountsWithMfa
9'dur.
<UserJourneys>
<UserJourney Id="SignUpOrSignIn">
<OrchestrationSteps>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="Saml2AssertionIssuer"/>
</OrchestrationSteps>
</UserJourney>
</UserJourneys>
Bağlı olan taraf öğesi, uygulamanızın hangi protokolü kullandığını belirler. Varsayılan değer: OpenId
. Protocol
öğesi olarak SAML
değiştirilmelidir. Çıkış talepleri, SAML onaylama işlemine eşlemeyi oluşturur.
öğesindeki <RelyingParty>
öğenin tamamını <TechnicalProfile>
aşağıdaki teknik profil XML'iyle değiştirin.
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="SAML2"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
</OutputClaims>
<SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
</TechnicalProfile>
Bağlı olan taraf için son ilke dosyanız aşağıdaki XML kodu gibi görünmelidir:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
PolicySchemaVersion="0.3.0.0"
TenantId="contoso.onmicrosoft.com"
PolicyId="B2C_1A_signup_signin_saml"
PublicPolicyUri="http://contoso.onmicrosoft.com/B2C_1A_signup_signin_saml">
<BasePolicy>
<TenantId>contoso.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>
<UserJourneys>
<UserJourney Id="SignUpOrSignIn">
<OrchestrationSteps>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="Saml2AssertionIssuer"/>
</OrchestrationSteps>
</UserJourney>
</UserJourneys>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="SAML2"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
</OutputClaims>
<SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
</TechnicalProfile>
</RelyingParty>
</TrustFrameworkPolicy>
Dekont
Diğer kullanıcı akışı türlerini (örneğin, oturum açma, parola sıfırlama veya profil düzenleme akışları) uygulamak için aynı işlemi izleyebilirsiniz.
İlkenizi karşıya yükleme
Değişikliklerinizi kaydedin ve yeni TrustFrameworkExtensions.xml ve SignUpOrSigninSAML.xml ilke dosyalarını Azure portalına yükleyin.
Azure AD B2C IdP SAML meta verilerini test edin
İlke dosyaları karşıya yüklendikten sonra Azure AD B2C, uygulamanın kullanacağı kimlik sağlayıcısının SAML meta veri belgesini oluşturmak için yapılandırma bilgilerini kullanır. SAML meta veri belgesi, oturum açma yöntemleri, oturum kapatma yöntemleri ve sertifikalar gibi hizmetlerin konumlarını içerir.
Azure AD B2C ilke meta verileri aşağıdaki URL'de sağlanır:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata
değerini Azure AD B2C kiracınızın adıyla değiştirin <tenant-name>
. değerini ilkenin adıyla (ID) değiştirin <policy-name>
. Bir örnek aşağıda verilmiştir:
https://contoso.b2clogin.com/contoso.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata
SAML uygulamanızı Azure AD B2C'ye kaydetme
Azure AD B2C'nin uygulamanıza güvenmesi için bir Azure AD B2C uygulama kaydı oluşturursunuz. Kayıt, uygulamanın meta veri uç noktası gibi yapılandırma bilgilerini içerir.
- 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.
- Soldaki menüde Azure AD B2C'yi seçin. İsterseniz Tüm hizmetler'i seçip Azure AD B2C'yi arayıp seçebilirsiniz.
- Uygulama kayıtları'ı ve ardından Yeni kayıt'ı seçin.
- Uygulama için bir Ad girin. Örneğin, SAMLApp1 girin.
- Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki Hesaplar'ı seçin.
- Yeniden Yönlendirme URI'si'nin altında Web'i seçin ve girin
https://localhost
. Bu değeri daha sonra uygulama kaydının bildiriminde değiştireceksiniz. - Kaydet'i seçin.
Azure AD B2C'de uygulamanızı yapılandırma
SAML uygulamaları için, uygulama kaydının bildiriminde çeşitli özellikleri yapılandırmanız gerekir.
- Azure portalında, önceki bölümde oluşturduğunuz uygulama kaydına gidin.
- Yönet'in altında Bildirim'i seçerek bildirim düzenleyicisini açın. Ardından, aşağıdaki bölümlerde açıklanan özellikleri değiştirin.
Tanımlayıcıyı ekleme
SAML uygulamanız Azure AD B2C'ye istekte bulunduğunda SAML Kimlik Doğrulama isteği bir Issuer
öznitelik içerir. Bu özniteliğin değeri genellikle uygulamanın meta veri entityID
değeriyle aynıdır. Azure AD B2C, dizindeki uygulama kaydını aramak ve yapılandırmayı okumak için bu değeri kullanır. Bu aramanın başarılı olması için, identifierUri
uygulama kaydında özniteliğiyle eşleşen Issuer
bir değerle doldurulması gerekir.
Kayıt bildiriminde parametresini identifierURIs
bulun ve uygun değeri ekleyin. Bu değer, uygulamadaki SAML Kimlik Doğrulama isteklerinde EntityId
yapılandırılan değerle ve entityID
uygulamanın meta verilerindeki değerle aynı olacaktır. Ayrıca parametresini accessTokenAcceptedVersion
bulmanız ve değerini olarak 2
ayarlamanız gerekir.
Önemli
olarak güncelleştirmezseniz accessTokenAcceptedVersion
2
, doğrulanmış bir etki alanı gerektiren bir hata iletisi alırsınız.
Aşağıdaki örnekte SAML meta verilerindeki değer gösterilmektedir entityID
:
<EntityDescriptor ID="id123456789" entityID="https://samltestapp2.azurewebsites.net" validUntil="2099-12-31T23:59:59Z" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
identifierUris
özelliği yalnızca etki alanındaki tenant-name.onmicrosoft.com
URL'leri kabul eder.
"identifierUris":"https://tenant-name.onmicrosoft.com/app-name",
Azure AD B2C ile uygulamanın meta verilerini paylaşma
Uygulama kaydı değeri tarafından identifierUri
yüklendikten sonra Azure AD B2C, SAML Kimlik Doğrulama isteğini doğrulamak ve nasıl yanıt verileceğini belirlemek için uygulamanın meta verilerini kullanır.
Uygulamanızın genel olarak erişilebilen bir meta veri uç noktasını kullanıma sunmanızı öneririz.
Hem SAML meta veri URL'sinde hem de uygulama kaydının bildiriminde belirtilen özellikler varsa, bunlar birleştirilir. Meta veri URL'sinde belirtilen özellikler önce işlenir ve öncelik kazanır.
Örnek olarak SAML test uygulamasını kullanarak, uygulama bildiriminde için samlMetadataUrl
aşağıdaki değeri kullanırsınız:
"samlMetadataUrl":"https://samltestapp2.azurewebsites.net/Metadata",
Onay tüketici URL'sini geçersiz kılma veya ayarlama (isteğe bağlı)
Azure AD B2C'nin SAML yanıtları gönderdiği yanıt URL'sini yapılandırabilirsiniz. Yanıt URL'leri uygulama bildiriminde yapılandırılabilir. Uygulamanız genel olarak erişilebilen bir meta veri uç noktasını kullanıma sunmadığında bu yapılandırma kullanışlıdır.
SAML uygulamasının yanıt URL'si, uygulamanın SAML yanıtlarını almayı beklediği uç noktadır. Uygulama genellikle meta veri belgesinde bu URL'yi bu örnekte gösterildiği gibi öğesinin AssertionConsumerService
özniteliği olarak Location
sağlar:
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
...
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://samltestapp2.azurewebsites.net/SP/AssertionConsumer" />
</SPSSODescriptor>
Uygulamanın meta veri AssertionConsumerService
öğesi eksikse veya bunu geçersiz kılmak istiyorsanız, uygulama kayıt bildirimi replyUrlsWithType
özelliğini yapılandırın. Azure AD B2C replyUrlsWithType
, bağlama türü kullanılarak oturum açtıktan sonra kullanıcıları yeniden yönlendirmek için kullanır HTTP-POST
.
Örnek olarak SAML test uygulamasını kullanarak özelliğini replyUrlsWithType
aşağıdaki JSON kod parçacığında gösterilen değere ayarlarsınızurl
:
"replyUrlsWithType":[
{
"url":"https://samltestapp2.azurewebsites.net/SP/AssertionConsumer",
"type":"Web"
}
],
Oturum kapatma URL'sini geçersiz kılma veya ayarlama (isteğe bağlı)
Oturumu kapatma URL'si, oturumu kapatma isteğinden sonra kullanıcının nereye yönlendirileceği tanımlar. Uygulama genellikle aşağıdaki örnekte gösterildiği gibi meta veri belgesinde bu URL'yi öğesinin SingleLogoutService
özniteliği olarak Location
sağlar:
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://samltestapp2.azurewebsites.net/logout" ResponseLocation="https://samltestapp2.azurewebsites.net/logout" />
</SPSSODescriptor>
Uygulamanın meta veri SingleLogoutService
öğesi eksikse, uygulama kaydı bildirim logoutUrl
özelliğini yapılandırın. Azure AD B2C, bağlama türü kullanılarak oturumları kapatılan kullanıcıları yeniden yönlendirmek için öğesini HTTP-Redirect
kullanırlogoutURL
.
Örnek olarak SAML test uygulamasını kullanarak özelliğini olarak https://samltestapp2.azurewebsites.net/logout
ayarlarsınızlogoutUrl
:
"logoutUrl": "https://samltestapp2.azurewebsites.net/logout",
Dekont
Uygulamanın meta veri uç noktasını özelliği aracılığıyla doldurmadan uygulama bildiriminde yanıt URL'sini ve oturumu kapatma URL'sini yapılandırmayı samlMetadataUrl
seçerseniz, Azure AD B2C SAML istek imzasını doğrulamaz. SAML yanıtını da şifrelemez.
Azure AD B2C'yi SAML uygulamanızda SAML IdP olarak yapılandırma
Son adım, AZURE AD B2C'yi SAML uygulamanızda SAML IdP olarak etkinleştirmektir. Her uygulama farklıdır ve adımlar farklılık gösterir. Ayrıntılar için uygulamanızın belgelerine bakın.
Meta veriler uygulamanızda statik meta veriler veya dinamik meta veriler olarak yapılandırılabilir. Statik modda, Azure AD B2C ilkesi meta verilerinden meta verilerin tamamını veya bir bölümünü kopyalayın. Dinamik modda meta verilerin URL'sini sağlayın ve uygulamanızın meta verileri dinamik olarak okumasına izin verin.
Aşağıdakilerin bazıları veya tümü genellikle gereklidir:
Meta veriler: biçimini
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/Samlp/metadata
kullanın.Veren: SAML isteğinin
issuer
değeri, uygulama kayıt bildirimi öğesinde yapılandırılan URI'lerdenidentifierUris
biriyle eşleşmelidir. SAML isteğininissuer
adı öğesindeidentifierUris
yoksa, bunu uygulama kayıt bildirimine ekleyin. Örneğin:https://contoso.onmicrosoft.com/app-name
.Oturum açma URL'si, SAML uç noktası, SAML URL'si: XML öğesinin Azure AD B2C SAML ilkesi meta veri dosyasındaki
<SingleSignOnService>
değeri denetleyin.Sertifika: Bu sertifika B2C_1A_SamlIdpCert, ancak özel anahtar olmadan. Sertifikanın ortak anahtarını almak için:
- Daha önce belirtilen meta veri URL'sine gidin.
- öğesindeki
<X509Certificate>
değeri kopyalayın. - Bir metin dosyasına yapıştırın.
- Metin dosyasını .cer dosyası olarak kaydedin.
SAML test uygulamasıyla test
Yapılandırmanızı test etmek için SAML test uygulamamızı kullanabilirsiniz:
- Kiracı adını güncelleştirin.
- İlke adını güncelleştirin. Örneğin, B2C_1A_signup_signin_saml kullanın.
- Veren URI'sini belirtin. Uygulama kayıt bildirimindeki öğesinde
identifierUris
bulunan URI'lerden birini kullanın. Örneğin, kullanınhttps://contoso.onmicrosoft.com/app-name
.
Oturum aç'ı seçtiğinizde bir kullanıcı oturum açma ekranı görüntülenir. Oturum açtığınızda örnek uygulamaya bir SAML yanıtı verilir.
Desteklenen ve desteklenmeyen SAML modaliteleri
Aşağıdaki SAML uygulama senaryoları kendi meta veri uç noktanız aracılığıyla desteklenir:
- Uygulama veya hizmet sorumlusu nesnesindeki oturumu kapatma URL'si için birden çok oturum kapatma URL'si veya POST bağlaması belirtin.
- Uygulama veya hizmet sorumlusu nesnesinde bağlı olan taraf isteklerini doğrulamak için bir imzalama anahtarı belirtin.
- Uygulama veya hizmet sorumlusu nesnesinde bir belirteç şifreleme anahtarı belirtin.
- Kimlik sağlayıcısının Azure AD B2C olduğu IdP tarafından başlatılan oturum açmayı belirtin.
Sonraki adımlar
- Azure AD B2C GitHub topluluk deposundan SAML test web uygulamasını edinin.
- Azure AD B2C'de SAML uygulaması kaydetme seçeneklerine bakın.
- Geliştirici en iyi yöntemleri aracılığıyla Dayanıklılık oluşturmayı öğrenin.