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ő Nidő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:
  • ClaimsProviderSelection – Azt jelzi, hogy a vezénylési lépés különböző jogcímszolgáltatókat mutat be a felhasználónak a kiválasztáshoz.
  • CombinedSignInAndSignUp – Azt jelzi, hogy a vezénylési lépés egy kombinált közösségi szolgáltatói bejelentkezési és helyi fiók-regisztrációs oldalt jelenít meg.
  • ClaimsExchange – Azt jelzi, hogy a vezénylési lépés jogcímeket cserél egy jogcímszolgáltatóval.
  • GetClaims – Azt határozza meg, hogy a vezénylési lépésnek feldolgoznia kell az Azure AD B2C-nek a függő entitástól a konfiguráción keresztül InputClaims küldött jogcímadatokat.
  • InvokeSubJourney – Azt jelzi, hogy a vezénylési lépés egy alútra cseréli a jogcímeket.
  • SendClaims – Azt jelzi, hogy a vezénylési lépés a jogcímeket egy jogcímkibocsátó által kibocsátott jogkivonattal továbbítja a függő entitásnak.
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 CombinedSignInAndSignUpaz 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: truevagy 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 Truea Falsevagy 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 vagy truefalse. 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 Phonevan 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:

  1. Gombok – A gomb típusa ClaimsProviderSelection, vagy CombinedSignInAndSignUp a felhasználó által választható lehetőségek listája. Az elemen belüli ClaimsProviderSelections beállítások sorrendje szabályozza a felhasználónak megjelenített gombok sorrendjét.
  2. 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 Csatlakozás, 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, a Twitter, 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.