Felhasználói hozzáférés kezelése az Azure Active Directory B2C-ben

Ez a cikk azt ismerteti, hogyan kezelheti az alkalmazásokhoz való felhasználói hozzáférést az Azure Active Directory B2C (Azure AD B2C) használatával. Az alkalmazásban a hozzáférés-kezelés a következőket tartalmazza:

  • Kiskorúak azonosítása és az alkalmazáshoz való felhasználói hozzáférés szabályozása.
  • Szülői hozzájárulás megkövetelése a kiskorúak számára az alkalmazások használatához.
  • Születési és ország-/régióadatok gyűjtése a felhasználóktól.
  • Használati szerződés rögzítése és hozzáférés-korlátozás.

Megjegyzés

Az Azure Active Directory B2C-ben az egyéni szabályzatok elsősorban összetett forgatókönyvek kezelésére szolgálnak. A legtöbb esetben javasoljuk, hogy beépített felhasználói folyamatokat használjon. Ha még nem tette meg, tekintse meg az egyéni szabályzatok kezdőcsomagját az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben című témakörben.

Kisebb hozzáférés szabályozása

Az alkalmazások és szervezetek dönthetnek úgy, hogy letiltják a kiskorúak számára azokat az alkalmazásokat és szolgáltatásokat, amelyek nem erre a célközönségre irányulnak. Másik lehetőségként az alkalmazások és szervezetek dönthetnek úgy, hogy elfogadják a kiskorúakat, és ezt követően kezelik a szülői hozzájárulást, és az üzleti szabályok által előírt és a rendelet által megengedett élményeket biztosítják a kiskorúak számára.

Ha egy felhasználót kiskorúként azonosít, a B2C Azure AD felhasználói folyamatát három lehetőség egyikére állíthatja be:

  • Küldjön vissza egy aláírt JWT-id_token az alkalmazásnak: A felhasználó regisztrálva van a címtárban, és egy jogkivonatot ad vissza az alkalmazásnak. Az alkalmazás ezután üzleti szabályok alkalmazásával folytatódik. Az alkalmazás például folytathatja a szülői hozzájárulási folyamatot. A metódus használatához válassza az ageGroup és consentProvidedForMinor jogcímek fogadását az alkalmazásból.

  • Küldjön egy aláíratlan JSON-jogkivonatot az alkalmazásnak: Azure AD A B2C értesíti az alkalmazást, hogy a felhasználó kiskorú, és megadja a felhasználó szülői beleegyezésének állapotát. Az alkalmazás ezután üzleti szabályok alkalmazásával folytatódik. A JSON-jogkivonatok nem fejeznek be sikeres hitelesítést az alkalmazással. Az alkalmazásnak a JSON-jogkivonatban szereplő jogcímek alapján kell feldolgoznia a hitelesítés nélküli felhasználót, amely tartalmazhat nevet, e-mailt, ageGroupot és consentProvidedForMinort.

  • A felhasználó letiltása: Ha egy felhasználó kiskorú, és nincs megadva szülői hozzájárulás, Azure AD B2C értesítheti a felhasználót a letiltásukról. Nincs jogkivonat kiadva, a hozzáférés le van tiltva, és a felhasználói fiók nem jön létre a regisztrációs folyamat során. Az értesítés végrehajtásához meg kell adnia egy megfelelő HTML/CSS-tartalomlapot, amely tájékoztatja a felhasználót, és megjeleníti a megfelelő beállításokat. Az alkalmazásnak nincs szüksége további műveletre az új regisztrációkhoz.

Az alkalmazásra vonatkozó szabályozástól függően előfordulhat, hogy a szülői hozzájárulást egy felnőttként igazolt felhasználónak kell megadnia. Azure AD B2C nem biztosít tapasztalatot az egyén életkorának ellenőrzéséhez, majd engedélyezi egy igazolt felnőtt számára, hogy szülői hozzájárulást adjon egy kiskorúnak. Ezt a felhasználói élményt az alkalmazásnak vagy egy másik szolgáltatónak kell megadnia.

Az alábbiakban egy példa látható egy felhasználói folyamatra a szülői hozzájárulás összegyűjtéséhez:

  1. A Microsoft Graph API művelet kiskorúként azonosítja a felhasználót, és a felhasználói adatokat egy aláíratlan JSON-jogkivonat formájában adja vissza az alkalmazásnak.

  2. Az alkalmazás feldolgozza a JSON-jogkivonatot, és megjeleníti a képernyőt a kiskorú számára, és értesíti őket arról, hogy szülői hozzájárulásra van szükség, és a szülő beleegyezését kéri az interneten.

  3. Azure AD B2C egy bejelentkezési folyamatot jelenít meg, amelybe a felhasználó normál módon bejelentkezhet, és jogkivonatot ad ki az alkalmazásnak, amely a legalAgeGroupClassification = "minorWithParentalConsent" értéket tartalmazza. Az alkalmazás összegyűjti a szülő e-mail-címét, és ellenőrzi, hogy a szülő felnőtt-e. Ehhez megbízható forrást használ, például egy nemzeti/regionális azonosító hivatalt, egy licencellenőrzést vagy hitelkártya-igazolást. Ha az ellenőrzés sikeres, az alkalmazás arra kéri az alverziót, hogy jelentkezzen be a Azure AD B2C felhasználói folyamat használatával. Ha a hozzájárulás megtagadva (például ha legalAgeGroupClassification = "minorWithoutParentalConsent"), Azure AD A B2C JSON-tokent (nem bejelentkezést) ad vissza az alkalmazásnak a hozzájárulási folyamat újraindításához. Igény szerint testre szabható a felhasználói folyamat, hogy egy kiskorú vagy egy felnőtt vissza tudja szerezni a kiskorú fiókjához való hozzáférést úgy, hogy regisztrációs kódot küld a kiskorú e-mail-címére vagy a felnőtt e-mail-címére a rekordon.

  4. Az alkalmazás lehetőséget kínál a kiskorú számára a hozzájárulás visszavonására.

  5. Ha a kiskorú vagy a felnőtt visszavonja a hozzájárulást, a Microsoft Graph API használható a hozzájárulás módosításáraProvidedForMinormegtagadva. Másik lehetőségként az alkalmazás törölheti azt a kiskorút, akinek a hozzájárulását visszavonták. Igény szerint testre szabhatja a felhasználói folyamatot, hogy a hitelesített kiskorú (vagy a kiskorú fiókját használó szülő) visszavonhassa a hozzájárulást. Azure AD A B2C megtagadva rögzíti a consentProvidedForMinor rekordot.

A legalAgeGroupClassification, consentProvidedForMinor és ageGroup szolgáltatással kapcsolatos további információkért lásd: Felhasználói erőforrás típusa. Az egyéni attribútumokkal kapcsolatos további információkért lásd: Egyéni attribútumok használata a fogyasztók adatainak gyűjtéséhez. Ha kiterjesztett attribútumokat kezel a Microsoft Graph API használatával, az attribútum hosszú verzióját kell használnia, például extension_18b70cf9bb834edd8f38521c2583cd86_dateOfBirth: 2011-01-01T00:00:00Z.

Születési dátum és ország/régió adatainak összegyűjtése

Az alkalmazások a B2C Azure AD támaszkodhatnak a születési dátum (DOB) és az ország/régió adatainak összegyűjtésére az összes felhasználótól a regisztráció során. Ha ez az információ még nem létezik, az alkalmazás a következő hitelesítési (bejelentkezési) folyamat során kérheti a felhasználótól. A felhasználók a DOB és az ország/régió adatainak megadása nélkül nem folytathatják a műveletet. Azure AD B2C az információk alapján állapítja meg, hogy az adott ország/régió szabályozási előírásainak megfelelően az egyént kiskorúnak tekintik-e.

A testre szabott felhasználói folyamatok összegyűjthetik a DOB és az ország/régió adatait, és Azure AD B2C-jogcímek átalakításával meghatározhatják az ageGroup értéket, és megőrizhetik az eredményt (vagy közvetlenül megőrizhetik a DOB és az ország/régió adatait) a címtárban.

Az alábbi lépések azt a logikát mutatják be, amely az ageGroup kiszámítására szolgál a felhasználó születési dátumából:

  1. Próbálja meg megkeresni az országot/régiót a listában szereplő ország/régió kód alapján. Ha az ország/régió nem található, térjen vissza az Alapértelmezett értékre.

  2. Ha a MinorConsent csomópont megtalálható az ország/régió elemben:

    a. Számítsa ki azt a dátumot, amelyen a felhasználónak felnőttnek kell lennie. Ha például az aktuális dátum 2015. március 14. és a MinorConsent 18, a születési dátumnak legkésőbb 2000. március 14-én kell lennie.

    b. Hasonlítsa össze a minimális születési dátumot a tényleges születési dátummal. Ha a minimális születési dátum a felhasználó születési dátuma előtt van, a számítás a Minor értéket adja vissza korcsoport-számításként.

  3. Ha a MinorNoConsentRequired csomópont megtalálható az ország/régió elemben, ismételje meg a 2a és a 2b lépést a MinorNoConsentRequired értékével. A 2b kimenete a MinorNoConsentRequired értéket adja vissza, ha a minimális születési dátum a felhasználó születési dátuma előtt van.

  4. Ha egyik számítás sem ad vissza igaz értéket, a számítás felnőtt értéket ad vissza.

Ha egy alkalmazás más módszerekkel megbízhatóan gyűjtötte össze a DOB- vagy ország-/régióadatokat, az alkalmazás a Graph API használatával frissítheti a felhasználói rekordot ezzel az információval. Például:

  • Ha egy felhasználóról ismert, hogy felnőtt, frissítse az ageGroup címtárattribútumot felnőtt értékkel.
  • Ha egy felhasználó ismert, hogy kiskorú, frissítse az ageGroup címtárattribútumot a Minor értékkel, és állítsa be a consentProvidedForMinor értéket, ha szükséges.

Kisebb számítási szabályok

Az életkor-gating két korhatárt foglal magában: azt az életkort, amikor valaki már nem minősül kiskorúnak, és az életkor, amikor a kiskorúnak szülői beleegyezéssel kell rendelkeznie. Az alábbi táblázat azokat az életkori szabályokat sorolja fel, amelyek egy kiskorú és egy hozzájárulást igénylő kiskorú meghatározására szolgálnak.

Ország/régió Ország/régió neve Kisebb hozzájárulási életkor Kiskorú
Alapértelmezett None None 18
AE Egyesült Arab Emírségek None 21
AT Ausztria 14 18
BE Belgium 14 18
BG Bulgária 16 18
BH Bahrein None 21
CM Kamerun None 21
CY Ciprus 16 18
CZ Cseh Köztársaság 16 18
DE Németország 16 18
DK Dánia 16 18
EE Észtország 16 18
EG Egyiptom None 21
ES Spanyolország 13 18
JK Franciaország 16 18
GB Egyesült Királyság 13 18
GR Görögország 16 18
HR Horvátország 16 18
HU Magyarország 16 18
IE Írország 13 18
IT Olaszország 16 18
KR Koreai Köztársaság 14 18
LT Litvánia 16 18
LU Luxemburg 16 18
LV Lettország 16 18
MT Málta 16 18
NA Namíbia None 21
NL Hollandia 16 18
PL Lengyelország 13 18
PT Portugália 16 18
RO Románia 16 18
SE Svédország 13 18
SG Szingapúr None 21
SI Szlovénia 16 18
SK Szlovákia 16 18
TD Csád None 21
TH Thaiföld None 20
TW Tajvan None 20
USA Egyesült Államok 13 18

Használati feltételek rögzítése

Az alkalmazás fejlesztésekor ön általában rögzíti, hogy a felhasználók elfogadják a használati feltételeket az alkalmazásaikban a felhasználói címtárban való részvétel nélkül vagy csak kisebb mértékben. Lehetséges azonban egy Azure AD B2C felhasználói folyamat használata a használati feltételek felhasználó általi elfogadásának összegyűjtésére, a hozzáférés korlátozására, ha nem adták meg az elfogadást, és kikényszeríthető a használati feltételek jövőbeli módosításainak elfogadása a használati feltételek legújabb elfogadásának dátuma és a használati feltételek legújabb verziójának dátuma alapján.

A használati feltételek között szerepelhet a "Hozzájárulás az adatok harmadik felekkel való megosztásához". A helyi előírásoktól és az üzleti szabályoktól függően gyűjtheti a felhasználó által a két feltétel együttes elfogadását, vagy engedélyezheti a felhasználónak, hogy elfogadja az egyik feltételt, és ne a másikat.

A következő lépések azt mutatják be, hogyan kezelheti a használati feltételeket:

  1. Jegyezze fel a használati feltételek elfogadását és az elfogadás dátumát a Graph API és a kiterjesztett attribútumok használatával. Ezt a beépített felhasználói folyamatok és egyéni szabályzatok használatával is megteheti. Javasoljuk, hogy hozza létre és használja a extension_termsOfUseConsentDateTime és extension_termsOfUseConsentVersion attribútumokat.

  2. Hozzon létre egy kötelező jelölőnégyzetet "Használati feltételek elfogadása" címkével, és jegyezze fel az eredményt a regisztráció során. Ezt a beépített felhasználói folyamatok és egyéni szabályzatok használatával is megteheti.

  3. Azure AD B2C tárolja a használati szerződést és a felhasználó elfogadását. A Graph API bármely felhasználó állapotának lekérdezéséhez olvassa el a válasz rögzítéséhez használt bővítményattribútumot (például olvassa el a termsOfUseTestUpdateDateTime elemet). Ezt a beépített felhasználói folyamatok és egyéni szabályzatok használatával is megteheti.

  4. A frissített használati feltételek elfogadásának megkövetelése az elfogadás dátumának és a használati feltételek legújabb verziójának dátumának összehasonlításával. A dátumokat csak egyéni felhasználói folyamattal hasonlíthatja össze. Használja a kiterjesztett attribútumot extension_termsOfUseConsentDateTime, és hasonlítsa össze az értéket a termsOfUseTextUpdateDateTime jogcímével. Ha az elfogadás régi, kényszerítse ki az új elfogadást egy önérvényesített képernyő megjelenítésével. Ellenkező esetben tiltsa le a hozzáférést szabályzatlogikával.

  5. A frissített használati feltételek elfogadásának megkövetelése az elfogadás verziószámának és a legújabb elfogadott verziószámnak a összehasonlításával. A verziószámokat csak egyéni felhasználói folyamattal hasonlíthatja össze. Használja a kiterjesztett attribútumot extension_termsOfUseConsentDateTime, és hasonlítsa össze az értéket a extension_termsOfUseConsentVersion jogcímével. Ha az elfogadás régi, kényszerítse ki az új elfogadást egy önérvényesített képernyő megjelenítésével. Ellenkező esetben tiltsa le a hozzáférést szabályzatlogikával.

A használati feltételek elfogadása a következő forgatókönyvekben rögzíthető:

  • Új felhasználó regisztrál. Megjelenik a használati feltételek és az elfogadási eredmény.
  • Egy felhasználó bejelentkezik, aki korábban elfogadta a legújabb vagy aktív használati feltételeket. A használati feltételek nem jelennek meg.
  • Olyan felhasználó jelentkezik be, aki még nem fogadta el a legújabb vagy aktív használati feltételeket. Megjelenik a használati feltételek és az elfogadási eredmény.
  • Egy felhasználó bejelentkezik, aki már elfogadta a használati feltételek egy régebbi verzióját, amely most a legújabb verzióra frissül. Megjelenik a használati feltételek és az elfogadási eredmény.

Az alábbi képen az ajánlott felhasználói folyamat látható:

A javasolt elfogadási felhasználói folyamatot bemutató folyamatábra

Az alábbiakban egy dátumalapú használati feltételt mutatunk be egy jogcímben. Ha a extension_termsOfUseConsentDateTime jogcím régebbi, mint 2025-01-15T00:00:00, kényszerítse ki az új elfogadást a termsOfUseConsentRequired logikai jogcím ellenőrzésével és egy önaláírással rendelkező képernyő megjelenítésével.

<ClaimsTransformations>
  <ClaimsTransformation Id="GetNewUserAgreeToTermsOfUseConsentDateTime" TransformationMethod="GetCurrentDateTime">
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="currentDateTime" />
    </OutputClaims>
  </ClaimsTransformation>
  <ClaimsTransformation Id="IsTermsOfUseConsentRequired" TransformationMethod="IsTermsOfUseConsentRequired">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="termsOfUseConsentDateTime" />
    </InputClaims>
    <InputParameters>
      <InputParameter Id="termsOfUseTextUpdateDateTime" DataType="dateTime" Value="2025-01-15T00:00:00" />
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="result" />
    </OutputClaims>
  </ClaimsTransformation>
</ClaimsTransformations>

Az alábbiakban egy verzióalapú használati feltételt mutatunk be, amely a hozzájárulást tartalmazza egy jogcímben. Ha a extension_termsOfUseConsentVersion jogcím nem egyenlő, V1kényszerítse ki az új elfogadást a termsOfUseConsentRequired logikai jogcím ellenőrzésével és egy önaláírással rendelkező képernyő megjelenítésével.

<ClaimsTransformations>
  <ClaimsTransformation Id="GetEmptyTermsOfUseConsentVersionForNewUser" TransformationMethod="CreateStringClaim">
    <InputParameters>
      <InputParameter Id="value" DataType="string" Value=""/>
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="extension_termsOfUseConsentVersion" TransformationClaimType="createdClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  <ClaimsTransformation Id="GetNewUserAgreeToTermsOfUseConsentVersion" TransformationMethod="CreateStringClaim">
    <InputParameters>
      <InputParameter Id="value" DataType="string" Value="V1"/>
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="extension_termsOfUseConsentVersion" TransformationClaimType="createdClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  <ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
    </InputClaims>
    <InputParameters>
      <InputParameter Id="compareTo" DataType="string" Value="V1" />
      <InputParameter Id="operator" DataType="string" Value="not equal" />
      <InputParameter Id="ignoreCase" DataType="string" Value="true" />
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
</ClaimsTransformations>

Következő lépések