RelyingParty
Not
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.
Bağlı Olan Taraf öğesi Azure Active Directory B2C'ye (Azure AD B2C) yönelik geçerli istek için zorlanacak kullanıcı yolculuğunu belirtir. Ayrıca verilen belirtecin bir parçası olarak, bağlı olan taraf (RP) uygulamasına gereken taleplerin listesini de belirtir. Web, mobil veya masaüstü uygulaması gibi bir RP uygulaması, RP ilke dosyasını çağırır. RP ilke dosyası oturum açma, parola sıfırlama veya profil düzenleme gibi belirli bir görevi yürütür. Birden çok uygulama aynı RP ilkesini kullanabilir ve tek bir uygulama birden çok ilke kullanabilir. Tüm RP uygulamaları taleplerle aynı belirteci alır ve kullanıcı aynı kullanıcı yolculuğundan geçer.
Aşağıdaki örnekte, B2C_1A_signup_signin ilke dosyasındaki bir RelyingParty öğesi gösterilmektedir:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="https://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
PolicySchemaVersion="0.3.0.0"
TenantId="your-tenant.onmicrosoft.com"
PolicyId="B2C_1A_signup_signin"
PublicPolicyUri="http://your-tenant.onmicrosoft.com/B2C_1A_signup_signin">
<BasePolicy>
<TenantId>your-tenant.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<UserJourneyBehaviors>
<SingleSignOn Scope="Tenant" KeepAliveInDays="7"/>
<SessionExpiryType>Rolling</SessionExpiryType>
<SessionExpiryInSeconds>900</SessionExpiryInSeconds>
<JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="your-application-insights-key" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
<ContentDefinitionParameters>
<Parameter Name="campaignId">{OAUTH-KV:campaignId}</Parameter>
</ContentDefinitionParameters>
</UserJourneyBehaviors>
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Description>The policy profile</Description>
<Protocol Name="OpenIdConnect" />
<Metadata>collection of key/value pairs of data</Metadata>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="loyaltyNumber" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
...
İsteğe bağlı RelyingParty öğesi aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
DefaultUserJourney | 1:1 | RP uygulaması için varsayılan kullanıcı yolculuğu. |
Uç Noktalar | 0:1 | Uç noktaların listesi. Daha fazla bilgi için bkz . UserInfo uç noktası. |
UserJourneyBehaviors | 0:1 | Kullanıcı yolculuğu davranışlarının kapsamı. |
TechnicalProfile | 1:1 | RP uygulaması tarafından desteklenen bir teknik profil. Teknik profil, RP uygulamasının Azure AD B2C ile iletişim kurması için bir sözleşme sağlar. |
RelyingParty alt öğelerini önceki tabloda gösterilen sırayla oluşturmanız gerekir.
Uç Noktalar
Endpoints öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
Uç nokta | 1:1 | Uç noktaya başvuru. |
Endpoint öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Kimlik | Yes | Uç noktanın benzersiz tanımlayıcısı. |
UserJourneyReferenceId | Yes | İlkedeki kullanıcı yolculuğunun tanımlayıcısı. Daha fazla bilgi için bkz. Kullanıcı yolculukları |
Aşağıdaki örnekte UserInfo uç noktası olan bağlı olan taraf gösterilmektedir:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<Endpoints>
<Endpoint Id="UserInfo" UserJourneyReferenceId="UserInfoJourney" />
</Endpoints>
...
DefaultUserJourney
öğesi, DefaultUserJourney
Temel veya Uzantılar ilkesinde tanımlanan kullanıcı yolculuğunun tanımlayıcısına bir başvuru belirtir. Aşağıdaki örneklerde RelyingParty öğesinde belirtilen kaydolma veya oturum açma kullanıcı yolculuğu gösterilmektedir:
B2C_1A_signup_signin ilkesi:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn">
...
B2C_1A_TrustFrameWorkBase veya B2C_1A_TrustFrameworkExtensionPolicy:
<UserJourneys>
<UserJourney Id="SignUpOrSignIn">
...
DefaultUserJourney öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
ReferenceId | Yes | İlkedeki kullanıcı yolculuğunun tanımlayıcısı. Daha fazla bilgi için bkz. Kullanıcı yolculukları |
UserJourneyBehaviors
UserJourneyBehaviors öğesi aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
SingleSignOn | 0:1 | Bir kullanıcı yolculuğunun çoklu oturum açma (SSO) oturum davranışının kapsamı. |
SessionExpiryType | 0:1 | Oturumun kimlik doğrulama davranışı. Olası değerler: Rolling veya Absolute . Rolling (varsayılan) değeri, kullanıcı uygulamada sürekli olarak etkin olduğu sürece kullanıcının oturum açmış olarak kaldığını gösterir. değeri, Absolute kullanıcının uygulama oturumu ömrü tarafından belirtilen süre sonunda yeniden kimlik doğrulaması yapmaya zorlandığını gösterir. |
SessionExpiryInSeconds | 0:1 | Azure AD B2C'nin oturum tanımlama bilgisinin başarılı bir kimlik doğrulamasından sonra kullanıcının tarayıcılarında depolanan bir tamsayı olarak belirtilen ömrü. Varsayılan değer 86.400 saniyedir (24 saat). En az 900 saniyedir (15 dakika). Maksimum değer 86.400 saniyedir (24 saat). |
JourneyInsights | 0:1 | Kullanılacak Azure Uygulaması lik İçgörüleri izleme anahtarı. |
ContentDefinitionParameters | 0:1 | İçerik tanımı yük URI'sine eklenecek anahtar değer çiftlerinin listesi. |
JourneyFraming | 0:1 | Bu ilkenin kullanıcı arabiriminin bir iframe'e yüklenmesine izin verir. |
ScriptExecution | 0:1 | Desteklenen JavaScript yürütme modları. Olası değerler: Allow veya Disallow (varsayılan). |
Yukarıdaki öğeleri kullandığınızda, bunları tabloda belirtilen sırayla UserJourneyBehaviors öğenize eklemeniz gerekir. Örneğin, JourneyInsights öğesi ScriptExecution öğesinden önce (yukarıda) eklenmelidir.
SingleSignOn
SingleSignOn öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Scope | Yes | Çoklu oturum açma davranışının kapsamı. Olası değerler: Suppressed , Tenant , Application veya Policy . Suppressed değeri, davranışın gizlendiğini gösterir ve kullanıcıdan her zaman bir kimlik sağlayıcısı seçimi istenir. Tenant değeri, davranışın kiracıdaki tüm ilkelere uygulandığını gösterir. Örneğin, bir kiracı için iki ilke yolculuğunda gezinen bir kullanıcıdan kimlik sağlayıcısı seçimi istenmez. Application değeri, davranışın isteği yapan uygulama için tüm ilkelere uygulandığını gösterir. Örneğin, bir uygulama için iki ilke yolculuğunda gezinen bir kullanıcıdan kimlik sağlayıcısı seçimi istenmez. Policy değeri, davranışın yalnızca bir ilke için geçerli olduğunu gösterir. Örneğin, bir güven çerçevesi için iki ilke yolculuğunda gezinen bir kullanıcıdan ilkeler arasında geçiş yaparken kimlik sağlayıcısı seçimi istenir. |
KeepAliveInDays | Hayır | Kullanıcının ne kadar süreyle oturum açtığını denetler. Değeri 0 olarak ayarlamak KMSI işlevini kapatır. Varsayılan değerdir 0 (devre dışı). En az 1 gün. En fazla gün sayısıdır 90 . Daha fazla bilgi için bkz . Oturumumu açık tutma. |
EnforceIdTokenHintOnLogout | Hayır | Son kullanıcının istemciyle geçerli kimliği doğrulanmış oturumu hakkında ipucu olarak, daha önce verilmiş bir kimlik belirtecini oturumu kapatma uç noktasına geçirmeye zorla. Olası değerler: false (varsayılan) veya true . Daha fazla bilgi için bkz . OpenID Connect ile web oturumu açma. |
JourneyInsights
JourneyInsights öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Telemetriİndir | Yes | Değer olmalıdır ApplicationInsights . |
InstrumentationKey | Yes | Application Insights öğesinin izleme anahtarını içeren dize. |
Geliştirici Modu | Yes | Olası değerler: true veya false . ise true , Application Insights işleme işlem hattı aracılığıyla telemetriyi hızlandırıyor. Bu ayar geliştirme için iyidir, ancak yüksek hacimlerde kısıtlanır. Ayrıntılı etkinlik günlükleri yalnızca özel ilkelerin geliştirilmesine yardımcı olacak şekilde tasarlanmıştır. Üretimde geliştirme modunu kullanmayın. Günlükler, geliştirme sırasında kimlik sağlayıcılarına gönderilen ve bu sağlayıcılardan gönderilen tüm talepleri toplar. Üretimde kullanılırsa geliştirici, sahip olduğu App Insights günlüğünde toplanan kişisel verilerin sorumluluğunu üstlenir. Bu ayrıntılı günlükler yalnızca bu değer olarak ayarlandığında true toplanır. |
ClientEnabled | Yes | Olası değerler: true veya false . ise true , sayfa görünümünü ve istemci tarafı hatalarını izlemek için Application Insights istemci tarafı betiğini gönderir. |
ServerEnabled | Yes | Olası değerler: true veya false . ise true , mevcut UserJourneyRecorder JSON dosyasını Application Insights'a özel bir olay olarak gönderir. |
TelemetryVersion | Yes | Değer olmalıdır 1.0.0 . |
Daha fazla bilgi için bkz . Günlükleri Toplama
ContentDefinitionParameters
Azure AD B2C'de özel ilkeler kullanarak bir sorgu dizesinde parametre gönderebilirsiniz. Parametreyi HTML uç noktanıza ileterek sayfa içeriğini dinamik olarak değiştirebilirsiniz. Örneğin web veya mobil uygulamanızdan ilettiğiniz bir parametreye göre Azure AD B2C kaydolma veya oturum açma sayfanızdaki arka plan görüntüsünü değiştirebilirsiniz. Azure AD B2C, sorgu dizesi parametrelerini aspx dosyası gibi dinamik HTML dosyanıza geçirir.
Aşağıdaki örnek, sorgu dizesinde değeri hawaii
ile adlı campaignId
bir parametre geçirir:
https://login.microsoft.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?pB2C_1A_signup_signin&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=http%3A%2F%2Fjwt.io%2F&scope=openid&response_type=id_token&prompt=login&campaignId=hawaii
ContentDefinitionParameters öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
ContentDefinitionParameter | 0:n | İçerik tanımı yük URI'sinin sorgu dizesine eklenen anahtar değer çiftini içeren dize. |
ContentDefinitionParameter öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Adı | Yes | Anahtar değer çiftinin adı. |
Daha fazla bilgi için bkz . Özel ilkeler kullanarak dinamik içerikle kullanıcı arabirimini yapılandırma
JourneyFraming
JourneyFraming öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Etkin | Yes | Bu ilkenin bir iframe içine yüklenmesini sağlar. Olası değerler: false (varsayılan) veya true . |
Kaynaklar | Yes | iframe'i yükleyecek etki alanlarını içerir. Daha fazla bilgi için bkz . Azure B2C'yi iframe'de yükleme. |
TechnicalProfile
TechnicalProfile öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Kimlik | Yes | Değer olmalıdır PolicyProfile . |
TechnicalProfile aşağıdaki öğeleri içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
DisplayName | 1:1 | Teknik profilin adını içeren dize. |
Açıklama | 0:1 | Teknik profilin açıklamasını içeren dize. |
Protokol | 1:1 | Federasyon için kullanılan protokol. |
Meta veri | 0:1 | Bağlı olan taraf ve diğer topluluk katılımcıları arasındaki etkileşimi yapılandırmak üzere bir işlem boyunca uç noktayla iletişim kurmak için protokol tarafından kullanılan Anahtar/değer çiftlerinin Öğesi koleksiyonu. |
InputClaims | 1:1 | Teknik profilde giriş olarak alınan talep türlerinin listesi. Bu öğelerin her biri, ClaimsSchema bölümünde veya bu ilke dosyasının devraldığı bir ilkede önceden tanımlanmış bir ClaimType'a başvuru içerir. |
OutputClaims | 1:1 | Teknik profilde çıktı olarak alınan talep türlerinin listesi. Bu öğelerin her biri, ClaimsSchema bölümünde veya bu ilke dosyasının devraldığı bir ilkede önceden tanımlanmış bir ClaimType'a başvuru içerir. |
SubjectNamingInfo | 1:1 | Belirteçlerde kullanılan konu adı. |
Protocol öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
Adı | Yes | Azure AD B2C tarafından desteklenen ve teknik profilin bir parçası olarak kullanılan geçerli bir protokolün adı. Olası değerler: OpenIdConnect veya SAML2 . değeri, OpenIdConnect OpenID temel belirtimine göre OpenID Connect 1.0 protokol standardını temsil eder. , SAML2 OASIS belirtimine göre SAML 2.0 protokol standardını temsil eder. |
Meta veri
Protokol olduğunda SAML
, meta veri öğesi aşağıdaki öğeleri içerir. Daha fazla bilgi için bkz . Azure AD B2C'de SAML uygulaması kaydetme seçenekleri.
Öznitelik | Zorunlu | Açıklama |
---|---|---|
IdpInitiatedProfileEnabled | Hayır | IDP tarafından başlatılan akışın desteklenip desteklenmediğini gösterir. Olası değerler: true veya false (varsayılan). |
XmlSignatureAlgorithm | Hayır | Azure AD B2C'nin SAML Yanıtını imzalamak için kullandığı yöntem. Olası değerler: Sha256 , Sha384 , Sha512 veya Sha1 . İmza algoritmasını her iki tarafta da aynı değerle yapılandırdığınızdan emin olun. Yalnızca sertifikanızın desteklediği algoritmayı kullanın. SAML Onayını yapılandırmak için bkz . SAML veren teknik profil meta verileri. |
DataEncryptionMethod | Hayır | Gelişmiş Şifreleme Standardı (AES) algoritmasını kullanarak Azure AD B2C'nin verileri şifrelemek için kullandığı yöntemi gösterir. Meta veriler, SAML yanıtında öğesinin değerini <EncryptedData> denetler. Olası değerler: Aes256 (varsayılan), Aes192 , Sha512 veya Aes128 . |
KeyEncryptionMethod | Hayır | Azure AD B2C'nin verileri şifrelemek için kullanılan anahtarın kopyasını şifrelemek için kullandığı yöntemi gösterir. Meta veriler, SAML yanıtında öğesinin değerini <EncryptedKey> denetler. Olası değerler: Rsa15 (varsayılan) - RSA Ortak Anahtar Şifreleme Standardı (PKCS) Sürüm 1.5 algoritması, RsaOaep - RSA Optimal Asimetrik Şifreleme Doldurma (OAEP) şifreleme algoritması. |
UseDetachedKeys | Hayır | Olası değerler: true veya false (varsayılan). Değeri olarak ayarlandığında true , Azure AD B2C şifrelenmiş onayların biçimini değiştirir. Ayrılmış anahtarların kullanılması şifrelenmiş onaylama işlemini EncryptedData'nın aksine EncrytedAssertion'ın alt öğesi olarak ekler. |
WantsSignedResponses | Hayır | Azure AD B2C'nin SAML yanıtının bölümünü imzalayıp imzalamadığını Response gösterir. Olası değerler: true (varsayılan) veya false . |
RemoveMillisecondsFromDateTime | Hayır | Milisaniyelerin SAML yanıtı içindeki tarih saat değerlerinden kaldırılıp kaldırılmayacağını gösterir (bunlar IssueInstant, NotBefore, NotOnOrAfter ve AuthnInstant'tır). Olası değerler: false (varsayılan) veya true . |
RequestContextMaximumLengthInBytes | Hayır | SAML uygulamaları RelayState parametresinin uzunluk üst sınırını gösterir. Varsayılan değer 1000’dir. Maksimum değer 2048'dir. |
InputClaims
InputClaims öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
InputClaim | 0:n | Beklenen giriş talep türü. |
InputClaim öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
ClaimTypeReferenceId | Yes | İlke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir ClaimType başvurusu. |
DefaultValue | Hayır | Talep değeri boşsa kullanılabilecek varsayılan değer. |
PartnerClaimType | Hayır | Talebi, ClaimType tanımında yapılandırıldığı gibi farklı bir adla gönderir. |
OutputClaims
OutputClaims öğesi aşağıdaki öğeyi içerir:
Öğe | Oluşum | Açıklama |
---|---|---|
OutputClaim | 0:n | Bağlı olan tarafın abone olduğu ilke için desteklenen listede beklenen talep türünün adı. Bu talep, teknik profil için bir çıkış görevi görür. |
OutputClaim öğesi aşağıdaki öznitelikleri içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
ClaimTypeReferenceId | Yes | İlke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir ClaimType başvurusu. |
DefaultValue | Hayır | Talep değeri boşsa kullanılabilecek varsayılan değer. |
PartnerClaimType | Hayır | Talebi, ClaimType tanımında yapılandırıldığı gibi farklı bir adla gönderir. |
SubjectNamingInfo
SubjectNamingInfo öğesiyle belirteç konusunun değerini denetlersiniz:
- JWT belirteci -
sub
talep. Bu, belirtecin bir uygulamanın kullanıcısı gibi bilgileri onayladığı bir sorumludur. Bu değer sabittir ve yeniden atanamaz veya yeniden kullanılamaz. Belirteç bir kaynağa erişmek için kullanıldığında olduğu gibi güvenli yetkilendirme denetimleri gerçekleştirmek için kullanılabilir. Varsayılan olarak, konu talebi dizindeki kullanıcının nesne kimliğiyle doldurulur. Daha fazla bilgi için bkz . Belirteç, oturum ve çoklu oturum açma yapılandırması. - SAML belirteci -
<Subject><NameID>
konu öğesini tanımlayan öğesi. NameId biçimi değiştirilebilir.
SubjectNamingInfo öğesi aşağıdaki özniteliği içerir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
ClaimType | Yes | Çıkış talebine ait PartnerClaimType başvurusu. Çıkış talepleri, PartnerClaimType ile outputClaims koleksiyonuna bağlı olan taraf ilkesinde tanımlanmalıdır. Örneğin, <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> veya <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" /> . |
Biçimlendir | Hayır | SAML Onayında döndürülen NameId biçimini ayarlamak için SAML Bağlı olan taraflar için kullanılır. |
Aşağıdaki örnekte OpenID Connect bağlı olan tarafın nasıl tanımlanacağı gösterilmektedir. Konu adı bilgileri olarak yapılandırılır objectId
:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<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" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
JWT belirteci, user objectId ile talebi içerir sub
:
{
...
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
...
}
Aşağıdaki örnekte SAML bağlı olan tarafın nasıl tanımlanacağı gösterilmektedir. Konu adı bilgileri olarak objectId
yapılandırılır ve NameId format
sağlanmıştır:
<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" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</TechnicalProfile>
</RelyingParty>