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 N baş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:
|
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 CombinedSignInAndSignUp Azure 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 true ayarlanı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ü ClaimEquals olduğ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
False
kullanınTrue
.Talep null veya başlatılmamışsa, ön koşul yoksayılır(
ExecuteActionsIf
true
veyafalse
olur). 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 Phone
MFA 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 Phone
eş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:
- Düğmeler : türüyle
ClaimsProviderSelection
başlar veyaCombinedSignInAndSignUp
bir kullanıcının seçebileceği seçeneklerin listesini içerir. öğesinin içindeki seçeneklerinClaimsProviderSelections
sırası, kullanıcıya sunulan düğmelerin sırasını denetler. - Eylemler - Ardından türü.
ClaimsExchange
ClaimsExchange, eylemlerin listesini içerir. Eylem, OAuth2, OpenID Connect, 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:
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, X, 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ı. |