Gebruikerstoegang beheren in Azure Active Directory B2C
In dit artikel wordt beschreven hoe u gebruikerstoegang tot uw toepassingen beheert met behulp van Azure Active Directory B2C (Azure AD B2C). Toegangsbeheer in uw toepassing omvat:
- Minderjarigen identificeren en gebruikerstoegang tot uw toepassing beheren.
- Ouderlijke toestemming vereisen voor minderjarigen om uw toepassingen te gebruiken.
- Het verzamelen van geboorte- en land-/regiogegevens van gebruikers.
- Een gebruiksrechtovereenkomst vastleggen en de toegang beperken.
Notitie
In Azure Active Directory B2C is een aangepast beleid voornamelijk bedoeld om complexe scenario's aan te pakken. Voor de meeste scenario's raden we u aan de ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepaste beleidsstartpakketten in Aan de slag met aangepaste beleidsregels in Active Directory B2C.
Toegang door minderjarigen beheren
Toepassingen en organisaties kunnen besluiten om te voorkomen dat minderjarigen toepassingen en services gebruiken die niet zijn gericht op deze doelgroep. Toepassingen en organisaties kunnen ook besluiten om minderjarigen te accepteren en vervolgens ouderlijke toestemming te beheren en toegestane ervaringen te leveren voor minderjarigen, zoals bepaald door bedrijfsregels en toegestaan door regelgeving.
Als een gebruiker wordt geïdentificeerd als een minderjarige, kunt u de gebruikersstroom in Azure AD B2C instellen op een van de drie opties:
Stuur een ondertekende JWT-id_token terug naar de toepassing: de gebruiker is geregistreerd in de map en er wordt een token geretourneerd naar de toepassing. De toepassing wordt vervolgens uitgevoerd door bedrijfsregels toe te passen. De toepassing kan bijvoorbeeld doorgaan met een proces voor ouderlijke toestemming. Als u deze methode wilt gebruiken, kiest u ervoor om de ageGroup- en consentProvidedForMinor-claims van de toepassing te ontvangen.
Een niet-ondertekend JSON-token naar de toepassing verzenden: Azure AD B2C meldt de toepassing dat de gebruiker een minderjarige is en geeft de status van de ouderlijke toestemming van de gebruiker. De toepassing wordt vervolgens uitgevoerd door bedrijfsregels toe te passen. Een JSON-token voltooit geen geslaagde verificatie met de toepassing. De toepassing moet de niet-geverifieerde gebruiker verwerken op basis van de claims die zijn opgenomen in het JSON-token, waaronder naam, e-mail, ageGroup en consentProvidedForMinor.
De gebruiker blokkeren: als een gebruiker een minderjarige is en ouderlijke toestemming niet is opgegeven, kan Azure AD B2C de gebruiker op de hoogte stellen dat deze is geblokkeerd. Er wordt geen token uitgegeven, de toegang wordt geblokkeerd en het gebruikersaccount wordt niet gemaakt tijdens een registratietraject. Als u deze melding wilt implementeren, geeft u een geschikte HTML-/CSS-inhoudspagina op om de gebruiker te informeren en de juiste opties te presenteren. Er is geen verdere actie nodig voor de toepassing voor nieuwe registraties.
Ouderlijke toestemming krijgen
Afhankelijk van toepassingsvoorschriften moet ouderlijke toestemming mogelijk worden verleend door een gebruiker die is geverifieerd als volwassene. Azure AD B2C biedt geen ervaring om de leeftijd van een persoon te verifiëren en vervolgens een geverifieerde volwassene toestemming te geven aan een minderjarige. Deze ervaring moet worden geleverd door de toepassing of een andere serviceprovider.
Hier volgt een voorbeeld van een gebruikersstroom voor het verzamelen van ouderlijke toestemming:
Een Microsoft Graph API-bewerking identificeert de gebruiker als een minderjarige en retourneert de gebruikersgegevens naar de toepassing in de vorm van een niet-ondertekend JSON-token.
De toepassing verwerkt het JSON-token en toont een scherm aan de minderjarige, waarin wordt gemeld dat ouderlijke toestemming is vereist en dat de toestemming van een ouder online wordt aangevraagd.
Azure AD B2C toont een aanmeldingstraject waarmee de gebruiker zich normaal kan aanmelden en een token kan opgeven voor de toepassing die is ingesteld op legalAgeGroupClassification = "minorWithParentalConsent". De toepassing verzamelt het e-mailadres van de ouder en controleert of de ouder een volwassene is. Hiervoor wordt gebruikgemaakt van een vertrouwde bron, zoals een nationaal/regionaal id-kantoor, licentieverificatie of creditcardbewijs. Als de verificatie is geslaagd, vraagt de toepassing de minderjarige zich aan te melden met behulp van de Azure AD B2C-gebruikersstroom. Als toestemming wordt geweigerd (bijvoorbeeld als legalAgeGroupClassification = "minorWithoutParentalConsent"), retourneert Azure AD B2C een JSON-token (geen aanmelding) naar de toepassing om het toestemmingsproces opnieuw te starten. Het is optioneel mogelijk om de gebruikersstroom aan te passen, zodat een minderjarige of volwassene weer toegang kan krijgen tot het account van een minderjarige door een registratiecode te verzenden naar het e-mailadres van de minderjarige of het e-mailadres van de volwassene.
De toepassing biedt een optie aan de minderjarige om toestemming in te trekken.
Wanneer de minderjarige of de volwassene toestemming intrekt, kan de Microsoft Graph API worden gebruikt om consentProvidedForMinor te wijzigen in geweigerd. De toepassing kan er ook voor kiezen om een minderjarige te verwijderen waarvan de toestemming is ingetrokken. Het is optioneel mogelijk om de gebruikersstroom aan te passen, zodat de geverifieerde minderjarige (of ouder die het account van de minderjarige gebruikt) toestemming kan intrekken. Azure AD B2C registreert consentProvidedForMinor als geweigerd.
Zie Gebruikersbrontype voor meer informatie over legalAgeGroupClassification, consentProvidedForMinor en ageGroup. Zie Aangepaste kenmerken gebruiken om informatie over uw consumenten te verzamelen voor meer informatie over aangepaste kenmerken. Wanneer u uitgebreide kenmerken adresseert met Microsoft Graph API, moet u de lange versie van het kenmerk gebruiken, zoals extension_18b70cf9bb834edd8f38521c2583cd86_dateOfBirth: 2011-01-01T00:00:00Z.
Geboortedatum en gegevens over land/regio verzamelen
Toepassingen kunnen afhankelijk zijn van Azure AD B2C om de geboortedatum (DOB) en land-/regiogegevens van alle gebruikers tijdens de registratie te verzamelen. Als deze informatie nog niet bestaat, kan de toepassing deze tijdens het volgende verificatietraject (aanmelding) aanvragen bij de gebruiker. Gebruikers kunnen niet doorgaan zonder hun DOB- en land-/regiogegevens op te geven. Azure AD B2C gebruikt de informatie om te bepalen of de persoon wordt beschouwd als een minderjarige volgens de wettelijke normen van dat land/regio.
Een aangepaste gebruikersstroom kan DOB- en land-/regiogegevens verzamelen en Azure AD B2C-claimtransformatie gebruiken om de ageGroup te bepalen en het resultaat vast te stellen (of de DOB- en land-/regiogegevens rechtstreeks vast te stellen) in de map.
In de volgende stappen ziet u de logica die wordt gebruikt om ageGroup te berekenen op de geboortedatum van de gebruiker:
Probeer het land/de regio te vinden op basis van de land-/regiocode in de lijst. Als het land/de regio niet wordt gevonden, kunt u terugvallen op Standaard.
Als het MinorConsent-knooppunt aanwezig is in het element land/regio:
a. Bereken de datum waarop de gebruiker moet zijn geboren om als volwassene te worden beschouwd. Als de huidige datum bijvoorbeeld 14 maart 2015 is en MinorConsent 18 is, mag de geboortedatum niet later zijn dan 14 maart 2000.
b. Vergelijk de minimale geboortedatum met de werkelijke geboortedatum. Als de minimale geboortedatum vóór de geboortedatum van de gebruiker valt, retourneert de berekening Minderjarig als de berekening van de leeftijdsgroep.
Als het knooppunt MinorNoConsentRequired aanwezig is in het element land/regio, herhaalt u stap 2a en 2b met behulp van de waarde van MinorNoConsentRequired. De uitvoer van 2b retourneert MinorNoConsentRequired als de minimale geboortedatum vóór de geboortedatum van de gebruiker valt.
Als geen van beide berekeningen waar retourneert, retourneert de berekening Volwassen.
Als een toepassing op betrouwbare wijze DOB- of land-/regiogegevens op andere manieren heeft verzameld, kan de toepassing de Graph API gebruiken om de gebruikersrecord bij te werken met deze informatie. Bijvoorbeeld:
- Als een gebruiker een volwassene is, werkt u het mapkenmerk ageGroup bij met de waarde Volwassene.
- Als een gebruiker een minderjarige is, werkt u het mapkenmerk ageGroup bij met de waarde Minderjarig en stelt u consentProvidedForMinor in, indien van toepassing.
Berekeningsregels minderjarigen
Leeftijdsbeperking omvat twee leeftijdswaarden: de leeftijd waarop iemand niet langer als minderjarige wordt beschouwd en de leeftijd waarop een minderjarige ouderlijke toestemming moet hebben. De volgende tabel bevat de leeftijdsregels die worden gebruikt voor het definiëren van een minderjarige en een minderjarige waarvoor toestemming is vereist.
Land/regio | Land/regio naam | Leeftijd voor toestemming minderjarige | Leeftijd minderjarige |
---|---|---|---|
Standaard | Geen | Geen | 18 |
AE | Verenigde Arabische Emiraten | Geen | 21 |
AT | Oostenrijk | 14 | 18 |
BE | België | 14 | 18 |
BG | Bulgarije | 16 | 18 |
BH | Bahrein | Geen | 21 |
CM | Kameroen | Geen | 21 |
CY | Cyprus | 16 | 18 |
CZ | Tsjechische Republiek | 16 | 18 |
DE | Duitsland | 16 | 18 |
DK | Denemarken | 16 | 18 |
EE | Estland | 16 | 18 |
EG | Egypte | Geen | 21 |
ES | Spanje | 13 | 18 |
FR | Frankrijk | 16 | 18 |
GB | Verenigd Koninkrijk | 13 | 18 |
GR | Griekenland | 16 | 18 |
HR | Kroatië | 16 | 18 |
HU | Hongarije | 16 | 18 |
IE | Ierland | 13 | 18 |
IT | Italië | 16 | 18 |
KR | Zuid-Korea | 14 | 18 |
LT | Litouwen | 16 | 18 |
LU | Luxemburg | 16 | 18 |
LV | Letland | 16 | 18 |
MT | Malta | 16 | 18 |
NA | Namibië | Geen | 21 |
NL | Nederland | 16 | 18 |
PL | Polen | 13 | 18 |
PT | Portugal | 16 | 18 |
RO | Roemenië | 16 | 18 |
SE | Zweden | 13 | 18 |
SG | Singapore | Geen | 21 |
SI | Slovenië | 16 | 18 |
SK | Slowakije | 16 | 18 |
TD | Tsjaad | Geen | 21 |
TH | Thailand | Geen | 20 |
TW | Taiwan | Geen | 20 |
VS | Verenigde Staten | 13 | 18 |
Gebruiksrechtovereenkomst vastleggen
Wanneer u uw toepassing ontwikkelt, legt u de acceptatie van gebruiksvoorwaarden in hun toepassingen gewoonlijk vast zonder of met alleen minimale deelname vanuit de gebruikersmap. Het is echter mogelijk om een Azure AD B2C-gebruikersstroom te gebruiken om de acceptatie van gebruiksvoorwaarden van een gebruiker te verzamelen, de toegang te beperken als de acceptatie niet wordt verleend en de acceptatie van toekomstige wijzigingen in de gebruiksvoorwaarden af te dwingen, op basis van de datum van de meest recente acceptatie en de datum van de meest recente versie van de gebruiksvoorwaarden.
Gebruiksvoorwaarden kunnen ook 'Toestemming voor het delen van gegevens met derden' bevatten. Afhankelijk van lokale voorschriften en bedrijfsregels kunt u de acceptatie van beide voorwaarden van een gebruiker verzamelen, of u kunt toestaan dat de gebruiker één voorwaarde accepteert en niet de andere.
In de volgende stappen wordt beschreven hoe u gebruiksvoorwaarden kunt beheren:
Noteer de acceptatie van de gebruiksvoorwaarden en de datum van acceptatie met behulp van de Graph API en uitgebreide kenmerken. U kunt dit doen met behulp van zowel ingebouwde gebruikersstromen als aangepast beleid. U wordt aangeraden de kenmerken extension_termsOfUseConsentDateTime en extension_termsOfUseConsentVersion te maken en te gebruiken.
Maak een verplicht selectievakje met het label 'Gebruiksvoorwaarden accepteren' en noteer het resultaat tijdens de registratie. U kunt dit doen met behulp van zowel ingebouwde gebruikersstromen als aangepast beleid.
Azure AD B2C slaat de gebruiksrechtovereenkomst en de acceptatie van de gebruiker op. U kunt de Graph API gebruiken om een query uit te voeren op de status van elke gebruiker door het extensiekenmerk te lezen dat wordt gebruikt om het antwoord op te nemen (bijvoorbeeld lees termsOfUseTestUpdateDateTime). U kunt dit doen met behulp van zowel ingebouwde gebruikersstromen als aangepast beleid.
Acceptatie van bijgewerkte gebruiksvoorwaarden vereisen door de datum van acceptatie te vergelijken met de datum van de meest recente versie van de gebruiksvoorwaarden. U kunt de datums alleen vergelijken met behulp van een aangepaste gebruikersstroom. Gebruik het uitgebreide kenmerk extension_termsOfUseConsentDateTime en vergelijk de waarde met de claim van termsOfUseTextUpdateDateTime. Als de acceptatie oud is, dwingt u een nieuwe acceptatie af door een zelf bevestigd scherm weer te geven. Anders blokkeert u de toegang met behulp van beleidslogica.
Acceptatie van bijgewerkte gebruiksvoorwaarden vereisen door het versienummer van de acceptatie te vergelijken met het meest recente geaccepteerde versienummer. U kunt versienummers alleen vergelijken met behulp van een aangepaste gebruikersstroom. Gebruik het uitgebreide kenmerk extension_termsOfUseConsentDateTime en vergelijk de waarde met de claim van extension_termsOfUseConsentVersion. Als de acceptatie oud is, dwingt u een nieuwe acceptatie af door een zelf bevestigd scherm weer te geven. Anders blokkeert u de toegang met behulp van beleidslogica.
U kunt de acceptatie van gebruiksvoorwaarden vastleggen in de volgende scenario's:
- Er wordt een nieuwe gebruiker geregistreerd. De gebruiksvoorwaarden worden weergegeven en het acceptatieresultaat wordt opgeslagen.
- Een gebruiker meldt zich aan die eerder de meest recente of actieve gebruiksvoorwaarden heeft geaccepteerd. De gebruiksvoorwaarden worden niet weergegeven.
- Een gebruiker meldt zich aan die de meest recente of actieve gebruiksvoorwaarden nog niet heeft geaccepteerd. De gebruiksvoorwaarden worden weergegeven en het acceptatieresultaat wordt opgeslagen.
- Een gebruiker meldt zich aan die al een oudere versie van de gebruiksvoorwaarden heeft geaccepteerd, die nu worden bijgewerkt naar de nieuwste versie. De gebruiksvoorwaarden worden weergegeven en het acceptatieresultaat wordt opgeslagen.
De volgende afbeelding toont de aanbevolen gebruikersstroom:
Hier volgt een voorbeeld van een op datum gebaseerde gebruiksrechtovereenkomst in een claim. Als de extension_termsOfUseConsentDateTime
claim ouder is dan 2025-01-15T00:00:00
, dwingt u een nieuwe acceptatie af door de termsOfUseConsentRequired
Booleaanse claim te controleren en een zelf bevestigd scherm weer te geven.
<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>
Hier volgt een voorbeeld van een op versie gebaseerde gebruiksrechtovereenkomst in een claim. Als de extension_termsOfUseConsentVersion
claim niet gelijk is aan V1
, dwingt u een nieuwe acceptatie af door de termsOfUseConsentRequired
Booleaanse claim te controleren en een zelf bevestigd scherm weer te geven.
<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>
Volgende stappen
- Leeftijdsbeperking inschakelen in Azure AD B2C.
- Zie Gebruikersgegevens beheren voor meer informatie over het verwijderen en exporteren van gebruikersgegevens.
- Zie A B2C IEF Aangepast beleid - Registreren en aanmelden met de prompt 'Gebruiksvoorwaarden' voor een voorbeeld van een aangepast beleid dat een prompt voor gebruiksvoorwaarden implementeert.