Správa přístupu uživatelů v Azure Active Directory B2C
Tento článek popisuje, jak spravovat uživatelský přístup k aplikacím pomocí Azure Active Directory B2C (Azure AD B2C). Správa přístupu ve vaší aplikaci zahrnuje:
- Identifikace nezletilých osob a řízení přístupu uživatelů k vaší aplikaci
- Vyžadování souhlasu rodičů pro nezletilé osoby s používáním vašich aplikací
- Shromažďování dat o narození a zemi/oblasti od uživatelů
- Zachycení smlouvy o podmínkách použití a nastavení přístupu
Poznámka
V Azure Active Directory B2C jsou vlastní zásady navržené primárně tak, aby řešily složité scénáře. U většiny scénářů doporučujeme používat předdefinované toky uživatelů. Pokud jste to ještě neudělali, přečtěte si o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami v Active Directory B2C.
Řízení menšího přístupu
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 přijmout nezletilé osoby a následně spravovat souhlas rodičů a poskytovat pro nezletilé osoby přípustné zkušenosti podle obchodních pravidel a povoleného nařízením.
Pokud je uživatel identifikován jako nezletilý, můžete nastavit tok uživatele v Azure AD B2C na jednu ze tří možností:
Odešlete podepsanou id_token JWT zpět do aplikace: Uživatel je zaregistrovaný v adresáři a do aplikace se vrátí token. Aplikace pak pokračuje použitím obchodních pravidel. Aplikace může například pokračovat v procesu souhlasu rodiče. Pokud chcete použít tuto metodu, zvolte, že chcete z aplikace přijímat deklarace identity ageGroup a consentProvidedForMinor .
Odešlete aplikaci nepodepsaný token JSON: Azure AD B2C aplikaci oznámí, že uživatel je nezletilý, a poskytne stav souhlasu rodiče uživatele. Aplikace pak pokračuje použitím obchodních pravidel. Token JSON nedokon čte úspěšné ověřování s aplikací. Aplikace musí neověřeného uživatele zpracovat podle deklarací identity, které jsou součástí tokenu JSON, což může zahrnovat jméno, e-mail, ageGroup a consentProvidedForMinor.
Blokovat uživatele: Pokud je uživatel nezletilý a souhlas rodiče nebyl poskytnut, Azure AD B2C může uživatele upozornit, že je zablokovaný. Nevystaví se žádný token, přístup se zablokuje a během cesty registrace se nevytvořil uživatelský účet. K implementaci tohoto oznámení poskytnete vhodnou stránku obsahu HTML/CSS, která uživatele informuje a nabídne příslušné možnosti. Aplikace nevyžaduje žádnou další akci pro nové registrace.
Získání souhlasu rodiče
V závislosti na nařízení o aplikaci může souhlas rodiče potřebovat udělit uživatel, který je ověřený jako dospělý. Azure AD B2C neposkytuje prostředí k ověření věku jednotlivce a pak ověřenému dospělému neumožní 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čů:
Operace Microsoft Graph API identifikuje uživatele jako minoritního uživatele a vrátí data uživatele do aplikace ve formě nepodepsaného tokenu JSON.
Aplikace zpracuje token JSON a zobrazí obrazovku pro nezletilou, oznámí jí, že se vyžaduje souhlas rodiče, a požádá o souhlas rodiče online.
Azure AD B2C ukazuje cestu přihlášení, ke které se uživatel může normálně přihlásit, a vydá token aplikaci, která je nastavená tak, aby zahrnovala legalAgeGroupClassification = "minorWithParentalConsent". Aplikace shromáždí e-mailovou adresu rodiče a ověří, že je rodič dospělý. K tomu používá důvěryhodný zdroj, například národní/regionální identifikační kancelář, ověření licence nebo doklad o platební kartě. Pokud je ověření úspěšné, aplikace vyzve nezletilou k přihlášení pomocí toku uživatele Azure AD B2C. Pokud je souhlas odepřen (například pokud legalAgeGroupClassification = "minorWithoutParentalConsent"), vrátí Azure AD B2C do aplikace token JSON (ne přihlášení), aby se proces souhlasu restartoval. Volitelně je možné přizpůsobit tok uživatele tak, aby nezletilí nebo dospělí mohli znovu získat přístup k účtu nezletilé osoby odesláním registračního kódu na e-mailovou adresu nebo e-mailovou adresu dospělého.
Aplikace nabízí nezletilé sadě možnost souhlas odvolat.
Pokud nezletilá osoba nebo dospělá osoba odvolá souhlas, můžete použít Graph API Microsoftu ke změně souhlasuProvidedForMinor na odepření. Případně se aplikace může rozhodnout odstranit nezletilou, jejíž souhlas byl odvolán. Volitelně je možné přizpůsobit tok uživatele tak, aby ověřený nezletilý (nebo nadřazený, který používá účet nezletilé osoby) mohl odvolat souhlas. Azure AD B2C zaznamenává souhlasProvidedForMinor jako odepřený.
Další informace o legalAgeGroupClassification, consentProvidedForMinor a ageGroup najdete v tématu Typ prostředku uživatele. Další informace o vlastních atributech najdete v tématu Použití vlastních atributů ke shromažďování informací o vašich uživatelích. Pokud řešíte rozšířené atributy pomocí 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 datu narození a zemi/oblasti
Aplikace se můžou při registraci od všech uživatelů spoléhat na Azure AD B2C, aby shromáždily informace o datu narození (DOB) a zemi/oblasti od všech uživatelů. Pokud tyto informace ještě neexistují, může si je aplikace vyžádat od uživatele během další cesty ověřování (přihlášení). Uživatelé nemohou pokračovat bez zadání informací o dob a zemi/oblasti. Azure AD B2C používá informace k určení, zda je osoba považována za nezletilou podle regulačních norem dané země nebo oblasti.
Přizpůsobený tok uživatele může shromáždit dob a informace o zemi/oblasti a použít transformaci deklarací identity Azure AD B2C k určení ageGroup a zachování výsledku (nebo uchování informací o dob a zemi/oblasti přímo) v adresáři.
Následující kroky ukazují logiku, která se používá k výpočtu ageGroup z data narození uživatele:
Zkuste najít zemi nebo oblast podle kódu země/oblasti v seznamu. Pokud se země nebo oblast nenajde, vraťte se na Výchozí.
Pokud se uzel MinorConsent nachází v elementu země/oblast:
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 minor jako výpočet věkové skupiny.
Pokud se uzel MinorNoConsentRequired nachází v elementu country/region, opakujte kroky 2a a 2b s použitím hodnoty z MinorNoConsentRequired. Výstup 2b vrátí MinorNoConsentRequired , pokud je minimální datum narození před datem narození uživatele.
Pokud ani jeden z výpočtů nevrátí hodnotu true, vrátí výpočet hodnotu Dospělá osoba.
Pokud aplikace spolehlivě shromáždila data dob nebo země/oblasti jinými metodami, může pomocí Graph API aktualizovat záznam uživatele pomocí těchto informací. Například:
- Pokud je o uživateli známo, že 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
Určení věku zahrnuje dvě věkové hodnoty: věk, ve kterém už není osoba považována za nezletilou, a věk, kdy musí mít nezletilý souhlas rodiče. V následující tabulce jsou uvedena věková pravidla, která se používají k definování nezletilých a nezletilých vyžadujících souhlas.
Země/oblast | Název země nebo oblasti | Věk nezletilého souhlasu | Nezletilí věk |
---|---|---|---|
Výchozí | Žádné | Žádné | 18 |
AE | Spojené arabské emiráty | Žádné | 21 |
AT | Rakousko | 14 | 18 |
BE | Belgie | 14 | 18 |
BG | Bulharsko | 16 | 18 |
BH | Bahrajn | Žádné | 21 |
CM | Kamerun | Žádné | 21 |
CY | Kypr | 16 | 18 |
CZ | Česká republika | 16 | 18 |
DE | Německo | 16 | 18 |
DK | Dánsko | 16 | 18 |
EE | Estonsko | 16 | 18 |
EG | Egypt | Žádné | 21 |
ES | Španělsko | 13 | 18 |
FR | Francie | 16 | 18 |
GB | Spojené království | 13 | 18 |
GR | Řecko | 16 | 18 |
HR | Chorvatsko | 16 | 18 |
HU | Maďarsko | 16 | 18 |
IE | Irsko | 13 | 18 |
IT | Itálie | 16 | 18 |
KR | Korejská republika | 14 | 18 |
LT | Litva | 16 | 18 |
LU | Lucembursko | 16 | 18 |
LV | Lotyšsko | 16 | 18 |
MT | Malta | 16 | 18 |
NA | Namibie | Žádné | 21 |
NL | Nizozemsko | 16 | 18 |
PL | Polsko | 13 | 18 |
PT | Portugalsko | 16 | 18 |
RO | Rumunsko | 16 | 18 |
SE | Švédsko | 13 | 18 |
SG | Singapur | Žádné | 21 |
SI | Slovinsko | 16 | 18 |
SK | Slovensko | 16 | 18 |
TD | Čad | Žádné | 21 |
TH | Thajsko | Žádné | 20 |
TW | Tchaj-wan | Žádné | 20 |
USA | USA | 13 | 18 |
Zachytávání podmínek použití
Při vývoji aplikace obvykle zaznamenáváte souhlas uživatelů s podmínkami použití v rámci jejich aplikací bez účasti nebo pouze malé účasti z adresáře uživatelů. 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í souhlas udělen, 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 také zahrnovat "Souhlas se sdílením dat s třetími stranami". V závislosti na místních předpisech a obchodních pravidlech můžete shromáždit souhlas uživatele s oběma podmínkami dohromady nebo můžete uživateli povolit, aby přijal jednu podmínku, a ne druhou.
Následující kroky popisují, jak můžete spravovat podmínky použití:
Zaznamenejte přijetí podmínek použití a datum přijetí pomocí 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 vytvořit a používat atributy extension_termsOfUseConsentDateTime a extension_termsOfUseConsentVersion .
Vytvořte povinné zaškrtávací políčko s názvem Přijmout podmínky použití a během registrace si poznamenejte výsledek. Můžete to udělat pomocí předdefinovaných toků uživatelů i vlastních zásad.
Azure AD B2C ukládá smlouvu o podmínkách použití a souhlas uživatele. Pomocí Graph API se můžete dotazovat na stav libovolného uživatele přečtením atributu rozšíření, který se používá k zaznamenání odpovědi (například čtení termsOfUseTestUpdateDateTime). Můžete to udělat pomocí předdefinovaných toků uživatelů i vlastních zásad.
Vyžadovat přijetí aktualizovaných podmínek použití porovnáním data přijetí s datem nejnovější verze podmínek použití. Data můžete porovnat pouze pomocí vlastního toku uživatele. Použijte rozšířený atribut extension_termsOfUseConsentDateTime a porovnejte hodnotu s deklaracemi výrazu termsOfUseTextUpdateDateTime. Pokud je přijetí staré, vynuťte nové přijetí zobrazením obrazovky s vlastním potvrzením. V opačném případě zablokujte přístup pomocí logiky zásad.
Vyžadovat 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 porovnat pouze pomocí vlastního toku uživatele. Použijte rozšířený atribut extension_termsOfUseConsentDateTime a porovnejte hodnotu s deklarací identity extension_termsOfUseConsentVersion. Pokud je přijetí staré, vynuťte nové přijetí zobrazením obrazovky s vlastním potvrzením. V opačném případě zablokujte přístup pomocí logiky zásad.
Přijetí podmínek použití můžete zaznamenat v následujících scénářích:
- Zaregistruje se nový uživatel. Zobrazí se podmínky použití a uloží se výsledek přijetí.
- Přihlašuje se uživatel, který dříve přijal nejnovější nebo aktivní podmínky použití. Podmínky použití se nezobrazují.
- Přihlašuje se uživatel, který ještě nepřijal nejnovější nebo aktivní podmínky použití. Zobrazí se podmínky použití a uloží se výsledek přijetí.
- Přihlašuje se uživatel, který už přijal starší verzi podmínek použití, které se teď aktualizují na nejnovější verzi. Zobrazí se podmínky použití a uloží se výsledek přijetí.
Následující obrázek znázorňuje doporučený tok uživatele:
Následuje příklad vyjádření souhlasu s podmínkami použití v deklaraci identity na základě data.
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 prohlášení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í založenými na verzi v deklaraci identity. Pokud se extension_termsOfUseConsentVersion
deklarace identity nerovná V1
, vynuťte nové přijetí kontrolou termsOfUseConsentRequired
logické deklarace identity a zobrazením obrazovky s vlastním prohlášení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
- Povolte Age Gating v Azure AD B2C.
- Informace o tom, jak odstranit a exportovat data uživatelů, najdete v tématu Správa uživatelských dat.
- Příklad vlastní zásady, která implementuje výzvu k zadání podmínek použití, najdete v tématu Výzva Vlastní zásady B2C IEF – registrace a přihlášení pomocí podmínek použití.