UserJourneys

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.

Kullanıcı yolculukları, bağlı olan taraf uygulamasının kullanıcı için istenen talepleri elde etmesine izin veren bir ilkenin kullandığı belirgin yolları belirtir. Kullanıcı, bağlı olan tarafa sunulacak talepleri almak için bu yolları izler. Başka bir deyişle kullanıcı yolculukları, Azure AD B2C Kimlik Deneyimi Çerçevesi isteği işlerken son kullanıcının neler yaşadığına ilişkin iş mantığını tanımlar.

Bu kullanıcı yolculukları, ilgili topluluğun bağlı olan çeşitli taraflarının temel ihtiyacını karşılamak için kullanılabilir şablonlar olarak kabul edilebilir. Kullanıcı yolculukları, ilkenin bağlı olan taraf kısmının tanımını kolaylaştırır. İlke birden çok kullanıcı yolculuğu tanımlayabilir. Her kullanıcı yolculuğu bir düzenleme adımları dizisidir.

İlke tarafından desteklenen kullanıcı yolculuklarını tanımlamak için, ilke dosyasının üst düzey TrustFrameworkPolicy öğesinin altına bir UserJourneys öğe eklenir.

<TrustFrameworkPolicy  ...>
  ...
  <UserJourneys>
    ...
  </UserJourneys>
</TrustFrameworkPolicy>

UserJourneys öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
UserJourney 1:n Eksiksiz bir kullanıcı akışı için gerekli olan tüm yapıları tanımlayan bir kullanıcı yolculuğu.

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

Öznitelik Zorunlu Açıklama
Kimlik Yes İlkedeki diğer öğelerden buna başvurmak için kullanılabilecek bir kullanıcı yolculuğunun tanımlayıcısı. Bağlı olan taraf ilkesinin DefaultUserJourney öğesi bu özniteliği işaret ediyor.
DefaultCpimIssuerTechnicalProfileReferenceId Hayır Varsayılan belirteç veren teknik profil başvuru kimliği. Örneğin, JWT belirteci veren, SAML belirteci veren veya OAuth2 özel hatası. Kullanıcı yolculuğunuz veya alt yolculuğunuzda zaten başka bir SendClaims düzenleme adımı varsa, özniteliğini kullanıcı yolculuğunun belirteç veren teknik profili olarak ayarlayın DefaultCpimIssuerTechnicalProfileReferenceId .

UserJourney öğesi aşağıdaki öğeleri içerir:

Öğe Oluşum Açıklama
AuthorizationTechnicalProfiles 0:1 Yetkilendirme teknik profillerinin listesi.
OrchestrationSteps 1:n Başarılı bir işlem için izlenmesi gereken bir düzenleme dizisi. Her kullanıcı yolculuğu, sırayla yürütülen düzenleme adımlarının sıralı bir listesinden oluşur. Herhangi bir adım başarısız olursa işlem başarısız olur.

AuthorizationTechnicalProfiles

Bir kullanıcının UserJourney'i tamamlayıp bir erişim veya kimlik belirteci edindiğini varsayalım. UserInfo uç noktası gibi ek kaynakları yönetmek için kullanıcının tanımlanması gerekir. Bu işleme başlamak için, kullanıcının daha önce verilen erişim belirtecini geçerli bir Azure AD B2C ilkesi tarafından kimlik doğrulamasının ilk kez doğrulandığının kanıtı olarak sunması gerekir. Kullanıcının bu isteği gerçekleştirmesine izin verildiğinden emin olmak için bu işlem sırasında kullanıcı için geçerli bir belirteç her zaman mevcut olmalıdır. Yetkilendirme teknik profilleri, gelen belirteci doğrular ve belirteçten talepleri ayıklar.

AuthorizationTechnicalProfiles öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
AuthorizationTechnicalProfile 0:1 Kullanıcıyı yetkilendirmek için kullanılan teknik profil başvurusu.

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

Öznitelik Zorunlu Açıklama
ReferenceId Yes Yürütülecek teknik profilin tanımlayıcısı.

Aşağıdaki örnekte yetkilendirme teknik profilleri olan bir kullanıcı yolculuğu öğesi gösterilmektedir:

<UserJourney Id="UserInfoJourney" DefaultCpimIssuerTechnicalProfileReferenceId="UserInfoIssuer">
  <Authorization>
    <AuthorizationTechnicalProfiles>
      <AuthorizationTechnicalProfile ReferenceId="UserInfoAuthorization" />
    </AuthorizationTechnicalProfiles>
  </Authorization>
  <OrchestrationSteps>
    <OrchestrationStep Order="1" Type="ClaimsExchange">
     ...

OrchestrationSteps

Kullanıcı yolculuğu, başarılı bir işlem için izlenmesi gereken bir düzenleme dizisi olarak temsil edilir. Herhangi bir adım başarısız olursa işlem başarısız olur. Bu düzenleme adımları hem yapı taşları hem de ilke dosyasında izin verilen talep sağlayıcılarına başvurur. Bir kullanıcı deneyimini göstermek veya işlemekle sorumlu olan tüm düzenleme adımlarının ilgili içerik tanımı tanımlayıcısına da bir başvurusu vardır.

Düzenleme adımları, düzenleme adımı öğesinde tanımlanan önkoşullara göre koşullu olarak yürütülebilir. Örneğin, düzenleme adımını yalnızca belirli bir talep varsa veya bir talep belirtilen değere eşitse veya değilse de kontrol edebilirsiniz.

Düzenleme adımlarının sıralı listesini belirtmek için ilkenin bir parçası olarak bir OrchestrationSteps öğesi eklenir. Bu öğe gereklidir.

<UserJourney Id="SignUpOrSignIn">
  <OrchestrationSteps>
    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      ...

OrchestrationSteps öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
OrchestrationStep 1:n Sıralı düzenleme adımı.

OrchestrationStep öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Veri Akışı Açıklaması
Order Yes Düzenleme adımlarının sırası. özniteliğinin Order değeri ile Nbaşlar1. Bu nedenle, 10 adımınız varsa ve ikinci adımı silerseniz, iki ile dokuz arasında olmak için üç ile 10 arasında adımları yeniden numaralandırmanız gerekir.
Type Yes Düzenleme adımının türü. Olası değerler:
  • ClaimsProviderSelection - Düzenleme adımının kullanıcıya birini seçmek için çeşitli talep sağlayıcıları sunduğunu gösterir.
  • CombinedSignInAndSignUp - Düzenleme adımının birleştirilmiş bir sosyal sağlayıcı oturum açma ve yerel hesap kaydolma sayfası sunduğunu gösterir.
  • ClaimsExchange - Düzenleme adımının talepleri bir talep sağlayıcısıyla değiştirdiğini gösterir.
  • GetClaims - Düzenleme adımının, bağlı olan taraftan Azure AD B2C'ye gönderilen talep verilerini yapılandırması aracılığıyla işlemesi InputClaims gerektiğini belirtir.
  • InvokeSubJourney - Düzenleme adımının talepleri bir alt yolculukla değiştirdiğini gösterir.
  • SendClaims - Düzenleme adımının talepleri, talep veren tarafından verilen bir belirteçle bağlı olan tarafa gönderdiğini gösterir.
ContentDefinitionReferenceId Hayır Bu düzenleme adımıyla ilişkili içerik tanımının tanımlayıcısı. Genellikle içerik tanımı başvuru tanımlayıcısı, kendi kendine onaylanan teknik profilde tanımlanır. Ancak Azure AD B2C'nin teknik profil olmadan bir şey görüntülemesi gereken bazı durumlar vardır. İki örnek vardır: düzenleme adımının türü aşağıdakilerden biriyse: ClaimsProviderSelection veya CombinedSignInAndSignUpAzure AD B2C'nin teknik bir profile sahip olmadan kimlik sağlayıcısı seçimini görüntülemesi gerekir.
CpimIssuerTechnicalProfileReferenceId Hayır Düzenleme adımının türü şeklindedir SendClaims. Bu özellik, bağlı olan taraf için belirteci veren talep sağlayıcısının teknik profil tanımlayıcısını tanımlar. Yoksa, bağlı olan taraf belirteci oluşturulmaz.

OrchestrationStep öğesi aşağıdaki öğeleri içerebilir:

Öğe Oluşum Açıklama
Ön koşullar 0:n Düzenleme adımının yürütülmesi için karşılanması gereken önkoşulların listesi.
ClaimsProviderSelections 0:n Düzenleme adımı için talep sağlayıcısı seçimlerinin listesi.
ClaimsExchanges 0:n Düzenleme adımı için talep değişimlerinin listesi.
JourneyList 0:1 Düzenleme adımı için alt yolculuk adaylarının listesi.

Ön koşullar

Düzenleme adımları, düzenleme adımında tanımlanan önkoşullara göre koşullu olarak yürütülebilir. Preconditions öğesi, değerlendirilecek önkoşulların listesini içerir. Önkoşul değerlendirmesi tamamlandığında, ilişkili düzenleme adımı sonraki düzenleme adımına atlar.

Azure AD B2C önkoşulları liste sırasına göre değerlendirir. Sipariş tabanlı önkoşullar, önkoşulların uygulanacağı sırayı ayarlamanıza olanak tanır. Karşılanan ilk önkoşul, sonraki tüm önkoşulları geçersiz kılar. Düzenleme adımı yalnızca tüm önkoşullar karşılanmazsa yürütülür.

Preconditions öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
Ön koşul 1:n Değerlendirilecek bir önkoşul.

Ön koşul

Precondition öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Veri Akışı Açıklaması
Type Yes Bu önkoşul için gerçekleştirilecek denetim veya sorgu türü. Değer, belirtilen talepler kullanıcının geçerli talep kümesinde mevcutsa eylemlerin gerçekleştirilmesi gerektiğini belirten ClaimsExist veya belirtilen talep mevcutsa ve değeri belirtilen değere eşitse eylemlerin gerçekleştirilmesi gerektiğini belirten ClaimEquals olabilir.
ExecuteActionsIf Yes Ön koşulun nasıl karşılanmış olarak kabul edileceğine karar verir. Olası değerler: true, veya false. Değer olarak trueayarlanırsa, talep önkoşulla eşleştiğinde bu değer memnun olarak kabul edilir. değer olarak ayarlanırsa false, talep önkoşulla eşleşmediğinde bu değer memnun olarak kabul edilir.

Önkoşul öğeleri aşağıdaki öğeleri içerir:

Öğe Oluşum Açıklama
Değer 1:2 Talep türünün tanımlayıcısı. Talep, ilke dosyasının veya üst ilke dosyasının talep şeması bölümünde zaten tanımlanmıştır. Önkoşul türü ClaimEqualsolduğunda, ikinci Value bir öğe denetlenecek değeri içerir.
Eylem 1:1 Önkoşul değerlendirmesinin karşılanması durumunda gerçekleştirilmesi gereken eylem. Olası değer: SkipThisOrchestrationStep. İlişkili düzenleme adımı bir sonrakine atlar.

Her önkoşul tek bir talebi değerlendirir. İki tür önkoşul vardır:

  • ClaimsExist - Belirtilen talepler kullanıcının geçerli talep çantasında mevcutsa eylemlerin gerçekleştirilmesi gerektiğini belirtir.

  • ClaimEquals - Belirtilen talep varsa ve değeri belirtilen değere eşitse eylemlerin gerçekleştirilmesi gerektiğini belirtir. Denetim büyük/küçük harfe duyarlı bir sıralı karşılaştırma gerçekleştirir. Boole talep türünü denetlerken , veya FalsekullanınTrue.

    Talep null veya başlatılmamışsa, ön koşul yoksayılır( ExecuteActionsIftrueveya falseolur). En iyi yöntem olarak, hem talebin mevcut olup olmadığını hem de bir değere eşit olup olmadığını denetleyin.

Örnek bir senaryo, kullanıcı olarak ayarlandıysa PhoneMFA için kullanıcıya MfaPreference meydan okumak olabilir. Bu koşullu mantığı gerçekleştirmek için, talebin MfaPreference var olup olmadığını denetleyin ve ayrıca talep değerinin değerine Phoneeşit olup olmadığını denetleyin. Aşağıdaki XML, bu mantığın önkoşullarla nasıl uygulanduğunu gösterir.  

<Preconditions>
  <!-- Skip this orchestration step if MfaPreference doesn't exist. -->
  <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
    <Value>MfaPreference</Value>
    <Action>SkipThisOrchestrationStep</Action>
  </Precondition>
  <!-- Skip this orchestration step if MfaPreference doesn't equal to Phone. -->
  <Precondition Type="ClaimEquals" ExecuteActionsIf="false">
    <Value>MfaPreference</Value>
    <Value>Phone</Value>
    <Action>SkipThisOrchestrationStep</Action>
  </Precondition>
</Preconditions>

Önkoşul örnekleri

Aşağıdaki önkoşullar, kullanıcının objectId değerinin mevcut olup olmadığını denetler. Kullanıcı yolculuğunda, kullanıcı yerel hesabı kullanarak oturum açmayı seçti. objectId varsa bu düzenleme adımını atlayın.

<OrchestrationStep Order="2" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
      <Value>objectId</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
    <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
  </ClaimsExchanges>
</OrchestrationStep>

Aşağıdaki önkoşullar, kullanıcının sosyal bir hesapla oturum açıp açmadığını denetler. Dizindeki kullanıcı hesabını bulmaya çalışılır. Kullanıcı oturum açarsa veya yerel bir hesapla kaydolırsa, bu düzenleme adımını atlayın.

<OrchestrationStep Order="3" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
      <Value>authenticationSource</Value>
      <Value>localAccountAuthentication</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="AADUserReadUsingAlternativeSecurityId" TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId-NoError" />
  </ClaimsExchanges>
</OrchestrationStep>

Önkoşullar birden çok önkoşulu denetleyebilir. Aşağıdaki örnek, 'objectId' veya 'email' olup olmadığını denetler. İlk koşul doğruysa, yolculuk bir sonraki düzenleme adımına atlar.

<OrchestrationStep Order="4" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
      <Value>objectId</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
    <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
      <Value>email</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="SelfAsserted-SocialEmail" TechnicalProfileReferenceId="SelfAsserted-SocialEmail" />
  </ClaimsExchanges>
</OrchestrationStep>

Talep sağlayıcı seçimi

Talep sağlayıcısı seçimi, kullanıcıların seçenek listesinden bir eylem seçmesine olanak tanır. Kimlik sağlayıcısı seçimi iki düzenleme adımından oluşur:

  1. Düğmeler : türüyle ClaimsProviderSelectionbaşlar veya CombinedSignInAndSignUp bir kullanıcının seçebileceği seçeneklerin listesini içerir. öğesinin içindeki seçeneklerin ClaimsProviderSelections sırası, kullanıcıya sunulan düğmelerin sırasını denetler.
  2. Eylemler - Ardından türü.ClaimsExchange ClaimsExchange, eylemlerin listesini içerir. Eylem, OAuth2, OpenID Bağlan, talep dönüştürme veya kendi kendine onaylanan gibi bir teknik profile başvurudur. Kullanıcı düğmelerden birine tıkladığında ilgili eylem yürütülür.

ClaimsProviderSelections öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
ClaimsProviderSelection 1:n Seçilebilen talep sağlayıcılarının listesini sağlar.

ClaimsProviderSelections öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
DisplayOption Hayır Tek bir talep sağlayıcısı seçiminin kullanılabilir olduğu bir servis talebinin davranışını denetler. Olası değerler: DoNotShowSingleProvider (varsayılan) , kullanıcı hemen federasyon kimlik sağlayıcısına yönlendirilir. Veya ShowSingleProvider Azure AD B2C, oturum açma sayfasını tek kimlik sağlayıcısı seçimiyle sunar. Bu özniteliği kullanmak için içerik tanımı sürümünün ve üzeri olması urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.0.0 gerekir.

ClaimsProviderSelection öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
TargetClaimsExchangeId Hayır Talep sağlayıcı seçiminin bir sonraki düzenleme adımında yürütülen talep değişiminin tanımlayıcısı. Bu öznitelik veya ValidationClaimsExchangeId özniteliği belirtilmelidir, ancak her ikisini birden belirtmemelidir.
ValidationClaimsExchangeId Hayır Talep sağlayıcı seçimini doğrulamak için geçerli düzenleme adımında yürütülen talep değişiminin tanımlayıcısı. Bu öznitelik veya TargetClaimsExchangeId özniteliği belirtilmelidir, ancak her ikisini birden belirtmemelidir.

Talep sağlayıcı seçimi örneği

Aşağıdaki düzenleme adımında kullanıcı Facebook, LinkedIn, Twitter, Google veya yerel bir hesapla oturum açmayı seçebilir. Kullanıcı sosyal kimlik sağlayıcılarından birini seçerse, ikinci düzenleme adımı özniteliğinde TargetClaimsExchangeId belirtilen seçili talep değişimiyle yürütülür. İkinci düzenleme adımı, oturum açma işlemini tamamlamak için kullanıcıyı sosyal kimlik sağlayıcısına yönlendirir. Kullanıcı yerel hesapla oturum açmayı seçerse, Azure AD B2C aynı düzenleme adımında (aynı kaydolma sayfası veya oturum açma sayfası) kalır ve ikinci düzenleme adımını atlar.

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    <ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange" />
    <ClaimsProviderSelection TargetClaimsExchangeId="LinkedInExchange" />
    <ClaimsProviderSelection TargetClaimsExchangeId="TwitterExchange" />
    <ClaimsProviderSelection TargetClaimsExchangeId="GoogleExchange" />
    <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
  </ClaimsProviderSelections>
  <ClaimsExchanges>
  <ClaimsExchange Id="LocalAccountSigninEmailExchange"
        TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
  </ClaimsExchanges>
</OrchestrationStep>


<OrchestrationStep Order="2" Type="ClaimsExchange">
  <Preconditions>
    <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
      <Value>objectId</Value>
      <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
    <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
    <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
    <ClaimsExchange Id="LinkedInExchange" TechnicalProfileReferenceId="LinkedIn-OAUTH" />
    <ClaimsExchange Id="TwitterExchange" TechnicalProfileReferenceId="Twitter-OAUTH1" />
  </ClaimsExchanges>
</OrchestrationStep>

ClaimsExchanges

ClaimsExchanges öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
ClaimsExchange 1:n Kullanılan teknik profile bağlı olarak, istemciyi seçilen ClaimsProviderSelection'a göre yeniden yönlendirir veya talepleri değiştirmek için bir sunucu çağrısı yapar.

ClaimsExchange öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
Kimlik Yes Talep değişimi adımının tanımlayıcısı. Tanımlayıcı, ilkedeki bir talep sağlayıcısı seçim adımından talep değişimine başvurmak için kullanılır.
TechnicalProfileReferenceId Yes Yürütülecek teknik profilin tanımlayıcısı.

JourneyList

JourneyList öğesi aşağıdaki öğeyi içerir:

Öğe Oluşum Açıklama
Aday 1:1 Çağrılacak bir alt yolculuğa başvuru.

Aday

Candidate öğesi aşağıdaki öznitelikleri içerir:

Öznitelik Zorunlu Açıklama
SubJourneyReferenceId Yes Yürütülecek alt yolculuğun tanımlayıcısı.