Naslaginformatie over optionele claims
U kunt optionele claims gebruiken voor het volgende:
- Selecteer claims die u wilt opnemen in tokens voor uw toepassing.
- Wijzig het gedrag van bepaalde claims die het Microsoft Identity Platform retourneert in tokens.
- Aangepaste claims voor uw toepassing toevoegen en openen.
Hoewel optionele claims worden ondersteund in zowel v1.0- als v2.0-indelingstokens en SAML-tokens, bieden ze het grootste deel van hun waarde bij het overstappen van v1.0 naar v2.0. In het Microsoft Identity Platform worden kleinere tokengrootten gebruikt om optimale prestaties door clients te garanderen. Als gevolg hiervan zijn verschillende claims die voorheen zijn opgenomen in de toegangs- en id-tokens niet meer aanwezig in v2.0-tokens en moeten ze specifiek per toepassing worden gevraagd.
Accounttype | v1.0-tokens | v2.0-tokens |
---|---|---|
Persoonlijk Microsoft-account | N.V.T | Ondersteund |
Microsoft Entra-account | Ondersteund | Ondersteund |
v1.0 en v2.0 optionele claimset
De set optionele claims die standaard beschikbaar zijn voor toepassingen die moeten worden gebruikt, worden vermeld in de volgende tabel. U kunt aangepaste gegevens gebruiken in extensiekenmerken en directory-extensies om optionele claims voor uw toepassing toe te voegen. Wanneer u claims toevoegt aan het toegangstoken, zijn de claims van toepassing op toegangstokens die zijn aangevraagd voor de toepassing (een web-API), worden geen claims aangevraagd door de toepassing. Ongeacht hoe de client toegang heeft tot uw API, zijn de juiste gegevens aanwezig in het toegangstoken dat wordt gebruikt voor verificatie bij uw API.
Notitie
Het merendeel van deze claims kan worden opgenomen in JWT's voor v1.0- en v2.0-tokens, maar niet SAML-tokens, behalve waar vermeld in de kolom Tokentype. Consumentenaccounts ondersteunen een subset van deze claims, gemarkeerd in de kolom Gebruikerstype. Veel van de vermelde claims zijn niet van toepassing op consumentengebruikers (ze hebben geen tenant, dus tenant_ctry
heeft geen waarde).
De volgende tabel bevat de optionele claimset v1.0 en v2.0.
Naam | Beschrijving | Tokentype | Gebruikerstype | Notities |
---|---|---|---|---|
acct |
Gebruikersaccountstatus in tenant | JWT, SAML | Als de gebruiker lid is van de tenant, wordt de waarde 0 . Als ze een gast zijn, is de waarde 1 . |
|
acrs |
Verificatiecontext-id's | JWT | Microsoft Entra-id | Geeft de verificatiecontext-id's aan van de bewerkingen die de bearer in aanmerking komt om uit te voeren. Verificatiecontext-id's kunnen worden gebruikt om een vraag naar stapsgewijze verificatie vanuit uw toepassing en services te activeren. Vaak gebruikt samen met de xms_cc claim. |
auth_time |
Tijdstip waarop de gebruiker voor het laatst is geverifieerd. | JWT | ||
ctry |
Land/regio van gebruiker | JWT | Deze claim wordt geretourneerd als deze aanwezig is en de waarde van het veld een standaard tweeletterige land-/regiocode is, zoals FR, JP, SZ, enzovoort. | |
email |
Het gerapporteerde e-mailadres voor deze gebruiker | JWT, SAML | MSA, Microsoft Entra-id | Deze waarde wordt standaard opgenomen als de gebruiker een gast in de tenant is. Voor beheerde gebruikers (de gebruikers in de tenant) moet deze worden aangevraagd via deze optionele claim of alleen op v2.0, met het OpenID-bereik. Deze waarde is niet gegarandeerd correct en kan in de loop van de tijd onveranderbaar zijn. Gebruik deze waarde nooit voor autorisatie of om gegevens voor een gebruiker op te slaan. Zie Controleer of de gebruiker gemachtigd is voor toegang tot deze gegevensvoor meer informatie. Als u de e-mailclaim voor autorisatie gebruikt, raden we het uitvoeren van een migratie aan om over te stappen op een veiligere claim. Als u een adresseerbaar e-mailadres in uw app nodig hebt, vraagt u deze gegevens rechtstreeks aan bij de gebruiker, waarbij u deze claim gebruikt als suggestie of vooraf invult in uw UX. |
fwd |
IP-adres | JWT | Hiermee voegt u het oorspronkelijke adres van de aanvragende client toe (wanneer u zich in een VNET bevindt). | |
groups |
Optionele opmaak voor groepsclaims | JWT, SAML | De groups claim wordt gebruikt met de instelling GroupMembershipClaims in het toepassingsmanifest, dat ook moet worden ingesteld. |
|
idtyp |
Tokentype | JWT-toegangstokens | Speciaal: alleen in tokens voor alleen-app-toegang | De waarde wordt app wanneer het token een app-token is. Deze claim is de meest nauwkeurige manier voor een API om te bepalen of een token een app-token of een app+gebruikerstoken is. |
login_hint |
Aanmeldingshint | JWT | MSA, Microsoft Entra-id | Een ondoorzichtige, betrouwbare aanmeldingshint claim dat base 64 is gecodeerd. Wijzig deze waarde niet. Deze claim is de beste waarde die u kunt gebruiken voor de parameter login_hint OAuth in alle stromen om eenmalige aanmelding op te halen. Het kan worden doorgegeven tussen toepassingen om ze op de achtergrond eenmalige aanmelding te helpen- toepassing A kan zich aanmelden bij een gebruiker, de login_hint claim lezen en vervolgens de claim en de huidige tenantcontext verzenden naar toepassing B in de querytekenreeks of -fragment wanneer de gebruiker een koppeling selecteert die ze naar toepassing B brengt. Om racevoorwaarden en betrouwbaarheidsproblemen te voorkomen, bevat de login_hint claim niet de huidige tenant voor de gebruiker bevat en de standaardinstellingen voor de thuistenant van de gebruiker wanneer deze wordt gebruikt. In een gastscenario waarin de gebruiker afkomstig is van een andere tenant, moet er een tenant-id worden opgegeven in de aanmeldingsaanvraag. en geef hetzelfde door aan apps waarmee u partner bent. Deze claim is bedoeld voor gebruik met de bestaande login_hint -functionaliteit van uw SDK, maar deze wordt weergegeven. |
tenant_ctry |
Land/regio van resourcetenant | JWT | Hetzelfde als ctry behalve ingesteld op tenantniveau door een beheerder. Moet ook een standaardwaarde van twee letters zijn. |
|
tenant_region_scope |
Regio van de resourcetenant | JWT | ||
upn |
UserPrincipalName | JWT, SAML | Een id voor de gebruiker die kan worden gebruikt met de parameter username_hint . Geen duurzame id voor de gebruiker en mag niet worden gebruikt voor autorisatie of om gebruikersgegevens uniek te identificeren (bijvoorbeeld als databasesleutel). Gebruik in plaats daarvan de gebruikersobject-id (oid ) als databasesleutel. Zie Toepassingen en API's beveiligen door claims te validerenvoor meer informatie. Gebruikers die zich aanmelden met een alternatieve aanmeldings-id mogen hun UPN (User Principal Name) niet weergeven. Gebruik in plaats daarvan de volgende id-tokenclaims voor het weergeven van de aanmeldingsstatus voor de gebruiker: preferred_username of unique_name voor v1-tokens en preferred_username voor v2-tokens. Hoewel deze claim automatisch wordt opgenomen, kunt u deze opgeven als een optionele claim om andere eigenschappen te koppelen om het gedrag ervan in de gastgebruikerscase te wijzigen. U moet de login_hint claim gebruiken voor login_hint gebruik. Leesbare id's zoals UPN zijn onbetrouwbaar. |
|
verified_primary_email |
Afkomstig van primaryAuthoritativeEmail van de gebruiker | JWT | ||
verified_secondary_email |
Afkomstig uit de SecondaryAuthoritativeEmail van de gebruiker | JWT | ||
vnet |
VNET-aanduidingsgegevens. | JWT | ||
xms_cc |
Clientmogelijkheden | JWT | Microsoft Entra-id | Geeft aan of de clienttoepassing die het token heeft verkregen, in staat is om problemen met claims te verwerken. Het wordt vaak samen met claim acrs gebruikt. Deze claim wordt vaak gebruikt in scenario's voor voorwaardelijke toegang en continue toegangsevaluatie. De bronserver of servicetoepassing die het token wordt uitgegeven voor het beheren van de aanwezigheid van deze claim in een token. Een waarde van cp1 in het toegangstoken is de gezaghebbende manier om te bepalen dat een clienttoepassing een claimvraag kan afhandelen. Zie Claims-uitdagingen, claimsaanvragen en clientmogelijkhedenvoor meer informatie. |
xms_edov |
Booleaanse waarde die aangeeft of de eigenaar van het e-maildomein van de gebruiker is geverifieerd. | JWT | Een e-mail wordt beschouwd als domeinverificatie als deze deel uitmaakt van de tenant waar het gebruikersaccount zich bevindt en de tenantbeheerder heeft verificatie van het domein uitgevoerd. Bovendien moet het e-mailbericht afkomstig zijn van een Microsoft-account (MSA), een Google-account of worden gebruikt voor verificatie met behulp van de eenmalige wachtwoordcodestroom (OTP). Facebook- en SAML-/WS-Fed-accounts geen geverifieerde domeinen hebben. Om deze claim in het token te retourneren, is de aanwezigheid van de email claim vereist. |
|
xms_pdl |
Voorkeursgegevenslocatie | JWT | Voor tenants met meerdere geografische gebieden is de voorkeursgegevenslocatie de drieletterige code met de geografische regio waarin de gebruiker zich bevindt. Zie de documentatie Microsoft Entra Connect over voorkeursgegevenslocatievoor meer informatie. | |
xms_pl |
Voorkeurstaal van de gebruiker | JWT | De voorkeurstaal van de gebruiker, indien ingesteld. Afkomstig van hun thuistenant, in scenario's voor gasttoegang. Opgemaakte LL-CC ("en-us"). | |
xms_tpl |
Voorkeurstaal van tenant | JWT | De voorkeurstaal van de resourcetenant, indien ingesteld. Opgemaakte LL ("en"). | |
ztdid |
Implementatie-id van Zero Touch | JWT | De apparaat-id die wordt gebruikt voor Windows AutoPilot . |
Waarschuwing
Gebruik nooit email
of upn
claimwaarden om op te slaan of te bepalen of de gebruiker in een toegangstoken toegang moet hebben tot gegevens. Veranderlijke claimwaarden zoals deze kunnen na verloop van tijd veranderen, waardoor ze onveilig en onbetrouwbaar zijn voor autorisatie.
v2.0-specifieke optionele claimset
Deze claims worden altijd opgenomen in v1.0-tokens, maar niet opgenomen in v2.0-tokens, tenzij aangevraagd. Deze claims zijn alleen van toepassing op JWT's (ID-tokens en toegangstokens).
JWT-claim | Naam | Beschrijving | Notities |
---|---|---|---|
ipaddr |
IP-adres | Het IP-adres van de client waaruit is aangemeld. | |
onprem_sid |
On-premises beveiligings-id | ||
pwd_exp |
Verlooptijd van wachtwoord | Het aantal seconden na de tijd in de iat claim waarop het wachtwoord verloopt. Deze claim wordt alleen opgenomen wanneer het wachtwoord binnenkort verloopt (zoals gedefinieerd door 'meldingsdagen' in het wachtwoordbeleid). |
|
pwd_url |
Wachtwoord-URL wijzigen | Een URL die de gebruiker kan bezoeken om het wachtwoord te wijzigen. Deze claim wordt alleen opgenomen wanneer het wachtwoord binnenkort verloopt (zoals gedefinieerd door 'meldingsdagen' in het wachtwoordbeleid). | |
in_corp |
Binnen bedrijfsnetwerk | Signalen als de client zich aanmeldt vanuit het bedrijfsnetwerk. Als dat niet zo is, is de claim niet inbegrepen. | Gebaseerd op de vertrouwde IP-adressen instellingen in MFA. |
family_name |
Achternaam | Hiermee geeft u de achternaam, achternaam of familienaam van de gebruiker op zoals gedefinieerd in het gebruikersobject. Bijvoorbeeld "family_name":"Miller" . |
Ondersteund in MSA en Microsoft Entra-id. Vereist het profile bereik. |
given_name |
Voornaam | Geeft de eerste of 'opgegeven' naam van de gebruiker op, zoals ingesteld op het gebruikersobject. Bijvoorbeeld "given_name": "Frank" . |
Ondersteund in MSA en Microsoft Entra-id. Vereist het profile bereik. |
upn |
User Principal Name | Een id voor de gebruiker die kan worden gebruikt met de parameter username_hint . Geen duurzame id voor de gebruiker en mag niet worden gebruikt voor autorisatie of om gebruikersgegevens uniek te identificeren (bijvoorbeeld als databasesleutel). Zie Toepassingen en API's beveiligen door claims te validerenvoor meer informatie. Gebruik in plaats daarvan de gebruikersobject-id (oid ) als databasesleutel. Gebruikers die zich aanmelden met een alternatieve aanmeldings-id mogen hun UPN (User Principal Name) niet weergeven. Gebruik in plaats daarvan de volgende preferred_username claim voor het weergeven van de aanmeldingsstatus voor de gebruiker. |
Vereist het profile bereik. |
v1.0-specifieke optionele claimset
Sommige van de verbeteringen van de v2-tokenindeling zijn beschikbaar voor apps die de v1-tokenindeling gebruiken, omdat ze helpen de beveiliging en betrouwbaarheid te verbeteren. Deze verbeteringen zijn alleen van toepassing op JWT's, niet op SAML-tokens.
JWT-claim | Naam | Beschrijving | Notities |
---|---|---|---|
aud |
Audiƫntie | Altijd aanwezig in JWT's, maar in v1-toegangstokens kan het op verschillende manieren worden verzonden: elke appID-URI, met of zonder een afsluitende slash en de client-id van de resource. Deze randomisatie kan moeilijk worden gecodeerd bij het uitvoeren van tokenvalidatie. Gebruik additionalProperties voor deze claim om ervoor te zorgen dat deze altijd is ingesteld op de client-id van de resource in v1-toegangstokens. |
Alleen v1 JWT-toegangstokens |
preferred_username |
Voorkeursgebruikersnaam | Biedt de voorkeursclaim voor gebruikersnaam binnen v1-tokens. Deze claim maakt het eenvoudiger voor apps om hints voor gebruikersnamen te bieden en door mensen leesbare weergavenamen weer te geven, ongeacht hun tokentype. Het is raadzaam om deze optionele claim te gebruiken in plaats van te gebruiken, upn of unique_name . |
v1 ID-tokens en toegangstokens |
additionalProperties
van optionele claims
Sommige optionele claims kunnen worden geconfigureerd om de manier te wijzigen waarop de claim wordt geretourneerd. Deze additionalProperties
worden meestal gebruikt om de migratie van on-premises toepassingen met verschillende gegevensverwachtingen te helpen.
include_externally_authenticated_upn_without_hash
helpt bijvoorbeeld bij clients die geen hashmarkeringen (#
) in de UPN kunnen verwerken.
Naam van eigenschap |
additionalProperty naam |
Beschrijving |
---|---|---|
upn |
Kan worden gebruikt voor zowel SAML- als JWT-antwoorden, en voor v1.0- en v2.0-tokens. | |
include_externally_authenticated_upn |
Bevat de UPN van de gast zoals opgeslagen in de resourcetenant. Bijvoorbeeld foo_hometenant.com#EXT#@resourcetenant.com . |
|
include_externally_authenticated_upn_without_hash |
Hetzelfde als eerder vermeld, behalve dat de hashmarkeringen (# ) worden vervangen door onderstrepingstekens (_ ), bijvoorbeeld foo_hometenant.com_EXT_@resourcetenant.com . |
|
aud |
In v1-toegangstokens wordt deze claim gebruikt om de indeling van de aud claim te wijzigen. Deze claim heeft geen effect in v2-tokens of de id-tokens van een versie, waarbij de aud claim altijd de client-id is. Gebruik deze configuratie om ervoor te zorgen dat uw API eenvoudiger doelgroepvalidatie kan uitvoeren. Net als alle optionele claims die van invloed zijn op het toegangstoken, moet de resource in de aanvraag deze optionele claim instellen, omdat resources eigenaar zijn van het toegangstoken. |
|
use_guid |
Verzendt de client-id van de resource (API) in GUID-indeling als de aud claim altijd in plaats van dat deze afhankelijk is van runtime. Als een resource bijvoorbeeld deze vlag instelt en de bijbehorende client-id is 00001111-aaaa-2222-bbbb-3333cccc4444 , ontvangt elke app die een toegangstoken voor die resource aanvraagt een toegangstoken met aud : 00001111-aaaa-2222-bbbb-3333cccc4444 . Zonder deze claimset kan een API tokens ophalen met een aud claim van api://MyApi.com , api://MyApi.com/ , api://myapi.com/AdditionalRegisteredField of een andere waarde die is ingesteld als een app-id-URI voor die API en de client-id van de resource. |
|
idtyp |
Deze claim wordt gebruikt om het type token op te halen (app, gebruiker, apparaat). Standaard worden deze alleen verzonden voor tokens die alleen voor apps zijn verzonden. Net als alle optionele claims die van invloed zijn op het toegangstoken, moet de resource in de aanvraag deze optionele claim instellen, omdat resources eigenaar zijn van het toegangstoken. | |
include_user_token |
Hiermee wordt de idtyp claim voor het token van gebruikers verzonden. Zonder deze optionele aanvullende eigenschap voor de idtyp-claimset krijgt een API alleen de claim voor app-tokens. |
additionalProperties
voorbeeld
"optionalClaims": {
"idToken": [
{
"name": "upn",
"essential": false,
"additionalProperties": [
"include_externally_authenticated_upn"
]
}
]
}
Dit optionalClaims
object zorgt ervoor dat het id-token dat naar de client wordt geretourneerd, een upn
claim bevat met de andere tenant- en resourcetenantgegevens. De upn
claim wordt alleen gewijzigd in het token als de gebruiker een gast in de tenant is (die een andere IDP gebruikt voor verificatie).