UserJourneys
Feljegyzés
Az Azure Active Directory B2C-ben az egyéni szabályzatok elsősorban összetett helyzetek kezelésére szolgálnak. A legtöbb forgatókönyv esetében javasoljuk, hogy beépített felhasználói folyamatokat használjon. Ha még nem tette meg, ismerkedjen meg az egyéni szabályzatok kezdőcsomagjával az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben.
A felhasználói interakciósorozatok explicit elérési utakat határoznak meg, amelyen keresztül egy szabályzat lehetővé teszi a jogcímfelhasználó alkalmazásnak a kívánt jogcímek beszerzését a felhasználó számára. A felhasználó ezeken az elérési utakon keresztül kérheti le a jogcímeket, amelyeket bemutathat a függő entitásnak. Más szóval a felhasználói folyamatok határozzák meg a végfelhasználók üzleti logikáját, mivel az Azure AD B2C Identity Experience Framework feldolgozza a kérést.
Ezek a felhasználói folyamatok olyan sablonoknak tekinthetők, amelyek a közösség különböző függő entitásainak alapvető igényeit kielégítik. A felhasználói folyamatok megkönnyítik a szabályzat függő entitás részének meghatározását. A szabályzatok több felhasználói folyamatot is meghatározhatnak. Minden felhasználói folyamat vezénylési lépések sorozata.
A szabályzat által támogatott felhasználói folyamatok meghatározásához a rendszer hozzáad egy UserJourneys
elemet a szabályzatfájl legfelső szintű TrustFrameworkPolicy
eleméhez.
<TrustFrameworkPolicy ...>
...
<UserJourneys>
...
</UserJourneys>
</TrustFrameworkPolicy>
A UserJourneys elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
UserJourney | 1:n | A teljes felhasználói folyamathoz szükséges összes szerkezetet meghatározó felhasználói folyamat. |
A UserJourney elem a következő attribútumot tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Id | Igen | Egy felhasználói folyamat azonosítója, amely a szabályzat más elemeiből való hivatkozásra használható. A függő entitás házirendjének DefaultUserJourney eleme erre az attribútumra mutat. |
DefaultCpimIssuerTechnicalProfileReferenceId | Nem | Az alapértelmezett tokenkibocsátó technikai profil referencia-azonosítója. Például JWT-tokenkibocsátó, SAML-tokenkibocsátó vagy OAuth2 egyéni hiba. Ha a felhasználói út vagy az alút már rendelkezik egy másik SendClaims vezénylési lépésvel, állítsa be az DefaultCpimIssuerTechnicalProfileReferenceId attribútumot a felhasználói folyamat jogkivonat-kiállítójának technikai profiljára. |
A UserJourney elem a következő elemeket tartalmazza:
Elem | Események | Leírás |
---|---|---|
AuthorizationTechnicalProfiles | 0:1 | Engedélyezési műszaki profilok listája. |
OrchestrationSteps | 1:n | Vezénylési sorozat, amelyet egy sikeres tranzakcióhoz kell követni. Minden felhasználói folyamat a sorrendben végrehajtott vezénylési lépések rendezett listájából áll. Ha bármelyik lépés meghiúsul, a tranzakció meghiúsul. |
AuthorizationTechnicalProfiles
Tegyük fel, hogy egy felhasználó végrehajtott egy UserJourney-t, és kapott egy hozzáférést vagy egy azonosító jogkivonatot. További erőforrások, például a UserInfo végpont kezeléséhez azonosítani kell a felhasználót. A folyamat megkezdéséhez a felhasználónak be kell mutatnia a korábban kiadott hozzáférési jogkivonatot annak bizonyítékaként, hogy eredetileg egy érvényes Azure AD B2C-szabályzat hitelesítette őket. A felhasználó érvényes jogkivonatának mindig jelen kell lennie a folyamat során, hogy a felhasználó számára engedélyezve legyen a kérés. Az engedélyezési műszaki profilok ellenőrzik a bejövő jogkivonatot, és jogcímeket nyernek ki a jogkivonatból.
Az AuthorizationTechnicalProfiles elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
AuthorizationTechnicalProfile | 0:1 | A felhasználó engedélyezéséhez használt műszaki profilhivatkozás. |
Az AuthorizationTechnicalProfile elem a következő attribútumot tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Referenciaazonosító | Igen | A végrehajtandó műszaki profil azonosítója. |
Az alábbi példa egy engedélyezési műszaki profilokkal rendelkező felhasználói folyamatelemet mutat be:
<UserJourney Id="UserInfoJourney" DefaultCpimIssuerTechnicalProfileReferenceId="UserInfoIssuer">
<Authorization>
<AuthorizationTechnicalProfiles>
<AuthorizationTechnicalProfile ReferenceId="UserInfoAuthorization" />
</AuthorizationTechnicalProfiles>
</Authorization>
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsExchange">
...
OrchestrationSteps
A felhasználói folyamat vezénylési sorozatként jelenik meg, amelyet egy sikeres tranzakcióhoz követni kell. Ha bármelyik lépés meghiúsul, a tranzakció meghiúsul. Ezek a vezénylési lépések a szabályzatfájlban engedélyezett építőelemekre és jogcímszolgáltatókra is hivatkoznak. A felhasználói élmény megjelenítéséért vagy megjelenítéséért felelős vezénylési lépések a megfelelő tartalomdefiníció-azonosítóra is hivatkoznak.
A vezénylési lépések feltételesen végrehajthatók a vezénylési lépés elemében meghatározott előfeltételek alapján. Ellenőrizheti például, hogy csak akkor hajt-e végre vezénylési lépést, ha egy adott jogcím létezik, vagy ha egy jogcím egyenlő vagy nem a megadott értékkel.
A vezénylési lépések rendezett listájának megadásához a szabályzat részeként hozzáad egy OrchestrationSteps elemet. Ez az elem szükséges.
<UserJourney Id="SignUpOrSignIn">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
...
Az OrchestrationSteps elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
OrchestrationStep | 1:n | Egy rendezett vezénylési lépés. |
Az OrchestrationStep elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Order |
Igen | A vezénylési lépések sorrendje. Az attribútum értéke a Order következő N időpontban 1 kezdődik: . Ha tehát 10 lépésből áll, és törli a második lépést, a 3–10. lépést újra kell számba vennie, hogy kettőről kilencre változzon. |
Type |
Igen | A vezénylési lépés típusa. Lehetséges értékek:
|
ContentDefinitionReferenceId | Nem | A vezénylési lépéshez társított tartalomdefiníció azonosítója. A tartalomdefiníció referenciaazonosítója általában az önaláírt műszaki profilban van definiálva. Vannak azonban olyan esetek, amikor az Azure AD B2C-nek technikai profil nélkül kell megjelenítenie valamit. Két példa van: ha a vezénylési lépés típusa az alábbiak egyike: ClaimsProviderSelection vagy CombinedSignInAndSignUp az Azure AD B2C-nek technikai profil nélkül kell megjelenítenie az identitásszolgáltató kiválasztását. |
CpimIssuerTechnicalProfileReferenceId | Nem | A vezénylési lépés típusa: SendClaims . Ez a tulajdonság határozza meg a függő entitás jogkivonatát kiadó jogcímszolgáltató technikaiprofil-azonosítóját. Ha hiányzik, nem jön létre függő entitás jogkivonata. |
Az OrchestrationStep elem a következő elemeket tartalmazhatja:
Elem | Események | Leírás |
---|---|---|
Előfeltételek | 0:n | A vezénylési lépés végrehajtásához teljesítendő előfeltételek listája. |
ClaimsProviderSelections | 0:n | A vezénylési lépés jogcímszolgáltatói kiválasztásának listája. |
ClaimsExchanges | 0:n | A vezénylési lépés jogcímcseréinek listája. |
JourneyList | 0:1 | A vezénylési lépésre jelentkező alútjelöltek listája. |
Előfeltételek
A vezénylési lépések feltételesen végrehajthatók a vezénylési lépésben meghatározott előfeltételek alapján. Az Preconditions
elem a kiértékelendő előfeltételek listáját tartalmazza. Ha az előfeltételek kiértékelése teljesül, a kapcsolódó vezénylési lépés a következő vezénylési lépésre ugrik.
Az Azure AD B2C listázási sorrendben értékeli ki az előfeltételeket. A sorrendalapú előfeltételek lehetővé teszik az előfeltételek alkalmazásának sorrendjét. Az első teljesült előfeltétel felülbírálja az összes további előfeltételt. A vezénylési lépés csak akkor lesz végrehajtva, ha az összes előfeltétel nem teljesül.
Az Előfeltételek elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
Előfeltétel | 1:n | A kiértékelés előfeltétele. |
Előfeltétel
Az Előkondicionálás elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Type |
Igen | Az ehhez az előfeltételhez végrehajtandó ellenőrzés vagy lekérdezés típusa. Az érték lehet ClaimsExist, amely azt határozza meg, hogy a műveleteket akkor kell végrehajtani, ha a megadott jogcímek a felhasználó aktuális jogcímkészletében léteznek, vagy a ClaimEquals, amely azt határozza meg, hogy a műveleteket akkor kell végrehajtani, ha a megadott jogcím létezik, és az értéke megegyezik a megadott értékkel. |
ExecuteActionsIf |
Igen | Dönti el, hogy az előfeltételek hogyan tekinthetők teljesültnek. Lehetséges értékek: true vagy false . Ha az érték értéke be van állítva true , akkor teljesül, ha a jogcím megfelel az előfeltételnek. Ha az érték értéke be van állítva false , akkor elégedettnek minősül, ha a jogcím nem felel meg az előfeltételnek. |
Az előkondicionálási elemek a következő elemeket tartalmazzák:
Elem | Események | Leírás |
---|---|---|
Érték | 1:2 | A jogcímtípus azonosítója. A jogcím már definiálva van a házirendfájl jogcímséma szakaszában vagy a szülőházirend-fájlban. Ha az előfeltétel típusa ClaimEquals , egy második Value elem tartalmazza az ellenőrizendő értéket. |
Művelet | 1:1 | Az előfeltétel-értékelés teljesülése esetén végrehajtandó művelet. Lehetséges érték: SkipThisOrchestrationStep . A kapcsolódó vezénylési lépés a következőre ugrik. |
Minden előfeltétel egyetlen jogcímet értékel ki. Kétféle előfeltétel létezik:
ClaimsExist – Azt határozza meg, hogy a műveleteket akkor kell végrehajtani, ha a megadott jogcímek a felhasználó aktuális jogcímcsomagjában találhatók.
ClaimEquals – Azt adja meg, hogy a műveleteket akkor kell végrehajtani, ha a megadott jogcím létezik, és értéke megegyezik a megadott értékkel. Az ellenőrzés megkülönbözteti a kis- és nagybetűket. Logikai jogcím típusának ellenőrzésekor használja
True
aFalse
vagy a .Ha a jogcím null értékű vagy nem inicializálódik, a rendszer figyelmen kívül hagyja az előfeltételt, függetlenül attól, hogy az
ExecuteActionsIf
vagytrue
false
. Ajánlott eljárásként ellenőrizze, hogy a jogcím létezik-e, és megegyezik-e egy értékkel.
Egy példaforgatókönyv a felhasználó MFA-ra való megtámadása, ha a felhasználó a következőre Phone
van MfaPreference
állítva: . A feltételes logika végrehajtásához ellenőrizze, hogy létezik-e a MfaPreference
jogcím, és ellenőrizze azt is, hogy a jogcím értéke megegyezik-e.Phone
Az alábbi XML bemutatja, hogyan implementálhatja ezt a logikát előfeltételekkel.
<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>
Példák előfeltételekre
Az alábbi előfeltételek ellenőrzik, hogy a felhasználó objectId azonosítója létezik-e. A felhasználói folyamat során a felhasználó kiválasztotta, hogy helyi fiókkal jelentkezzen be. Ha az objectId létezik, hagyja ki ezt a vezénylési lépést.
<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>
Az alábbi előfeltételek ellenőrzik, hogy a felhasználó bejelentkezett-e közösségi fiókkal. Megkísérlik megkeresni a felhasználói fiókot a címtárban. Ha a felhasználó bejelentkezik vagy helyi fiókkal regisztrál, hagyja ki ezt a vezénylési lépést.
<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>
Az előfeltételek több előfeltételt is ellenőrizhetnek. Az alábbi példa ellenőrzi, hogy az "objectId" vagy az "e-mail" létezik-e. Ha az első feltétel igaz, az út a következő vezénylési lépésre ugrik.
<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>
Jogcímszolgáltató kiválasztása
A jogcímszolgáltató kiválasztásával a felhasználók kiválaszthatják a műveletet a lehetőségek listájából. Az identitásszolgáltató kiválasztása két vezénylési lépésből áll:
- Gombok – A gomb típusa
ClaimsProviderSelection
, vagyCombinedSignInAndSignUp
a felhasználó által választható lehetőségek listája. Az elemen belüliClaimsProviderSelections
beállítások sorrendje szabályozza a felhasználónak megjelenített gombok sorrendjét. - Műveletek – Ezt követi a típus
ClaimsExchange
. A ClaimsExchange a műveletek listáját tartalmazza. A művelet egy technikai profilra való hivatkozás, például OAuth2, OpenID Connect, jogcímátalakítás vagy önérvényesítés. Amikor egy felhasználó az egyik gombra kattint, a rendszer végrehajtja a megfelelő műveletet.
A ClaimsProviderSelections elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
ClaimsProviderSelection | 1:n | A választható jogcímszolgáltatók listáját tartalmazza. |
A ClaimsProviderSelections elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
DisplayOption | Nem | Egy olyan eset viselkedését szabályozza, amelyben egyetlen jogcímszolgáltatói kijelölés érhető el. Lehetséges értékek: DoNotShowSingleProvider (alapértelmezett) a rendszer azonnal átirányítja a felhasználót az összevont identitásszolgáltatóhoz. Vagy ShowSingleProvider az Azure AD B2C bemutatja a bejelentkezési oldalt az egyetlen identitásszolgáltató kiválasztásával. Az attribútum használatához a tartalomdefiníciós verziónak meg kell jelennie urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.0.0 . |
A ClaimsProviderSelection elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
TargetClaimsExchangeId | Nem | A jogcímcsere azonosítója, amely a jogcímszolgáltató kiválasztásának következő vezénylési lépésében lesz végrehajtva. Ezt az attribútumot vagy a ValidationClaimsExchangeId attribútumot meg kell adni, de mindkettőt nem. |
ValidationClaimsExchangeId | Nem | A jogcímcsere azonosítója, amelyet az aktuális vezénylési lépésben hajtunk végre a jogcímszolgáltató kiválasztásának ellenőrzéséhez. Ezt az attribútumot vagy a TargetClaimsExchangeId attribútumot meg kell adni, de mindkettőt nem. |
Példa jogcímszolgáltató kiválasztására
A következő vezénylési lépésben a felhasználó bejelentkezhet a Facebook, a LinkedIn, az X, a Google vagy egy helyi fiókkal. Ha a felhasználó kiválasztja az egyik közösségi identitásszolgáltatót, a második vezénylési lépés az attribútumban TargetClaimsExchangeId
megadott kiválasztott jogcímcserével hajtja végre. A második vezénylési lépés átirányítja a felhasználót a közösségi identitásszolgáltatóhoz a bejelentkezési folyamat befejezéséhez. Ha a felhasználó úgy dönt, hogy a helyi fiókkal jelentkezik be, az Azure AD B2C ugyanazon a vezénylési lépésen (ugyanazon a regisztrációs oldalon vagy bejelentkezési oldalon) marad, és kihagyja a második vezénylési lépést.
<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
A ClaimsExchanges elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
ClaimsExchange | 1:n | A használt műszaki profiltól függően vagy átirányítja az ügyfelet a kiválasztott ClaimsProviderSelection szerint, vagy kiszolgálói hívást kezdeményez a jogcímek cseréjére. |
A ClaimsExchange elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
Id | Igen | A jogcímcsere lépés azonosítója. Az azonosítóval hivatkozhat a jogcímek cseréjére a házirend egy jogcímszolgáltatói kiválasztási lépéséből. |
TechnicalProfileReferenceId | Igen | A végrehajtandó műszaki profil azonosítója. |
JourneyList
A JourneyList elem a következő elemet tartalmazza:
Elem | Események | Leírás |
---|---|---|
Jelölt | 1:1 | Egy meghívandó alútra mutató hivatkozás. |
Jelölt
A Jelölt elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
SubJourneyReferenceId | Igen | A végrehajtandó részút azonosítója. |