Sdílet prostřednictvím


Správa přístupu uživatelů v Azure Active Directory B2C

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Tento článek popisuje, jak spravovat přístup uživatelů k vašim aplikacím pomocí Azure Active Directory B2C (Azure AD B2C). Správa přístupu ve vaší aplikaci zahrnuje:

  • Identifikace nezletilých a řízení přístupu uživatelů k vaší aplikaci
  • Vyžadování souhlasu rodiče pro děti, kteří mají vaše aplikace používat.
  • Shromažďování údajů o narození a zemi/regionu od uživatelů.
  • Zachycení smlouvy o použití a omezení přístupu.

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

Kontrola přístupu pro nezletilé

Aplikace a organizace se můžou rozhodnout blokovat používání aplikací a služeb, které nejsou určené pro tuto cílovou skupinu. Případně se mohou aplikace a organizace rozhodnout o přijetí menších osob a následné správě souhlasu rodiče a poskytovat přípustné zkušenosti pro malé osoby podle obchodních pravidel a povolených nařízením.

Pokud je uživatel identifikován jako nezletilý, můžete tok uživatele v Azure AD B2C nastavit na jednu ze tří možností:

  • Odešlete podepsaný JWT id_token zpět do aplikace: Uživatel je zaregistrován v adresáři a token je vrácen do aplikace. Aplikace pak pokračuje použitím obchodních pravidel. Aplikace může například pokračovat v procesu souhlasu rodiče. Chcete-li použít tuto metodu, zvolte obdržet z aplikace žádosti ageGroup a consentProvidedForMinor.

  • Odeslání nepodepsaného tokenu JSON do aplikace: Azure AD B2C upozorní aplikaci, že uživatel je menší a poskytne stav souhlasu rodiče uživatele. Aplikace pak pokračuje použitím obchodních pravidel. Token JSON neprovádí úspěšné ověření v aplikaci. Aplikace musí zpracovat neověřeného uživatele podle deklarací identity obsažených v tokenu JSON, který může zahrnovat název, e-mail, ageGroup a consentProvidedForMinor.

  • Blokovat uživatele: Pokud je uživatel menší a nebyl poskytnut souhlas rodiče, může Azure AD B2C uživatele upozornit, že je zablokovaný. Nevystaví se žádný token, přístup se zablokuje a uživatelský účet se během registrační cesty nevytvořil. K implementaci tohoto oznámení poskytnete vhodnou stránku obsahu HTML/CSS, která informuje uživatele a nabídne příslušné možnosti. Aplikace nevyžaduje žádnou další akci pro nové registrace.

V závislosti na nařízení o aplikaci může být souhlas rodičů potřeba udělit uživateli, který je ověřený jako dospělý. Azure AD B2C neposkytuje zkušenosti s ověřením věku jednotlivce a potom umožňuje ověřenému dospělému udělit souhlas rodiče s nezletilou osobou. Toto prostředí musí poskytovat aplikace nebo jiný poskytovatel služeb.

Následuje příklad toku uživatele pro shromažďování souhlasu rodiče:

  1. Operace rozhraní Microsoft Graph API identifikuje uživatele jako nezletilého a vrátí data uživatele aplikaci jako nepodepsaný token JSON.

  2. Aplikace zpracuje JSON token a zobrazí obrazovku nezletilému, upozorní ho, že je vyžadován souhlas rodičů, a požádá o tento souhlas prostřednictvím aplikace.

  3. Azure AD B2C ukazuje cestu přihlášení, ke které se uživatel může přihlásit za normálních okolností a vydá token pro aplikaci, která je nastavená tak, aby zahrnovala legalAgeGroupClassification = "minorWithParentalConsent". Aplikace shromažďuje e-mailovou adresu rodiče a ověřuje, že rodič je dospělý. K tomu používá důvěryhodný zdroj, například národní/regionální identifikační úřad, ověření licence nebo doklad o platební kartě. Pokud je ověření úspěšné, aplikace vyzve nezletilého k přihlášení pomocí uživatelského toku Azure AD B2C. Pokud je souhlas odepřen (například pokud legalAgeGroupClassification = "minorWithoutParentalConsent"), Azure AD B2C vrátí token JSON (nikoli přihlášení) k aplikaci, aby se proces souhlasu restartoval. Volitelně lze přizpůsobit tok uživatele tak, aby nezletilý nebo dospělý mohl znovu získat přístup k účtu nezletilého tím, že pošle registrační kód na e-mailovou adresu nezletilého nebo na e-mailovou adresu dospělého v záznamu.

  4. Aplikace nabízí nezletilému možnost odvolat souhlas.

  5. Pokud buď nezletilý nebo dospělý odvolá souhlas, lze rozhraní Microsoft Graph API použít ke změně souhlasuPoskytnutProNezletilé na odepřeno. Případně se aplikace může rozhodnout odstranit nezletilého, jehož souhlas byl odvolán. Je volitelně možné přizpůsobit tok uživatele tak, aby ověřený nezletilý (nebo rodič využívající účet nezletilého) mohl odvolat souhlas. Azure AD B2C zaznamenává souhlasProvidedForMinor jako odepřený.

Další informace o legalAgeGroupClassification, consentProvidedForMinor a ageGroup naleznete v části Typ prostředku uživatele. Další informace o vlastních atributech naleznete v části Použití vlastních atributů ke sběru informací o vašich spotřebitelích. Při adresování rozšířených atributů pomocí rozhraní Microsoft Graph API musíte použít dlouhou verzi atributu, například extension_18b70cf9bb834edd8f38521c2583cd86_dateOfBirth: 2011-01-01T00:00:00Z.

Shromáždění dat o narození a zemi/oblasti

Aplikace můžou spoléhat na Azure AD B2C, aby shromáždily informace o datu narození a zemi/oblasti od všech uživatelů během registrace. Pokud tyto informace ještě neexistují, může si ji aplikace vyžádat od uživatele během další cesty ověřování (přihlášení). Uživatelé nemohou pokračovat bez poskytnutí informací o datu narození a zemi/regionu. Azure AD B2C používá informace k určení, jestli je jednotlivec považován za vedlejší podle regulačních standardů dané země/oblasti.

Přizpůsobený uživatelský tok může shromáždit informace o datu narození (DOB) a zemi/oblasti a pomocí transformace deklarace identity Azure AD B2C určit věkovou skupinu a uložit výsledek (nebo přímo uložit informace o DOB a zemi/oblasti) do adresáře.

Následující kroky ukazují logiku, která se používá k výpočtu ageGroup z data narození uživatele:

  1. Zkuste v seznamu najít zemi nebo oblast podle kódu země nebo oblasti. Pokud se země nebo oblast nenajde, vraťte se do výchozího stavu.

  2. Pokud je uzel MinorConsent v elementu země/oblasti:

    a. Vypočítejte datum, kdy se uživatel musí narodit, aby byl považován za dospělého. Pokud je například aktuální datum 14. března 2015 a MinorConsent je 18, datum narození nesmí být pozdější než 14. března 2000.

    b) Porovnejte minimální datum narození se skutečným datem narození. Pokud je minimální datum narození před datem narození uživatele, vrátí výpočet menší hodnotu jako výpočet věkové skupiny.

  3. Pokud je uzel MinorNoConsentRequired v prvku země/oblasti, opakujte kroky 2a a 2b pomocí hodnoty MinorNoConsentRequired. Výstup 2b vrátí MinorNoConsentRequired, pokud je minimální datum narození před datem narození uživatele.

  4. Pokud ani jeden z výpočtů nevrací hodnotu true, vrátí výpočet hodnotu Pro dospělé.

Pokud aplikace spolehlivě shromáždila data dob nebo země/oblasti jinými metodami, může aplikace pomocí rozhraní Graph API aktualizovat záznam uživatele s použitím těchto informací. Například:

  • Pokud je známo, že uživatel je dospělý, aktualizujte atribut adresáře ageGroup hodnotou Adult.
  • Pokud je známo, že uživatel je nezletilý, aktualizujte atribut adresáře ageGroup hodnotou Minor a podle potřeby nastavte consentProvidedForMinor.

Menší pravidla výpočtu

Věkové omezení zahrnuje dvě věkové hodnoty: věk, od kterého člověk již není považován za nezletilého, a věk, do kterého musí mít nezletilý souhlas rodičů. V následující tabulce jsou uvedena věková pravidla, která se používají k definování malého a menšího věku vyžadujícího souhlas.

Země/oblast Název země/oblasti Věk způsobilosti k souhlasu nezletilých Malý věk
Výchozí Žádné Žádné 18
Æ Spojené arabské emiráty Žádné 21
Na Rakousko 14 18
BÝT Belgie 14 18
BG Bulharsko 16 18
Bosna a Hercegovina Bahrajn Žádné 21
CM Kamerun Žádné 21
CY Kypr 16 18
CZ Česká republika 16 18
Německo Německo 16 18
DK Dánsko 16 18
EE Estonsko 16 18
např. Egypt Žádné 21
ES Španělsko 13 18
FR Francie 16 18
GB Spojené království 13 18
GR Řecko 16 18
Lidské zdroje Chorvatsko 16 18
HU Maďarsko 16 18
Internet Explorer Irsko 13 18
Informační technologie Itálie 16 18
KR Korejská republika 14 18
LT Litva 16 18
LU Lucembursko 16 18
Lotyšsko Lotyšsko 16 18
MT Malta 16 18
Na Namibie Žádné 21
Nizozemsko Nizozemsko 16 18
Polsko Polsko 13 18
PT Portugalsko 16 18
RO Rumunsko 16 18
SE Švédsko 13 18
SG Singapur Žádné 21
Mezinárodní soustava jednotek (SI) Slovinsko 16 18
SK Slovensko 16 18
TD Čad Žádné 21
TH Thajsko Žádné 20
Tchaj-wan Tchaj-wan Žádné 20
USA Spojené státy americké 13 18

Zachycení podmínek použití

Při vývoji aplikace obvykle zaznamenáváte souhlas uživatelů s podmínkami používání přímo v jejich aplikacích, a to bez účasti uživatelského adresáře, nebo s jeho pouze minimální účastí. Je však možné použít tok uživatele Azure AD B2C ke shromáždění souhlasu uživatele s podmínkami použití, omezení přístupu, pokud není uděleno přijetí, a vynucení přijetí budoucích změn podmínek použití na základě data posledního přijetí a data nejnovější verze podmínek použití.

Podmínky použití mohou obsahovat také "Souhlas se sdílením dat s třetími stranami". V závislosti na místních pravidlech a obchodních pravidlech můžete shromáždit přijetí obou podmínek v kombinaci, nebo můžete uživateli umožnit přijmout jednu podmínku, nikoli druhou.

Následující kroky popisují, jak můžete spravovat podmínky použití:

  1. Zaznamenejte přijetí podmínek použití a data přijetí pomocí rozhraní Graph API a rozšířených atributů. Můžete to udělat pomocí předdefinovaných toků uživatelů i vlastních zásad. Doporučujeme vytvářet a používat atributy extension_termsOfUseConsentDateTime a extension_termsOfUseConsentVersion .

  2. Vytvořte požadované zaškrtávací políčko s označením "Přijmout podmínky použití" a poznamenejte si výsledek během registrace. Můžete to udělat pomocí předdefinovaných toků uživatelů i vlastních zásad.

  3. Azure AD B2C ukládá podmínky smlouvy o použití a přijetí uživatele. Rozhraní Graph API můžete použít k dotazování na stav libovolného uživatele načtením atributu rozšíření, který se používá k zaznamenání odpovědi (například read termsOfUseTestUpdateDateTime). Můžete to udělat pomocí předdefinovaných toků uživatelů i vlastních zásad.

  4. Vyžaduje přijetí aktualizovaných podmínek použití porovnáním data přijetí s datem nejnovější verze podmínek použití. Kalendářní data můžete porovnat pouze pomocí vlastního toku uživatele. Použijte rozšířený atribut extension_termsOfUseConsentDateTime a porovnejte hodnotu s deklaracemi termsOfUseTextUpdateDateTime. Pokud je přijetí staré, vynuťte nové přijetí zobrazením obrazovky s vlastním potvrzením. Jinak zablokujte přístup pomocí logiky zásad.

  5. Vyžaduje přijetí aktualizovaných podmínek použití porovnáním čísla verze přijetí s nejnovějším přijatým číslem verze. Čísla verzí můžete porovnávat pouze pomocí vlastního uživatelského toku. Použijte rozšířený atribut extension_termsOfUseConsentDateTime a porovnejte hodnotu s nárokem extension_termsOfUseConsentVersion. Pokud je přijetí staré, vynuťte nové přijetí zobrazením obrazovky s vlastním potvrzením. Jinak zablokujte přístup pomocí logiky zásad.

Podmínky použití můžete zachytit v následujících scénářích:

  • Nový uživatel se zaregistruje. Zobrazí se podmínky použití a výsledek přijetí se uloží.
  • Uživatel se přihlašuje, kdo dříve přijal nejnovější nebo aktivní podmínky použití. Podmínky použití se nezobrazují.
  • Uživatel se přihlašuje, kdo ještě nepřijal nejnovější nebo aktivní podmínky použití. Zobrazí se podmínky použití a výsledek přijetí se uloží.
  • Uživatel se přihlašuje, kdo už přijal starší verzi podmínek použití, které se teď aktualizují na nejnovější verzi. Zobrazí se podmínky použití a výsledek přijetí se uloží.

Na následujícím obrázku je doporučený tok uživatele:

Vývojový diagram znázorňující doporučený uživatelský tok přijetí

Následuje příklad vyjádření souhlasu s podmínkami použití v nároku. extension_termsOfUseConsentDateTime Pokud je deklarace identity starší než 2025-01-15T00:00:00, vynuťte nové přijetí kontrolou termsOfUseConsentRequired logické deklarace identity a zobrazením obrazovky s vlastním potvrzením.

<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>

Následuje příklad souhlasu s podmínkami použití verzovanými v nároku. Pokud se deklarace extension_termsOfUseConsentVersion nerovná V1, vynuťte nové přijetí tím, že zkontrolujete booleovskou deklaraci termsOfUseConsentRequired a zobrazíte obrazovku s vlastním potvrzením.

<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>

Další kroky