Optionale Anspruchsreferenz
Sie können optionale Ansprüche verwenden, um:
- Wählen Sie Ansprüche aus, die in Token für Ihre Anwendung eingeschlossen werden sollen.
- Ändern Sie das Verhalten bestimmter Ansprüche, die die Microsoft Identity Platform in Token zurückgibt.
- Fügen Sie benutzerdefinierte Ansprüche für Ihre Anwendung hinzu und greifen Sie auf sie zu.
Optionale Ansprüche werden zwar sowohl im v1.0- als auch in v2.0-Formattoken und SAML-Token unterstützt, stellen aber den größten Teil ihres Werts bereit, wenn sie von v1.0 auf v2.0 wechseln. In der Microsoft Identity Platform werden kleinere Tokengrößen verwendet, um eine optimale Leistung durch Clients sicherzustellen. Daher sind mehrere Ansprüche, die früher in den Zugriffs- und ID-Token enthalten sind, nicht mehr in v2.0-Token vorhanden und müssen speziell auf Anwendungsbasis angefordert werden.
Kontoart | v1.0-Token | v2.0-Token |
---|---|---|
Persönliches Microsoft-Konto | N/A | Abgestützt |
Microsoft Entra-Konto | Abgestützt | Abgestützt |
optionale Anspruchssätze v1.0 und v2.0
Der Satz optionaler Ansprüche, die standardmäßig für zu verwendende Anwendungen verfügbar sind, wird in der folgenden Tabelle aufgeführt. Sie können benutzerdefinierte Daten in Erweiterungsattributen und Verzeichniserweiterungen verwenden, um optionale Ansprüche für Ihre Anwendung hinzuzufügen. Wenn Sie dem Zugriffstoken Ansprüche hinzufügen, gelten die Ansprüche für Zugriffstoken, die
Anmerkung
Die meisten dieser Ansprüche können in JWTs für v1.0- und v2.0-Token enthalten sein, jedoch keine SAML-Token, mit Ausnahme der Angabe in der Spalte "Tokentyp". Verbraucherkonten unterstützen eine Teilmenge dieser Ansprüche, die in der Spalte "Benutzertyp" gekennzeichnet sind. Viele der aufgeführten Ansprüche gelten nicht für Verbraucherbenutzer (sie haben keinen Mandanten, daher hat tenant_ctry
keinen Wert).
In der folgenden Tabelle sind die optionalen Anspruchssätze v1.0 und v2.0 aufgeführt.
Name | Beschreibung | Tokentyp | Benutzertyp | Notizen |
---|---|---|---|---|
acct |
Benutzerkontostatus im Mandanten | JWT, SAML | Wenn der Benutzer Mitglied des Mandanten ist, wird der Wert 0 . Wenn sie ein Gast sind, ist der Wert 1 . |
|
acrs |
Authentifizierungskontext-IDs | JWT | Microsoft Entra-ID | Gibt die Authentifizierungskontext-IDs der Vorgänge an, die der Bearer ausführen kann. Authentifizierungskontext-IDs können verwendet werden, um eine Anforderung für eine schrittweise Authentifizierung innerhalb Ihrer Anwendung und Dienste auszulösen. Wird häufig zusammen mit dem xms_cc Anspruch verwendet. |
auth_time |
Zeitpunkt, zu dem sich der Benutzer zuletzt authentifiziert hat. | JWT | ||
ctry |
Land/Region des Benutzers | JWT | Dieser Anspruch wird zurückgegeben, wenn er vorhanden ist und der Wert des Felds ein Standardcode mit zwei Buchstaben ist, z. B. FR, JP, SZ usw. | |
email |
Die gemeldete E-Mail-Adresse für diesen Benutzer | JWT, SAML | MSA, Microsoft Entra ID | Dieser Wert ist standardmäßig enthalten, wenn der Benutzer ein Gast im Mandanten ist. Für verwaltete Benutzer (die Benutzer innerhalb des Mandanten) muss sie über diesen optionalen Anspruch angefordert werden oder nur auf v2.0 mit dem OpenID-Bereich. Dieser Wert ist nicht garantiert korrekt und kann im Laufe der Zeit stummgeschaltet werden . Verwenden Sie ihn niemals zur Autorisierung oder zum Speichern von Daten für einen Benutzer. Weitere Informationen finden Sie unter Überprüfen, ob der Benutzer über die Berechtigung für den Zugriff auf diese Datenverfügt. Wenn Sie den E-Mail-Anspruch für die Autorisierung verwenden, empfehlen wir, eine Migration durchzuführen, um zu einem sichereren Anspruchzu wechseln. Wenn Sie eine adressierbare E-Mail-Adresse in Ihrer App benötigen, fordern Sie diese Daten direkt vom Benutzer an, indem Sie diesen Anspruch als Vorschlag verwenden oder Ihre UX vorab ausfüllen. |
fwd |
IP-Adresse | JWT | Fügt die ursprüngliche Adresse des anfordernden Clients hinzu (in einem VNET). | |
groups |
Optionale Formatierung für Gruppenansprüche | JWT, SAML | Der groups Anspruch wird mit der Einstellung "GroupMembershipClaims" im Anwendungsmanifestverwendet, das ebenfalls festgelegt werden muss. |
|
idtyp |
Tokentyp | JWT-Zugriffstoken | Spezial: nur in Nur-App-Zugriffstoken | Der Wert wird app , wenn es sich bei dem Token um ein nur-App-Token handelt. Dieser Anspruch ist die genaueste Methode für eine API, um festzustellen, ob es sich bei einem Token um ein App-Token oder um ein App+Benutzertoken handelt. |
login_hint |
Anmeldehinweis | JWT | MSA, Microsoft Entra ID | Ein undurchsichtiger, zuverlässiger Anmeldehinweisanspruch, der base64-codiert ist. Ändern Sie diesen Wert nicht. Dieser Anspruch ist der beste Wert, der für den login_hint OAuth-Parameter in allen Flüssen zum Abrufen von SSO verwendet werden soll. Es kann zwischen Anwendungen übergeben werden, um sie im Hintergrund zu unterstützen – Anwendung A kann sich bei einem Benutzer anmelden, den login_hint Anspruch lesen und dann den Anspruch und den aktuellen Mandantenkontext an Anwendung B in der Abfragezeichenfolge oder im Fragment senden, wenn der Benutzer einen Link auswählt, der sie zur Anwendung B führt. Um Racebedingungen und Zuverlässigkeitsprobleme zu vermeiden, enthält der login_hint Anspruch, den aktuellen Mandanten für den Benutzer nicht und standardmäßig den Heimmandanten des Benutzers bei Verwendung enthält. In einem Gastszenario, in dem der Benutzer von einem anderen Mandanten stammt, muss eine Mandanten-ID in der Anmeldeanforderung bereitgestellt werden. und übergeben Sie dasselbe an Apps, mit der Sie zusammenarbeiten. Dieser Anspruch ist für die Verwendung mit der vorhandenen login_hint -Funktionalität Ihres SDK vorgesehen, die jedoch verfügbar gemacht wird. |
tenant_ctry |
Land/Region des Ressourcenmandanten | JWT | Identisch mit ctry , außer auf Mandantenebene durch einen Administrator festgelegt. Muss auch ein standardwert mit zwei Buchstaben sein. |
|
tenant_region_scope |
Region des Ressourcenmandanten | JWT | ||
upn |
UserPrincipalName | JWT, SAML | Ein Bezeichner für den Benutzer, der mit dem parameter username_hint verwendet werden kann. Kein dauerhafter Bezeichner für den Benutzer und sollte nicht zur Autorisierung oder zur eindeutigen Identität von Benutzerinformationen verwendet werden (z. B. als Datenbankschlüssel). Verwenden Sie stattdessen die Benutzerobjekt-ID (oid ) als Datenbankschlüssel. Weitere Informationen finden Sie unter Sichere Anwendungen und APIs durch Validieren von Ansprüchen. Benutzer, die sich mit einer alternativen Anmelde-ID anmelden sollten ihren Benutzerprinzipalnamen (User Principal Name, UPN) nicht anzeigen. Verwenden Sie stattdessen die folgenden ID-Tokenansprüche zum Anzeigen des Anmeldestatus für den Benutzer: preferred_username oder unique_name für v1-Token und preferred_username für v2-Token. Obwohl dieser Anspruch automatisch enthalten ist, können Sie ihn als optionalen Anspruch angeben, um andere Eigenschaften anzufügen, um sein Verhalten im Gastbenutzerfall zu ändern. Sie sollten den login_hint Anspruch für login_hint Verwendung verwenden – lesbare Bezeichner wie UPN sind unzuverlässig. |
|
verified_primary_email |
Stammen aus der PrimaryAuthoritativeEmail des Benutzers | JWT | ||
verified_secondary_email |
Stammen aus der SecondaryAuthoritativeEmail des Benutzers | JWT | ||
vnet |
VNET-Spezifikationsinformationen. | JWT | ||
xms_cc |
Clientfunktionen | JWT | Microsoft Entra-ID | Gibt an, ob die Clientanwendung, die das Token erworben hat, Anspruchsaufforderungen verarbeiten kann. Es wird häufig zusammen mit Anspruch acrs verwendet. Dieser Anspruch wird häufig in Szenarien für den bedingten Zugriff und die Auswertung des kontinuierlichen Zugriffs verwendet. Der Ressourcenserver oder die Dienstanwendung, für die das Token ausgegeben wird, steuert das Vorhandensein dieses Anspruchs in einem Token. Ein Wert von cp1 im Zugriffstoken ist die autoritative Methode, um zu ermitteln, dass eine Clientanwendung in der Lage ist, eine Forderungsaufforderung zu verarbeiten. Weitere Informationen finden Sie unter Anspruchsanforderungen, Anspruchsanforderungen und Clientfunktionen. |
xms_edov |
Boolescher Wert, der angibt, ob der E-Mail-Domänenbesitzer des Benutzers überprüft wurde. | JWT | Eine E-Mail wird als Domäne überprüft, wenn sie zum Mandanten gehört, in dem sich das Benutzerkonto befindet, und der Mandantenadministrator hat die Überprüfung der Domäne durchgeführt. Außerdem muss die E-Mail aus einem Microsoft-Konto (MSA), einem Google-Konto oder zur Authentifizierung mithilfe des OTP-Flusses (One-Time Passcode) verwendet werden. Facebook- und SAML/WS-Fed-Konten keine überprüften Domänen haben. Damit dieser Anspruch im Token zurückgegeben wird, ist das Vorhandensein des email Anspruchs erforderlich. |
|
xms_pdl |
Bevorzugter Datenspeicherort | JWT | Bei Multi-Geo-Mandanten ist der bevorzugte Datenspeicherort der aus drei Buchstaben bestehende Code, der die geografische Region anzeigt, in der sich der Benutzer befindet. Weitere Informationen finden Sie in der Microsoft Entra Connect-Dokumentation zu bevorzugten Datenspeicherorten. | |
xms_pl |
Bevorzugte Sprache des Benutzers | JWT | Die bevorzugte Sprache des Benutzers, falls festgelegt. Stammen aus ihrem Heimmandanten, in Gastzugriffsszenarien. Formatierte LL-CC ("en-us"). | |
xms_tpl |
Bevorzugte Sprache des Mandanten | JWT | Die bevorzugte Sprache des Ressourcenmandanten, falls festgelegt. Formatierte LL ("en"). | |
ztdid |
Zero-Touch-Bereitstellungs-ID | JWT | Die für Windows AutoPilot verwendete Geräteidentität. |
Warnung
Verwenden Sie niemals email
oder upn
Anspruchswerte, um zu speichern oder zu bestimmen, ob der Benutzer in einem Zugriffstoken Zugriff auf Daten haben soll. Mutierbare Anspruchswerte wie diese können sich im Laufe der Zeit ändern, wodurch sie unsicher und unzuverlässig für die Autorisierung sind.
v2.0-spezifische optionale Anspruchssätze
Diese Ansprüche sind immer in v1.0-Token enthalten, jedoch nicht in v2.0-Token enthalten, es sei denn, sie werden angefordert. Diese Ansprüche gelten nur für JWTs (ID-Token und Zugriffstoken).
JWT-Anspruch | Name | Beschreibung | Notizen |
---|---|---|---|
ipaddr |
IP-Adresse | Die IP-Adresse, von der der Client angemeldet ist. | |
onprem_sid |
Lokale Sicherheits-ID | ||
pwd_exp |
Kennwortablaufzeit | Die Anzahl der Sekunden nach dem Zeitpunkt im iat Anspruch, zu dem das Kennwort abläuft. Dieser Anspruch ist nur enthalten, wenn das Kennwort bald abläuft (gemäß der Definition von "Benachrichtigungstagen" in der Kennwortrichtlinie). |
|
pwd_url |
Kennwort-URL ändern | Eine URL, die der Benutzer besuchen kann, um sein Kennwort zu ändern. Dieser Anspruch ist nur enthalten, wenn das Kennwort bald abläuft (gemäß der Definition von "Benachrichtigungstagen" in der Kennwortrichtlinie). | |
in_corp |
Innerhalb des Unternehmensnetzwerks | Signalisiert, ob sich der Client aus dem Unternehmensnetzwerk anmeldet. Wenn sie nicht vorhanden sind, ist der Anspruch nicht enthalten. | Basierend auf den vertrauenswürdigen IPs Einstellungen in MFA. |
family_name |
Nachname | Stellt den Nachnamen, den Nachnamen oder den Familiennamen des Benutzers bereit, wie im Benutzerobjekt definiert. Beispiel: "family_name":"Miller" . |
Unterstützt in MSA und Microsoft Entra ID. Erfordert den profile Bereich. |
given_name |
Vorname | Stellt den ersten oder "angegebenen" Namen des Benutzers bereit, wie für das Benutzerobjekt festgelegt. Beispiel: "given_name": "Frank" . |
Unterstützt in MSA und Microsoft Entra ID. Erfordert den profile Bereich. |
upn |
Benutzerprinzipalname | Ein Bezeichner für den Benutzer, der mit dem parameter username_hint verwendet werden kann. Kein dauerhafter Bezeichner für den Benutzer und sollte nicht zur Autorisierung oder zur eindeutigen Identität von Benutzerinformationen verwendet werden (z. B. als Datenbankschlüssel). Weitere Informationen finden Sie unter Sichere Anwendungen und APIs durch Validieren von Ansprüchen. Verwenden Sie stattdessen die Benutzerobjekt-ID (oid ) als Datenbankschlüssel. Benutzer, die sich mit einer alternativen Anmelde-ID anmelden sollten ihren Benutzerprinzipalnamen (User Principal Name, UPN) nicht anzeigen. Verwenden Sie stattdessen den folgenden preferred_username Anspruch zum Anzeigen des Anmeldestatus für den Benutzer. |
Erfordert den profile Bereich. |
v1.0-spezifische optionale Anspruchssätze
Einige der Verbesserungen des v2-Tokenformats sind für Apps verfügbar, die das v1-Tokenformat verwenden, da sie die Sicherheit und Zuverlässigkeit verbessern. Diese Verbesserungen gelten nur für JWTs, nicht FÜR SAML-Token.
JWT-Anspruch | Name | Beschreibung | Notizen |
---|---|---|---|
aud |
Publikum | Immer in JWTs vorhanden, aber in v1-Zugriffstoken kann es auf verschiedene Weise ausgegeben werden – jeder appID-URI, mit oder ohne einen nachgestellten Schrägstrich und die Client-ID der Ressource. Diese Randomisierung kann beim Ausführen der Tokenüberprüfung schwer zu codieren sein. Verwenden Sie additionalProperties für diesen Anspruch, um sicherzustellen, dass sie immer auf die Client-ID der Ressource in v1-Zugriffstoken festgelegt ist. |
Nur JWT-Zugriffstoken |
preferred_username |
Bevorzugter Benutzername | Stellt den bevorzugten Benutzernamenanspruch innerhalb von v1-Token bereit. Dieser Anspruch erleichtert Apps das Bereitstellen von Benutzernamenhinweisen und das Anzeigen von lesbaren Anzeigenamen, unabhängig vom Tokentyp. Es wird empfohlen, diesen optionalen Anspruch anstelle von upn oder unique_name zu verwenden. |
v1-ID-Token und Zugriffstoken |
additionalProperties
optionaler Ansprüche
Einige optionale Ansprüche können so konfiguriert werden, dass sie die Art und Weise ändern, wie der Anspruch zurückgegeben wird. Diese additionalProperties
werden hauptsächlich verwendet, um die Migration lokaler Anwendungen mit unterschiedlichen Datenerwartungen zu unterstützen. Beispielsweise hilft include_externally_authenticated_upn_without_hash
bei Clients, die keine Hashmarken (#
) im UPN verarbeiten können.
Eigenschaftenname |
additionalProperty Name |
Beschreibung |
---|---|---|
upn |
Kann sowohl für SAML- als auch für JWT-Antworten und für v1.0- und v2.0-Token verwendet werden. | |
include_externally_authenticated_upn |
Enthält den Gast-UPN, der im Ressourcenmandanten gespeichert ist. Beispiel: foo_hometenant.com#EXT#@resourcetenant.com . |
|
include_externally_authenticated_upn_without_hash |
Identisch mit der zuvor aufgeführten Ausnahme, mit der Ausnahme, dass die Hashmarken (# ) durch Unterstriche (_ ) ersetzt werden, z. B. foo_hometenant.com_EXT_@resourcetenant.com . |
|
aud |
In v1-Zugriffstoken wird dieser Anspruch verwendet, um das Format des aud Anspruchs zu ändern. Dieser Anspruch hat keine Auswirkungen auf v2-Token oder die ID-Token der Version, wobei der aud Anspruch immer die Client-ID ist. Verwenden Sie diese Konfiguration, um sicherzustellen, dass Ihre API die Benutzergruppenüberprüfung einfacher durchführen kann. Wie alle optionalen Ansprüche, die sich auf das Zugriffstoken auswirken, muss die Ressource in der Anforderung diesen optionalen Anspruch festlegen, da Ressourcen das Zugriffstoken besitzen. |
|
use_guid |
Gibt die Client-ID der Ressource (API) im GUID-Format als aud Anspruch immer aus, anstatt davon abhängig zu sein. Wenn beispielsweise eine Ressource dieses Flag festlegt und die Client-ID 00001111-aaaa-2222-bbbb-3333cccc4444 ist, erhält jede App, die ein Zugriffstoken für diese Ressource anfordert, ein Zugriffstoken mit aud : 00001111-aaaa-2222-bbbb-3333cccc4444 . Ohne diesen Anspruchssatz kann eine API Token mit einem aud Anspruch von api://MyApi.com , api://MyApi.com/ , api://myapi.com/AdditionalRegisteredField oder einem anderen Wert abrufen, der als App-ID-URI für diese API und die Client-ID der Ressource festgelegt wurde. |
|
idtyp |
Dieser Anspruch wird verwendet, um den Tokentyp (App, Benutzer, Gerät) abzurufen. Standardmäßig wird sie nur für Nur-App-Token ausgegeben. Wie alle optionalen Ansprüche, die sich auf das Zugriffstoken auswirken, muss die Ressource in der Anforderung diesen optionalen Anspruch festlegen, da Ressourcen das Zugriffstoken besitzen. | |
include_user_token |
Gibt den idtyp Anspruch für das Benutzertoken aus. Ohne diese optionale zusätzliche Eigenschaft für den Idtyp-Anspruchssatz ruft eine API nur den Anspruch für App-Token ab. |
beispiel für additionalProperties
"optionalClaims": {
"idToken": [
{
"name": "upn",
"essential": false,
"additionalProperties": [
"include_externally_authenticated_upn"
]
}
]
}
Dieses optionalClaims
-Objekt bewirkt, dass das id-Token, das an den Client zurückgegeben wird, einen upn
Anspruch mit den informationen zum anderen Heimmandanten und Ressourcenmandanten enthält. Der upn
Anspruch wird nur im Token geändert, wenn der Benutzer ein Gast im Mandanten ist (der einen anderen IDP für die Authentifizierung verwendet).
Siehe auch
Nächste Schritte
- Erfahren Sie mehr über Konfigurieren optionaler Ansprüche.