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 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 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 Gerekli Açıklama
Id 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 bir 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 Gerekli 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. Absolute değeri, 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 Başarılı bir kimlik doğrulamasından sonra kullanıcının tarayıcılarında depolanan bir tamsayı olarak belirtilen Azure AD B2C oturum tanımlama bilgisinin ö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ı İç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 Gerekli Açıklama
Kapsam Yes Çoklu oturum açma davranışının kapsamı. Olası değerler: Suppressed, Tenant, Applicationveya 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. değeri, Policy 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 No Kullanıcının ne kadar süreyle oturum açtığını denetler. Değerin 0 olarak ayarlanması KMSI işlevselliğini kapatır. Varsayılan değerdir 0 (devre dışı). En düşük gün.1 En fazla gün sayısıdır 90 . Daha fazla bilgi için bkz. Oturumumu açık tutma.
EnforceIdTokenHintOnLogout No 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 zorlar. 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 Gerekli Açıklama
Telemetriİndir Yes Değeri olmalıdır ApplicationInsights.
InstrumentationKey Yes Application Insights öğesinin izleme anahtarını içeren dize.
DeveloperMode 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 uygundur ancak yüksek hacimlerde kısıtlanmıştır. Ayrıntılı etkinlik günlükleri yalnızca özel ilkelerin geliştirilmesine yardımcı olmak için 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ıyorsa 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 truetoplanı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ğeri olmalıdır 1.0.0.

Daha fazla bilgi için bkz . Günlükleri Toplama

ContentDefinitionParameters

Azure AD B2C'de özel ilkeler kullanarak, 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ğeriyle hawaii adlı campaignId bir parametre geçirir:

https://login.microsoft.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?pB2C_1A_signup_signin&client_id=a415078a-0402-4ce3-a9c6-ec1947fcfb3f&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 Gerekli 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 Gerekli 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'e yükleme.

TechnicalProfile

TechnicalProfile öğesi aşağıdaki özniteliği içerir:

Öznitelik Gerekli Açıklama
Id Yes Değeri 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 tarafla 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 Gerekli Açıklama
Ad Yes teknik profilin bir parçası olarak kullanılan Azure AD B2C tarafından desteklenen 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 Gerekli Açıklama
IdpInitiatedProfileEnabled No IDP tarafından başlatılan akışın desteklenip desteklenmediğini gösterir. Olası değerler: true veya false (varsayılan).
XmlSignatureAlgorithm No Azure AD B2C'nin SAML Yanıtını imzalamak için kullandığı yöntem. Olası değerler: Sha256, Sha384, Sha512veya 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 No Azure AD B2C'nin Gelişmiş Şifreleme Standardı (AES) algoritmasını kullanarak 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, Sha512veya Aes128.
KeyEncryptionMethod No 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 No Olası değerler: trueveya false (varsayılan). Değer olarak trueayarlandığında 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 No 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 No 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 No 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 Gerekli Açıklama
ClaimTypeReferenceId Yes İlke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir ClaimType başvurusu.
DefaultValue No Talep değeri boşsa kullanılabilecek varsayılan değerdir.
PartnerClaimType No Talebi, ClaimType tanımında yapılandırıldığı şekilde 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 Gerekli Açıklama
ClaimTypeReferenceId Yes İlke dosyasının ClaimsSchema bölümünde zaten tanımlanmış bir ClaimType başvurusu.
DefaultValue No Talep değeri boşsa kullanılabilecek varsayılan değerdir.
PartnerClaimType No Talebi, ClaimType tanımında yapılandırıldığı şekilde farklı bir adla gönderir.

SubjectNamingInfo

SubjectNameingInfo öğ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 Gerekli Açıklama
Claimtype Yes Çıkış talebi 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 No SAML Onayı'nda döndürülen NameId biçimini ayarlamak üzere 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 objectIdyapılandırılır:

<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": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
  ...
}

Aşağıdaki örnekte SAML bağlı olan bir tarafın nasıl tanımlanacağı gösterilmektedir. Konu adı bilgileri olarak objectIdyapı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>