Freigeben über


Verwalten des Benutzerzugriffs in Azure Active Directory B2C

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

In diesem Artikel wird erläutert, wie Sie den Benutzerzugriff auf Ihre Anwendungen mithilfe von Azure Active Directory B2C (Azure AD B2C) verwalten. Die Zugriffsverwaltung in Ihrer Anwendung umfasst:

  • Identifizieren von Minderjährigen und Kontrolle des Benutzerzugriffs auf Ihre Anwendung.
  • Die Nutzung Ihrer Anwendungen durch Minderjährige erfordert elterliche Zustimmung.
  • Sammeln von Geburts- und Land-/Regionsdaten von Benutzern.
  • Einholen der Zustimmung zu den Nutzungsbedingungen und Durchführen der Alterskontrolle

Hinweis

In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.

Steuerung des Zugriffs von Minderjährigen

Anwendungen und Organisationen können verhindern, dass Minderjährige Anwendungen und Dienste verwenden, die nicht für diese Zielgruppe bestimmt sind. Alternativ können Anwendungen und Organisationen entscheiden, Minderjährige zu akzeptieren und anschließend die elterliche Zustimmung zu verwalten und zulässige Erfahrungen für Minderjährige zu liefern, wie sie von Geschäftsregeln vorgegeben und durch Verordnung zugelassen werden.

Wenn ein Benutzer als Minderjähriger identifiziert wird, können Sie den Benutzerfluss in Azure AD B2C auf eine von drei Optionen festlegen.

  • Senden Sie ein signiertes JWT-id_token zurück an die Anwendung: Der Benutzer ist im Verzeichnis registriert, und ein Token wird an die Anwendung zurückgegeben. Die Anwendung wird dann durch Anwenden von Geschäftsregeln fortgesetzt. Die Anwendung kann beispielsweise mit einem Prozess der Einwilligung der Eltern fortfahren. Zur Verwendung dieser Methode geben Sie an, dass Sie die Ansprüche ageGroup und consentProvidedForMinor von der Anwendung erhalten möchten.

  • Senden Sie ein nicht signiertes JSON-Token an die Anwendung: Azure AD B2C benachrichtigt die Anwendung, dass der Benutzer minderjährige ist und den Status der elterlichen Zustimmung des Benutzers bereitstellt. Die Anwendung wird dann durch Anwenden von Geschäftsregeln fortgesetzt. Ein JSON-Token schließt keine erfolgreiche Authentifizierung mit der Anwendung ab. Die Anwendung muss den nicht authentifizierten Benutzer gemäß den Im JSON-Token enthaltenen Ansprüchen verarbeiten, die Name, E-Mail, ageGroup und consentProvidedForMinor enthalten können.

  • Blockieren Sie den Benutzer: Wenn ein Benutzer ein Minderjähriger ist und die elterliche Zustimmung nicht bereitgestellt wurde, kann Azure AD B2C den Benutzer darüber informieren, dass er blockiert ist. Es wird kein Token ausgegeben, der Zugriff wird blockiert, und das Benutzerkonto wird während einer Registrierungsreise nicht erstellt. Um diese Benachrichtigung zu implementieren, stellen Sie eine geeignete HTML/CSS-Inhaltsseite bereit, um den Benutzer zu informieren und entsprechende Optionen zu präsentieren. Für den Antrag auf Neuanmeldung ist keine weitere Maßnahme erforderlich.

Je nach Anwendungsverordnung muss die elterliche Zustimmung möglicherweise von einem Benutzer erteilt werden, der als Erwachsener überprüft wird. Azure AD B2C bietet keine Funktion, um das Alter einer Person zu überprüfen und anschließend einem verifizierten Erwachsenen zu gestatten, die Zustimmung zu elterlichen Handlungen für einen Minderjährigen zu erteilen. Diese Erfahrung muss von der Anwendung oder einem anderen Dienstanbieter bereitgestellt werden.

Im Folgenden sehen Sie ein Beispiel für einen Benutzerablauf zum Sammeln der elterlichen Zustimmung:

  1. Ein Vorgang der Microsoft Graph API identifiziert den Benutzer als minderjährig und gibt die Benutzerdaten in Form eines unsignierten JSON-Tokens an die Anwendung zurück.

  2. Die Anwendung verarbeitet das JSON-Token und zeigt dem Minderjährigen einen Bildschirm an, benachrichtigt sie darüber, dass die elterliche Zustimmung erforderlich ist und die Zustimmung eines Elternteils online anfordert.

  3. In Azure AD B2C wird ein Anmeldeprozess angezeigt, über den sich Benutzende auf normale Weise anmelden können, und es wird ein Token für die Anwendung ausgegeben, das legalAgeGroupClassification = "minorWithParentalConsent" enthält. Die Anwendung sammelt die E-Mail-Adresse des Elternteils und überprüft, ob das Elternteil ein Erwachsener ist. Dazu verwendet sie eine vertrauenswürdige Quelle, z. B. ein nationales/regionales ID-Büro, eine Lizenzüberprüfung oder einen Kreditkartennachweis. Wenn die Überprüfung erfolgreich ist, fordert die Anwendung den Minderjährigen auf, sich über den Azure AD B2C-Benutzerfluss anzumelden. Wenn die Zustimmung verweigert wird (z. B. wenn legalAgeGroupClassification = "minorWithoutParentalConsent"), gibt Azure AD B2C ein JSON-Token (keine Anmeldung) an die Anwendung zurück, um den Zustimmungsprozess neu zu starten. Optional ist es möglich, den Benutzerfluss anzupassen, damit ein Minderjähriger oder erwachsener Benutzer wieder auf das Konto eines Minderjährigen zugreifen kann, indem er einen Registrierungscode an die E-Mail-Adresse des Minderjährigen oder die E-Mail-Adresse des Erwachsenen auf dem Datensatz sendet.

  4. Die Anwendung bietet dem Minderjährigen die Möglichkeit, die Zustimmung zu widerrufen.

  5. Wenn entweder der Minderjährige oder der Erwachsene die Zustimmung widerruft, kann die Microsoft Graph-API verwendet werden, um consentProvidedForMinor auf abgelehnt zu ändern. Alternativ kann sich die Anwendung entscheiden, einen Minderjährigen zu löschen, dessen Zustimmung widerrufen wurde. Optional ist es möglich, den Benutzerablauf anzupassen, damit die authentifizierte Minderjährige (oder das Elternteil, das das Konto des Minderjährigen verwendet) die Zustimmung widerrufen kann. Azure AD B2C zeichnet consentProvidedForMinor als verweigert auf.

Weitere Informationen zu legalAgeGroupClassification, consentProvidedForMinor und ageGroup finden Sie unter Benutzerressourcentyp. Weitere Informationen zu benutzerdefinierten Attributen finden Sie unter Verwenden von benutzerdefinierten Attributen zum Sammeln von Informationen zu Ihren Verbrauchern. Wenn Sie erweiterte Attribute mithilfe der Microsoft Graph-API adressieren, müssen Sie die lange Version des Attributs verwenden, z. B. extension_18b70cf9bb834edd8f38521c2583cd86_dateOfBirth: 2011-01-01T00:00:00Z.

Erfassen des Geburtsdatums und der Länder-/Regionsdaten

Anwendungen können sich auf Azure AD B2C verlassen, um das Geburtsdatum (DOB) und Länder-/Regionsinformationen aller Benutzer während der Registrierung zu erfassen. Wenn diese Informationen noch nicht vorhanden sind, kann sie von der Anwendung während der nächsten Authentifizierungsreise (Anmeldung) vom Benutzer angefordert werden. Benutzer können nicht fortfahren, ohne ihre DOB- und Länder-/Regionsinformationen bereitzustellen. Azure AD B2C verwendet die Informationen, um zu bestimmen, ob die Person gemäß den gesetzlichen Standards dieses Landes/dieser Region als geringfügig eingestuft wird.

Ein benutzerdefinierter Benutzerflow ermöglicht das Erfassen von Geburtsdatum und Informationen zu Land/Region und kann mit der Azure AD B2C-Anforderungstransformation ageGroup bestimmen und das Ergebnis im Verzeichnis speichern (oder Geburtsdatum und Informationen zu Land/Region direkt speichern).

Die folgenden Schritte zeigen die Logik, die zum Berechnen von ageGroup aus dem Geburtsdatum des Benutzers verwendet wird:

  1. Versuchen Sie, das Land/die Region anhand des Landes-/Regionscodes in der Liste zu finden. Wenn das Land/die Region nicht gefunden wird, greifen Sie auf "Standard" zurück.

  2. Wenn der MinorConsent-Knoten im Element "Land/Region" vorhanden ist:

    a) Berechnen Sie das Datum, an dem der Benutzer geboren worden sein muss, um als Erwachsener betrachtet zu werden. Wenn das aktuelle Datum beispielsweise der 14. März 2015 ist und MinorConsent 18 ist, darf das Geburtsdatum spätestens am 14. März 2000 sein.

    b. Vergleichen Sie das Mindestgeburtsdatum mit dem tatsächlichen Geburtsdatum. Wenn das Mindestgeburtsdatum vor dem Geburtsdatum des Benutzers liegt, gibt die Berechnung Minderjähriger als Ergebnis der Altersgruppeneinteilung zurück.

  3. Wenn der MinorNoConsentRequired-Knoten im Element "Land/Region" vorhanden ist, wiederholen Sie die Schritte 2a und 2b mithilfe des Werts von MinorNoConsentRequired. Die Ausgabe von 2b gibt MinorNoConsentRequired zurück, wenn das Mindestgeburtsdatum vor dem Geburtsdatum des Benutzers liegt.

  4. Wenn für keine Berechnung „true“ zurückgegeben wurde, wird für die Berechnung Adult zurückgegeben.

Wenn eine Anwendung DOB- oder Länder-/Regionsdaten von anderen Methoden zuverlässig gesammelt hat, kann die Anwendung die Graph-API verwenden, um den Benutzerdatensatz mit diesen Informationen zu aktualisieren. Beispiel:

  • Wenn ein Benutzer als Erwachsener bekannt ist, aktualisieren Sie die Directory-Attribut-AgeGroup mit dem Wert "Adult".
  • Wenn ein Benutzer als Minderjähriger bekannt ist, aktualisieren Sie das Directory-Attribut ageGroup mit dem Wert Minor und legen Sie EinwilligungFürMinderjährige entsprechend fest.

Kleinere Berechnungsregeln

Die Altersbeschränkung umfasst zwei Alterswerte: das Alter, in dem eine Person nicht mehr als minderjährig angesehen wird, und das Alter, in dem eine minderjährige Person die Zustimmung durch die Erziehungsberechtigten benötigt. In der folgenden Tabelle sind die Altersregeln aufgeführt, die zur Definition eines Minderjährigen und eines Minderjährigen, der Zustimmung erfordert, verwendet werden.

Land/Region Name des Landes / der Region Minderjähriges Zustimmungsalter Minderjähriges Alter
Standard Nichts Nichts 18
AE Vereinigte Arabische Emirate Nichts 21
AN Österreich 14 18
SEIN Belgien 14 18
BG Bulgarien 16 18
Bahrain Bahrain Nichts 21
ZENTIMETER Kamerun Nichts 21
CY Zypern 16 18
CZ Tschechische Republik 16 18
Deutschland Deutschland 16 18
DK Dänemark 16 18
EE Estland 16 18
ZB Ägypten Nichts 21
ES Spanien 13 18
FR Frankreich 16 18
Großbritannien Vereinigtes Königreich 13 18
GR Griechenland 16 18
Personalwesen Kroatien 16 18
HU Ungarn 16 18
Internet Explorer Irland 13 18
ES Italien 16 18
KR Republik Korea 14 18
LT Litauen 16 18
LU Luxemburg 16 18
LV Lettland 16 18
MT Malta 16 18
NA Namibia Nichts 21
Niederlande Niederlande 16 18
PL Polen 13 18
Teilzeit Portugal 16 18
RO Rumänien 16 18
SE Schweden 13 18
SG Singapur Nichts 21
Internationales Einheitensystem Slowenien 16 18
SK Slowakei 16 18
TD Tschad Nichts 21
HEIT Thailand Nichts 20
TW Taiwan Nichts 20
USA USA 13 18

Nutzungsvereinbarungsbedingungen erfassen

Wenn Sie Ihre Anwendung entwickeln, erfassen Sie üblicherweise die Zustimmung der Benutzer zu den Nutzungsbedingungen direkt in ihren Anwendungen, ohne oder mit nur geringfügiger Beteiligung des Benutzerverzeichnisses. Es ist jedoch möglich, einen Azure AD B2C-Benutzerfluss zu verwenden, um die Annahme der Nutzungsbedingungen eines Benutzers zu sammeln, den Zugriff einzuschränken, wenn die Annahme nicht gewährt wird, und die Annahme zukünftiger Änderungen an den Nutzungsbedingungen zu erzwingen, basierend auf dem Datum der neuesten Annahme und dem Datum der neuesten Version der Nutzungsbedingungen.

Nutzungsbedingungen können auch "Einwilligung zur Weitergabe von Daten an Dritte" enthalten. Je nach lokalen Vorschriften und Geschäftsregeln können Sie die Annahme beider Bedingungen eines Benutzers erfassen oder dem Benutzer erlauben, eine Bedingung und nicht die andere zu akzeptieren.

In den folgenden Schritten wird beschrieben, wie Sie Nutzungsbedingungen verwalten können:

  1. Notieren Sie die Annahme der Nutzungsbedingungen und das Annahmedatum mithilfe der Graph-API und erweiterter Attribute. Dazu können Sie sowohl integrierte Benutzerflüsse als auch benutzerdefinierte Richtlinien verwenden. Es wird empfohlen, die Attribute extension_termsOfUseConsentDateTime und extension_termsOfUseConsentVersion zu erstellen und zu verwenden.

  2. Erstellen Sie ein erforderliches Kontrollkästchen mit der Bezeichnung "Nutzungsbedingungen akzeptieren", und notieren Sie das Ergebnis während der Registrierung. Dazu können Sie sowohl integrierte Benutzerflüsse als auch benutzerdefinierte Richtlinien verwenden.

  3. Azure AD B2C speichert die Nutzungsbedingungen und die Annahme des Benutzers. Sie können die Graph-API verwenden, um den Status eines beliebigen Benutzers abzufragen, indem Sie das Erweiterungsattribut lesen, das zum Aufzeichnen der Antwort verwendet wird (z. B. "termsOfUseTestUpdateDateTime"). Dazu können Sie sowohl integrierte Benutzerflüsse als auch benutzerdefinierte Richtlinien verwenden.

  4. Verlangen Sie die Annahme aktualisierter Nutzungsbedingungen, indem Sie das Datum der Annahme mit dem Datum der neuesten Version der Nutzungsbedingungen vergleichen. Sie können die Datumsangaben nur mithilfe eines benutzerdefinierten Benutzerflusses vergleichen. Verwenden Sie das erweiterte Attribut extension_termsOfUseConsentDateTime, und vergleichen Sie den Wert mit dem Anspruch von termsOfUseTextUpdateDateTime. Erzwingen Sie eine neue Zustimmung durch Anzeigen eines Bildschirms zur Identitätsbestätigung, wenn die Zustimmung veraltet ist. Andernfalls blockieren Sie den Zugriff mithilfe der Richtlinienlogik.

  5. Fordern Sie die Annahme aktualisierter Nutzungsbedingungen an, indem Sie die Versionsnummer der Annahme mit der neuesten akzeptierten Versionsnummer vergleichen. Sie können Versionsnummern nur mithilfe eines benutzerdefinierten Benutzerflusses vergleichen. Verwenden Sie das erweiterte Attribut extension_termsOfUseConsentDateTime, und vergleichen Sie den Wert mit dem Anspruch von extension_termsOfUseConsentVersion. Erzwingen Sie eine neue Zustimmung durch Anzeigen eines Bildschirms zur Identitätsbestätigung, wenn die Zustimmung veraltet ist. Andernfalls blockieren Sie den Zugriff mithilfe der Richtlinienlogik.

Sie können die Akzeptanz der Nutzungsbedingungen unter den folgenden Bedingungen erfassen:

  • Ein neuer Benutzer wird angemeldet. Die Nutzungsbedingungen werden angezeigt, und das Annahmeergebnis wird gespeichert.
  • Ein Nutzer meldet sich an, der zuvor die neuesten oder aktiven Nutzungsbedingungen akzeptiert hat. Die Nutzungsbedingungen werden nicht angezeigt.
  • Ein Benutzer meldet sich an, der die neuesten oder aktiven Nutzungsbedingungen noch nicht akzeptiert hat. Die Nutzungsbedingungen werden angezeigt, und das Annahmeergebnis wird gespeichert.
  • Ein Benutzer anmeldet sich, wer bereits eine ältere Version der Nutzungsbedingungen akzeptiert hat, die jetzt auf die neueste Version aktualisiert werden. Die Nutzungsbedingungen werden angezeigt, und das Annahmeergebnis wird gespeichert.

Die folgende Abbildung zeigt den empfohlenen Benutzerfluss:

Flussdiagramm mit dem empfohlenen Akzeptanzbenutzerfluss

Nachfolgend sehen Sie ein Beispiel für eine datumsbasierte Nutzungsbedingung im Rahmen eines Anspruchs. Wenn der extension_termsOfUseConsentDateTime Anspruch älter als 2025-01-15T00:00:00ist, erzwingen Sie eine neue Annahme, indem Sie den termsOfUseConsentRequired booleschen Anspruch überprüfen und einen selbst bestätigten Bildschirm anzeigen.

<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 ist ein Beispiel für die Zustimmung zu versionsbasierten Nutzungsbedingungen in einem Anspruch. Wenn der extension_termsOfUseConsentVersion Anspruch nicht gleich V1 ist, erzwingen Sie eine neue Annahme, indem Sie den termsOfUseConsentRequired booleschen Anspruch überprüfen und einen Bildschirm zur Selbstbestätigung anzeigen.

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

Nächste Schritte