Referens för åtkomsttokenanspråk
Åtkomsttoken är JSON-webbtoken (JWT). JWT:erna innehåller följande delar:
- Rubrik – Innehåller information om hur du verifierar token, inklusive information om typen av token och dess signeringsmetod.
- Payload – innehåller alla viktiga data om användaren eller programmet som försöker anropa tjänsten.
- Signatur – används råmaterialet för att verifiera token.
Varje del avgränsas med en punkt (.
) och separat base 64-kodad.
Anspråk finns bara om det finns ett värde för att fylla det. Ett program bör inte vara beroende av att ett anspråk finns. Exempel är pwd_exp
(inte alla klientorganisationer kräver att lösenord upphör att gälla) och family_name
(flöden för klientautentiseringsuppgifter är för program som inte har namn). Åtkomsttoken innehåller alltid tillräckliga anspråk för åtkomstutvärdering.
Microsofts identitetsplattform använder vissa anspråk för att skydda token för återanvändning. Beskrivningen av Opaque
markerar dessa anspråk som inte för offentlig konsumtion. Dessa anspråk kanske eller kanske inte visas i en token, och nya kan läggas till utan förvarning.
Rubrikanspråk
Anspråk | Format | beskrivning |
---|---|---|
typ |
Sträng – alltid JWT |
Anger att token är en JWT. |
alg |
String | Anger den algoritm som används för att signera token, RS256 till exempel . |
kid |
String | Anger tumavtrycket för den offentliga nyckel som används för att verifiera tokens signatur. Genereras i både v1.0- och v2.0-åtkomsttoken. |
x5t |
String | Fungerar på samma sätt (används och är värde) som kid . x5t och är ett äldre anspråk som endast genereras i v1.0-åtkomsttoken i kompatibilitetssyfte. |
Nyttolastanspråk
Anspråk | Format | beskrivning | Auktoriseringsöverväganden |
---|---|---|---|
acrs |
JSON-matris med strängar | Anger Auth-kontext-ID:t för de åtgärder som innehavaren är berättigad att utföra. Autentiseringskontext-ID:er kan användas för att utlösa ett krav på stegvis autentisering inifrån ditt program och dina tjänster. Används ofta tillsammans med anspråket xms_cc . |
|
aud |
Sträng, en program-ID-URI eller GUID | Identifierar tokens avsedda målgrupp. I v2.0-token är det här värdet alltid api:ets klient-ID. I v1.0-token kan det vara klient-ID:t eller resurs-URI:n som används i begäran. Värdet kan bero på hur klienten begärde token. | Det här värdet måste verifieras, avvisa token om värdet inte matchar den avsedda målgruppen. |
iss |
Sträng, en URI för säkerhetstokentjänsten (STS) | Identifierar den STS som konstruerar och returnerar token och Microsoft Entra-klientorganisationen för den autentiserade användaren. Om token som utfärdas är en v2.0-token (se anspråket ver ) slutar URI:n i /v2.0 . DET GUID som anger att användaren är en konsumentanvändare från ett Microsoft-konto är 9188040d-6c67-4c5b-b112-36a304b66dad . |
Programmet kan använda GUID-delen av anspråket för att begränsa den uppsättning klienter som kan logga in på programmet, om tillämpligt. |
idp |
Sträng, vanligtvis en STS-URI | Registrerar den identitetsprovider som har autentiserat subjektet för token. Det här värdet är identiskt med värdet för utfärdaranspråket såvida inte användarkontot inte finns i samma klientorganisation som utfärdaren, till exempel gäster. Använd värdet iss för om anspråket inte finns. För personliga konton som används i en organisationskontext (till exempel ett personligt konto som bjuds in till en Microsoft Entra-klientorganisation) kan anspråket idp vara "live.com" eller en STS-URI som innehåller Microsoft-kontoklientorganisationen 9188040d-6c67-4c5b-b112-36a304b66dad . |
|
iat |
int, en Unix-tidsstämpel | Anger när autentiseringen för den här token inträffade. | |
nbf |
int, en Unix-tidsstämpel | Anger den tid efter vilken JWT kan bearbetas. | |
exp |
int, en Unix-tidsstämpel | Anger förfallotiden innan JWT kan godkännas för bearbetning. En resurs kan också avvisa token före den här tiden. Avvisningen kan ske för en nödvändig ändring i autentiseringen eller när en token återkallas. | |
aio |
Ogenomskinlig sträng | Ett internt anspråk som används av Microsoft Entra-ID för att registrera data för återanvändning av token. Resurser bör inte använda det här anspråket. | |
acr |
Sträng, en 0 eller 1 , finns endast i v1.0-token |
Värdet 0 för anspråket "Autentiseringskontextklass" anger att slutanvändarautentiseringen inte uppfyllde kraven i ISO/IEC 29115. |
|
amr |
JSON-matris med strängar, som endast finns i v1.0-token | Identifierar autentiseringsmetoden för tokens ämne. | |
appid |
Sträng, ett GUID, som endast finns i v1.0-token | Program-ID:t för klienten med hjälp av token. Programmet kan fungera som sig självt eller för en användares räkning. Program-ID:t representerar vanligtvis ett programobjekt, men det kan också representera ett objekt för tjänstens huvudnamn i Microsoft Entra-ID. | appid kan användas i auktoriseringsbeslut. |
azp |
Sträng, ett GUID, som endast finns i v2.0-token | En ersättning för appid . Program-ID:t för klienten med hjälp av token. Programmet kan fungera som sig självt eller för en användares räkning. Program-ID:t representerar vanligtvis ett programobjekt, men det kan också representera ett objekt för tjänstens huvudnamn i Microsoft Entra-ID. |
azp kan användas i auktoriseringsbeslut. |
appidacr |
Sträng, en 0 , 1 , eller 2 , som endast finns i v1.0-token |
Anger klientens autentiseringsmetod. För en offentlig klient är 0 värdet . När du använder klient-ID och klienthemlighet är 1 värdet . När du använder ett klientcertifikat för autentisering är 2 värdet . |
|
azpacr |
Sträng, en 0 , 1 eller 2 , som endast finns i v2.0-token |
En ersättning för appidacr . Anger klientens autentiseringsmetod. För en offentlig klient är 0 värdet . När du använder klient-ID och klienthemlighet är 1 värdet . När du använder ett klientcertifikat för autentisering är 2 värdet . |
|
preferred_username |
Sträng, som endast finns i v2.0-token. | Det primära användarnamnet som representerar användaren. Värdet kan vara en e-postadress, ett telefonnummer eller ett allmänt användarnamn utan ett angivet format. Använd värdet för användarnamnstips och i användargränssnittet som användarnamn. Använd omfånget för att ta emot det här anspråket profile . |
Eftersom det här värdet är föränderligt ska du inte använda det för att fatta auktoriseringsbeslut. |
name |
String | Ger ett värde som kan läsas av människor och som identifierar tokens ämne. Värdet kan variera, det är föränderligt och är endast i visningssyfte. Använd omfånget för att ta emot det här anspråket profile . |
Använd inte det här värdet för att fatta auktoriseringsbeslut. |
scp |
Sträng, en blankstegsavgränsad lista över omfång | Den uppsättning omfång som exponeras av programmet som klientprogrammet har begärt (och tagit emot) medgivande för. Ingår endast för användartoken. | Programmet bör kontrollera att dessa omfång är giltiga som exponeras av programmet och fatta auktoriseringsbeslut baserat på värdet för dessa omfång. |
roles |
Matris med strängar, en lista med behörigheter | Den uppsättning behörigheter som exponeras av programmet som det begärande programmet eller användaren har fått behörighet att anropa. Klientautentiseringsflödet använder den här uppsättningen behörigheter i stället för användaromfattningar för programtoken. För användartoken innehåller den här uppsättningen värden användarens tilldelade roller i målprogrammet. | Dessa värden kan användas för att hantera åtkomst, till exempel framtvinga auktorisering för åtkomst till en resurs. |
wids |
Matris med RoleTemplateID-GUID :er | Anger de klientomfattande roller som tilldelats den här användaren, från avsnittet med roller som finns i inbyggda Microsoft Entra-roller. Egenskapen groupMembershipClaims för programmanifestet konfigurerar det här anspråket per program. Ange anspråket till All eller DirectoryRole . |
Dessa värden kan användas för att hantera åtkomst, till exempel framtvinga auktorisering för åtkomst till en resurs. |
groups |
JSON-matris med GUID:er | Tillhandahåller objekt-ID:t som representerar gruppmedlemskapen i ämnet. Egenskapen groupMembershipClaims för programmanifestet konfigurerar gruppanspråket per program. Värdet null exkluderar alla grupper, värdet SecurityGroup inkluderar katalogroller och Active Directory Security Group-medlemskap, och värdet All inkluderar både säkerhetsgrupper och Microsoft 365-distributionslistor. För andra flöden, om antalet grupper som användaren är i går över 150 för SAML och 200 för JWT, lägger Microsoft Entra ID till ett överförbrukningsanspråk till anspråkskällorna. Anspråkskällorna pekar på den Microsoft Graph-slutpunkt som innehåller listan med användarens grupper. |
Dessa värden kan användas för att hantera åtkomst, till exempel framtvinga auktorisering för åtkomst till en resurs. |
hasgroups |
Booleskt | Om det finns anger alltid true , om användaren finns i minst en grupp. Anger att klienten ska använda Microsoft Graph-API:et för att fastställa användarens grupper (https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects ). |
|
groups:src1 |
JSON-objekt | Innehåller en länk till listan med fullständiga grupper för användaren när tokenbegäranden är för stora för token. För JWTs som ett distribuerat anspråk för SAML som ett nytt anspråk i stället för anspråket groups . Exempel på JWT-värde: "groups":"src1" "_claim_sources : "src1" : { "endpoint" : "https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects" } |
|
sub |
String | Det huvudnamn som är associerat med token. Till exempel användaren av ett program. Det här värdet är oföränderligt, omtilldela eller återanvänd inte. Ämnet är en parvis identifierare som är unik för ett visst program-ID. Om en enskild användare loggar in i två olika program med två olika klient-ID får dessa program två olika värden för ämnesanspråket. Att använda de två olika värdena beror på arkitektur- och sekretesskrav. Se även anspråket oid , som förblir detsamma mellan program i en klientorganisation. |
Det här värdet kan användas för att utföra auktoriseringskontroller, till exempel när token används för att komma åt en resurs och kan användas som en nyckel i databastabeller. |
oid |
Sträng, ett GUID | Den oföränderliga identifieraren för beställaren, som är den verifierade identiteten för användaren eller tjänstens huvudnamn. Det här ID:t identifierar beställaren unikt i olika program. Två olika program som loggar in samma användare får samma värde i anspråket oid . oid Kan användas när du gör frågor till Microsoft onlinetjänster, till exempel Microsoft Graph. Microsoft Graph returnerar detta ID som id egenskap för ett visst användarkonto. oid Eftersom tillåter flera program att korrelera huvudnamn, för att ta emot det här anspråket för användare använder omfångetprofile . Om det finns en enskild användare i flera klientorganisationer innehåller användaren ett annat objekt-ID i varje klientorganisation. Även om användaren loggar in på varje konto med samma autentiseringsuppgifter är kontona olika. |
Det här värdet kan användas för att utföra auktoriseringskontroller, till exempel när token används för att komma åt en resurs och kan användas som en nyckel i databastabeller. |
tid |
Sträng, ett GUID | Representerar den klientorganisation som användaren loggar in på. För arbets- och skolkonton är GUID det oföränderliga klientorganisations-ID för organisationen som användaren loggar in på. För inloggningar till den personliga Microsoft-kontoklientorganisationen (tjänster som Xbox, Teams for Life eller Outlook) är 9188040d-6c67-4c5b-b112-36a304b66dad värdet . För att ta emot det här anspråket måste programmet begära omfånget profile . |
Det här värdet bör beaktas i kombination med andra anspråk i auktoriseringsbeslut. |
unique_name |
Sträng som endast finns i v1.0-token | Innehåller ett läsbart värde som identifierar subjektet för token. | Det här värdet kan skilja sig åt inom en klientorganisation och endast använda det i visningssyfte. |
uti |
String | Tokenidentifieraranspråk, motsvarande jti I JWT-specifikationen. Unik identifierare per token som är skiftlägeskänslig. |
|
rh |
Ogenomskinlig sträng | Ett internt anspråk som används av Azure för att återskapa token. Resurser bör inte använda det här anspråket. | |
ver |
Sträng, antingen 1.0 eller 2.0 |
Anger versionen av åtkomsttoken. | |
xms_cc |
JSON-matris med strängar | Anger om klientprogrammet som förvärvade token kan hantera anspråksutmaningar. Den används ofta tillsammans med anspråket acrs . Det här anspråket används ofta i scenarier med villkorsstyrd åtkomst och utvärdering av kontinuerlig åtkomst. Resursservern eller tjänstprogrammet som token utfärdas för styr förekomsten av det här anspråket i en token. Värdet cp1 i åtkomsttoken är det auktoritativa sättet att identifiera att ett klientprogram kan hantera en anspråksutmaning. Mer information finns i Anspråksutmaningar, anspråksbegäranden och klientfunktioner. |
Kommentar
Anspråken roles
, groups
, scp
och wids
är inte en fullständig lista över hur en resurs kan auktorisera en användare eller ett program, och de är inte heller en fullständig lista över behörigheter som beviljats anroparen. Målresursen kan använda en annan metod för att auktorisera åtkomst till dess skyddade resurser.
Överförbrukningsanspråk för grupper
Microsoft Entra-ID begränsar antalet objekt-ID:t som ingår i gruppanspråket för att hålla sig inom storleksgränsen för HTTP-huvudet. Om en användare är medlem i fler grupper än överförbrukningsgränsen (150 för SAML-token, 200 för JWT-token) genererar Inte Microsoft Entra-ID gruppanspråket i token. I stället innehåller den ett överförbrukningsanspråk i token som anger för programmet att fråga Microsoft Graph-API:et för att hämta användarens gruppmedlemskap.
{
...
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "[Url to get this user's group membership from]"
}
}
...
}
Använd den BulkCreateGroups.ps1
som anges i mappen Skript för appskapande för att testa överförbrukningsscenarier.
Kommentar
Url:en som returneras är en Azure AD Graph-URL (det vill graph.windows.net). I stället för att förlita sig på den här URL:en bör tjänsterna i stället använda det valfria anspråket idtyp
(som identifierar om token är en app eller app+användartoken) för att skapa en Microsoft Graph-URL för att fråga den fullständiga listan över grupper.
v1.0 grundläggande anspråk
V1.0-token innehåller följande anspråk om tillämpligt, men inte v2.0-token som standard. Om du vill använda dessa anspråk för v2.0 begär programmet dem med hjälp av valfria anspråk.
Anspråk | Format | beskrivning |
---|---|---|
ipaddr |
String | IP-adressen som användaren autentiserades från. |
onprem_sid |
Sträng i SID-format | I de fall där användaren har en lokal autentisering tillhandahåller det här anspråket sitt SID. Använd det här anspråket för auktorisering i äldre program. |
pwd_exp |
int, en Unix-tidsstämpel | Anger när användarens lösenord upphör att gälla. |
pwd_url |
String | En URL där användarna kan återställa sitt lösenord. |
in_corp |
boolean | Signaler om klienten loggar in från företagsnätverket. |
nickname |
String | Ett annat namn för användaren, separat från för- eller efternamn. |
family_name |
String | Innehåller användarens efternamn, efternamn eller efternamn enligt definitionen i användarobjektet. |
given_name |
String | Anger användarens för- eller förnamn enligt inställningen för användarobjektet. |
upn |
String | Användarens användarnamn. Kan vara ett telefonnummer, en e-postadress eller en oformaterad sträng. Använd endast i visningssyfte och tillhandahålla användarnamnstips i omautentiseringsscenarier. |
amr-anspråk
Identiteter kan autentiseras på olika sätt, vilket kan vara relevant för programmet. Anspråket amr
är en matris som kan innehålla flera objekt, till exempel ["mfa", "rsa", "pwd"]
, för en autentisering som använde både ett lösenord och Authenticator-appen.
Värde | beskrivning |
---|---|
pwd |
Lösenordsautentisering, antingen en användares Microsoft-lösenord eller en klienthemlighet för ett program. |
rsa |
Autentiseringen baserades på beviset på en RSA-nyckel, till exempel med Microsoft Authenticator-appen. Det här värdet anger också användningen av ett självsignerat JWT med ett tjänstägt X509-certifikat i autentisering. |
otp |
Engångslösenord med ett e-postmeddelande eller ett sms. |
fed |
Anger användningen av en federerad autentiseringskontroll (till exempel JWT eller SAML). |
wia |
Windows-integrerad autentisering |
mfa |
Anger användningen av multifaktorautentisering. Innehåller de andra autentiseringsmetoderna när det här anspråket finns. |
ngcmfa |
mfa Motsvarar , som används för etablering av vissa avancerade typer av autentiseringsuppgifter. |
wiaormfa |
Användaren använde Windows eller en MFA-autentiseringsuppgift för att autentisera. |
none |
Anger ingen slutförd autentisering. |
Nästa steg
- Läs mer om de åtkomsttoken som används i Microsoft Entra-ID.