Åtkomsttoken för Microsoft Identity PlatformMicrosoft identity platform access tokens

Åtkomsttoken gör att klienter kan anropa skyddade webb-API: er på ett säkert sätt och används av webb-API: er för att utföra autentisering och auktorisering.Access tokens enable clients to securely call protected web APIs, and are used by web APIs to perform authentication and authorization. I OAuth-specifikationen är åtkomsttoken i täckande strängar utan ett uppsättnings format – vissa identitets leverantörer (IDP: er) använder GUID: er, andra använder krypterade blobbar.Per the OAuth specification, access tokens are opaque strings without a set format - some identity providers (IDPs) use GUIDs, others use encrypted blobs. Microsoft Identity Platform använder en mängd olika åtkomst-token beroende på konfigurationen av det API som accepterar token.The Microsoft identity platform uses a variety of access token formats depending on the configuration of the API that accepts the token. Anpassade API: er som har registrerats av utvecklare på Microsoft Identity Platform kan välja mellan två olika format för JSON Web tokens (JWTs), som kallas "v1" och "v2", och Microsoft-utvecklade API: er som Microsoft Graph eller API: er i Azure har ytterligare tillverkarspecifika token-format.Custom APIs registered by developers on the Microsoft identity platform can choose from two different formats of JSON Web Tokens (JWTs), called "v1" and "v2", and Microsoft-developed APIs like Microsoft Graph or APIs in Azure have additional proprietary token formats. Dessa egna format kan vara krypterade tokens, JWTs eller särskilda JWT-liknande tokens som inte kommer att verifieras.These proprietary formats might be encrypted tokens, JWTs, or special JWT-like tokens that will not validate.

Klienter måste behandla åtkomsttoken som täckande strängar eftersom innehållet i token endast är avsett för resursen (API).Clients must treat access tokens as opaque strings because the contents of the token are intended for the resource (the API) only. I validerings-och fel söknings syfte kan utvecklare avkoda JWTs med en plats som JWT.MS.For validation and debugging purposes only, developers can decode JWTs using a site like jwt.ms. Tänk dock på att de tokens som du får för ett Microsoft API inte alltid är en JWT och att du inte kan avkoda dem alltid.Be aware, however, that the tokens you receive for a Microsoft API might not always be a JWT, and that you can't always decode them.

För mer information om vad som finns i åtkomsttoken, ska klienterna använda de token-svars data som returneras med åtkomsttoken till klienten.For details on what's inside the access token, clients should use the token response data that's returned with the access token to your client. När klienten begär en åtkomsttoken, returnerar Microsoft Identity Platform även vissa metadata om åtkomsttoken för appens förbrukning.When your client requests an access token, the Microsoft identity platform also returns some metadata about the access token for your app's consumption. Den här informationen omfattar förfallo tiden för åtkomsttoken och de omfattningar som den är giltig för.This information includes the expiry time of the access token and the scopes for which it's valid. Med den här informationen kan din app utföra intelligent cachelagring av åtkomsttoken utan att behöva parsa åtkomsttoken.This data allows your app to do intelligent caching of access tokens without having to parse the access token itself.

I följande avsnitt får du lära dig hur ditt API kan verifiera och använda anspråk i en åtkomsttoken.See the following sections to learn how your API can validate and use the claims inside an access token.

Anteckning

All dokumentation på den här sidan, förutom där det anges, gäller endast token som utfärdats för API: er som du har registrerat.All documentation on this page, except where noted, applies only to tokens issued for APIs you've registered. Den gäller inte för token som utfärdats för Microsoft-ägda API: er, och de token används inte för att verifiera hur Microsoft Identity Platform utfärdar token för ett API som du skapar.It does not apply to tokens issued for Microsoft-owned APIs, nor can those tokens be used to validate how the Microsoft identity platform will issue tokens for an API you create.

Token-format och ägarskapToken formats and ownership

v 1.0 och v 2.0v1.0 and v2.0

Det finns två versioner av tillgängliga åtkomsttoken i Microsoft Identity Platform: v 1.0 och v 2.0.There are two versions of access tokens available in the Microsoft identity platform: v1.0 and v2.0. Dessa versioner styr vilka anspråk som finns i token, vilket säkerställer att ett webb-API kan styra hur deras tokens ser ut.These versions govern what claims are in the token, ensuring that a web API can control what their tokens look like. Webb-API: er har något av dessa valt som standard under registreringen – v 1.0 för Azure AD-endast appar och v 2.0 för appar som stöder konsument konton.Web APIs have one of these selected as a default during registration - v1.0 for Azure AD-only apps, and v2.0 for apps that support consumer accounts. Detta kan kontrol leras av program som använder accessTokenAcceptedVersion inställningen i app-manifestet, där null och 1 resulterar i v 1.0-token och 2 resulterar i v 2.0-token.This is controllable by applications using the accessTokenAcceptedVersion setting in the app manifest, where null and 1 result in v1.0 tokens, and 2 results in v2.0 tokens.

Vilken app är en token "för"?What app is a token "for"?

Det finns två parter som är involverade i en åtkomstbegäran: klienten, som begär token och resursen (API) som accepterar token när API: t anropas.There are two parties involved in an access token request: the client, who requests the token, and the resource (the API) that accepts the token when the API is called. audAnspråket i en token anger den resurs som token är avsedd för (dess mål grupp).The aud claim in a token indicates the resource the token is intended for (its audience). Klienterna använder token men bör inte förstå eller försöka parsa den.Clients use the token but should not understand or attempt to parse it. Resurserna accepterar token.Resources accept the token.

Microsoft Identity Platform stöder utfärdande av token-versioner från alla versions slut punkter – de är inte relaterade.The Microsoft identity platform supports issuing any token version from any version endpoint - they are not related. Det är därför en resurs inställning accessTokenAcceptedVersion som 2 innebär att en klient som anropar en v 1.0-slutpunkt för att hämta en token för detta API får en v 2.0-åtkomsttoken.This is why a resource setting accessTokenAcceptedVersion to 2 means that a client calling the v1.0 endpoint to get a token for that API will receive a v2.0 access token. Resurserna äger alltid sina tokens (de med deras aud anspråk) och är de enda program som kan ändra deras token-information.Resources always own their tokens (those with their aud claim) and are the only applications that can change their token details. Detta är varför ändring av valfria anspråk för åtkomsttoken för din klient inte ändrar den åtkomsttoken som tas emot när en token begärs för user.read , som ägs av Microsoft Graph resursen.This is why changing the access token optional claims for your client does not change the access token received when a token is requested for user.read, which is owned by the Microsoft Graph resource.

Exempel-tokenSample tokens

v 1.0-och v 2.0-token ser likadana ut och innehåller många av samma anspråk.v1.0 and v2.0 tokens look similar and contain many of the same claims. Ett exempel på detta finns här.An example of each is provided here. Dessa exempel-token kommer inte att verifieras, eftersom nycklarna har roterats innan publicering och personlig information har tagits bort från dem.These example tokens will not validate, however, as the keys have rotated prior to publication and personal information has been removed from them.

V1.0v1.0

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiJlZjFkYTlkNC1mZjc3LTRjM2UtYTAwNS04NDBjM2Y4MzA3NDUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTUyMjIyOS8iLCJpYXQiOjE1MzcyMzMxMDYsIm5iZiI6MTUzNzIzMzEwNiwiZXhwIjoxNTM3MjM3MDA2LCJhY3IiOiIxIiwiYWlvIjoiQVhRQWkvOElBQUFBRm0rRS9RVEcrZ0ZuVnhMaldkdzhLKzYxQUdyU091TU1GNmViYU1qN1hPM0libUQzZkdtck95RCtOdlp5R24yVmFUL2tES1h3NE1JaHJnR1ZxNkJuOHdMWG9UMUxrSVorRnpRVmtKUFBMUU9WNEtjWHFTbENWUERTL0RpQ0RnRTIyMlRJbU12V05hRU1hVU9Uc0lHdlRRPT0iLCJhbXIiOlsid2lhIl0sImFwcGlkIjoiNzVkYmU3N2YtMTBhMy00ZTU5LTg1ZmQtOGMxMjc1NDRmMTdjIiwiYXBwaWRhY3IiOiIwIiwiZW1haWwiOiJBYmVMaUBtaWNyb3NvZnQuY29tIiwiZmFtaWx5X25hbWUiOiJMaW5jb2xuIiwiZ2l2ZW5fbmFtZSI6IkFiZSAoTVNGVCkiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMjIyNDcvIiwiaXBhZGRyIjoiMjIyLjIyMi4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJvaWQiOiIwMjIyM2I2Yi1hYTFkLTQyZDQtOWVjMC0xYjJiYjkxOTQ0MzgiLCJyaCI6IkkiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJsM19yb0lTUVUyMjJiVUxTOXlpMmswWHBxcE9pTXo1SDNaQUNvMUdlWEEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6ImFiZWxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJGVnNHeFlYSTMwLVR1aWt1dVVvRkFBIiwidmVyIjoiMS4wIn0.D3H6pMUtQnoJAGq6AHd

Visa den här v 1.0-token i JWT.MS.View this v1.0 token in JWT.ms.

v2.0v2.0

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiI2ZTc0MTcyYi1iZTU2LTQ4NDMtOWZmNC1lNjZhMzliYjEyZTMiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE1MzcyMzEwNDgsIm5iZiI6MTUzNzIzMTA0OCwiZXhwIjoxNTM3MjM0OTQ4LCJhaW8iOiJBWFFBaS84SUFBQUF0QWFaTG8zQ2hNaWY2S09udHRSQjdlQnE0L0RjY1F6amNKR3hQWXkvQzNqRGFOR3hYZDZ3TklJVkdSZ2hOUm53SjFsT2NBbk5aY2p2a295ckZ4Q3R0djMzMTQwUmlvT0ZKNGJDQ0dWdW9DYWcxdU9UVDIyMjIyZ0h3TFBZUS91Zjc5UVgrMEtJaWpkcm1wNjlSY3R6bVE9PSIsImF6cCI6IjZlNzQxNzJiLWJlNTYtNDg0My05ZmY0LWU2NmEzOWJiMTJlMyIsImF6cGFjciI6IjAiLCJuYW1lIjoiQWJlIExpbmNvbG4iLCJvaWQiOiI2OTAyMjJiZS1mZjFhLTRkNTYtYWJkMS03ZTRmN2QzOGU0NzQiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhYmVsaUBtaWNyb3NvZnQuY29tIiwicmgiOiJJIiwic2NwIjoiYWNjZXNzX2FzX3VzZXIiLCJzdWIiOiJIS1pwZmFIeVdhZGVPb3VZbGl0anJJLUtmZlRtMjIyWDVyclYzeERxZktRIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidXRpIjoiZnFpQnFYTFBqMGVRYTgyUy1JWUZBQSIsInZlciI6IjIuMCJ9.pj4N-w_3Us9DrBLfpCt

Visa den här v 2.0-token i JWT.MS.View this v2.0 token in JWT.ms.

Anspråk i åtkomsttokenClaims in access tokens

JWTs (JSON Web tokens) delas upp i tre delar:JWTs (JSON Web Tokens) are split into three pieces:

  • Header – innehåller information om hur du validerar token inklusive information om typen av token och hur den signerades.Header - Provides information about how to validate the token including information about the type of token and how it was signed.
  • Nytto Last – innehåller alla viktiga data om användaren eller appen som försöker anropa tjänsten.Payload - Contains all of the important data about the user or app that is attempting to call your service.
  • Signatur – är det råmaterial som används för att validera token.Signature - Is the raw material used to validate the token.

Varje del är avgränsat med en punkt ( . ) och en separat Base64-kodad.Each piece is separated by a period (.) and separately Base64 encoded.

Anspråk finns bara om det finns ett värde för att fylla det.Claims are present only if a value exists to fill it. Appen bör inte ta ett beroende på ett anspråk som finns.Your app shouldn't take a dependency on a claim being present. Exemplen inkluderar pwd_exp (inte alla klienter kräver att lösen ord upphör att gälla) och family_name (flöden förklientautentiseringsuppgifter är för program som inte har namn).Examples include pwd_exp (not every tenant requires passwords to expire) and family_name (client credential flows are on behalf of applications which don't have names). Anspråk som används för verifiering av åtkomst-token är alltid tillgängliga.Claims used for access token validation will always be present.

Vissa anspråk används för att hjälpa Azure AD-säkra tokens i händelse av åter användning.Some claims are used to help Azure AD secure tokens in case of reuse. Dessa markeras som icke-offentliga konsumtion i beskrivningen som "täckande".These are marked as not being for public consumption in the description as "Opaque". Dessa anspråk kan komma att visas i en token, och nya kan läggas till utan föregående meddelande.These claims may or may not appear in a token, and new ones may be added without notice.

Huvud anspråkHeader claims

BegärClaim FormatFormat BeskrivningDescription
typ Sträng-Always-JWTString - always "JWT" Anger att token är en JWT.Indicates that the token is a JWT.
nonce SträngString En unik identifierare som används för att skydda mot repetitions attacker med token.A unique identifier used to protect against token replay attacks. Din resurs kan registrera det här värdet för att skydda mot uppspelningar.Your resource can record this value to protect against replays.
alg SträngString Anger algoritmen som användes för att signera token, till exempel "RS256"Indicates the algorithm that was used to sign the token, for example, "RS256"
kid SträngString Anger tumavtrycket för den offentliga nyckel som används för att signera denna token.Specifies the thumbprint for the public key that's used to sign this token. Genereras i både v 1.0-och v 2.0-åtkomsttoken.Emitted in both v1.0 and v2.0 access tokens.
x5t SträngString Fungerar på samma sätt (används och värdet) som kid .Functions the same (in use and value) as kid. x5t är ett äldre anspråk som endast har genererats i v 1.0-åtkomsttoken för kompatibilitet.x5t is a legacy claim emitted only in v1.0 access tokens for compatibility purposes.

Nytto Last anspråkPayload claims

BegärClaim FormatFormat BeskrivningDescription
aud Sträng, app-ID-URI eller GUIDString, an App ID URI or GUID Identifierar den avsedda mottagaren för token – dess mål grupp.Identifies the intended recipient of the token - its audience. Ditt API bör validera det här värdet och avvisa token om värdet inte matchar.Your API should validate this value and reject the token if the value doesn't match. I v 2.0-token är detta alltid klient-ID för API: et, men i v 1.0-token kan det vara klient-ID: t eller resurs-URI: n som används i begäran, beroende på hur klienten begärde token.In v2.0 tokens, this is always the client ID of the API, while in v1.0 tokens it can be the client ID or the resource URI used in the request, depending on how the client requested the token.
iss Sträng, en STS-URIString, an STS URI Identifierar säkerhetstokentjänst som konstruerar och returnerar token och Azure AD-klienten där användaren autentiserades.Identifies the security token service (STS) that constructs and returns the token, and the Azure AD tenant in which the user was authenticated. Om token som utfärdas är en v 2.0-token (se ver anspråket) avslutas URI: n /v2.0 .If the token issued is a v2.0 token (see the ver claim), the URI will end in /v2.0. GUID som anger att användaren är en konsument användare från en Microsoft-konto 9188040d-6c67-4c5b-b112-36a304b66dad .The GUID that indicates that the user is a consumer user from a Microsoft account is 9188040d-6c67-4c5b-b112-36a304b66dad. Din app kan använda en GUID-del av anspråket för att begränsa den uppsättning innehavare som kan logga in på appen, om tillämpligt.Your app can use the GUID portion of the claim to restrict the set of tenants that can sign in to the app, if applicable.
idp Sträng, vanligt vis en STS-URIString, usually an STS URI Registrerar den identitetsprovider som har autentiserat subjektet för token.Records the identity provider that authenticated the subject of the token. Värdet är identiskt med värdet för Issuer-anspråket om inte användar kontot inte finns i samma klient organisation som utfärdaren-gäster, till exempel.This value is identical to the value of the Issuer claim unless the user account not in the same tenant as the issuer - guests, for instance. Om anspråket inte finns, innebär det att värdet för iss kan användas i stället.If the claim isn't present, it means that the value of iss can be used instead. För personliga konton som används i en organisations kontext (till exempel ett personligt konto som bjudits in till en Azure AD-klient) idp kan anspråk vara "Live.com" eller en STS-URI som innehåller Microsoft-konto klient 9188040d-6c67-4c5b-b112-36a304b66dad .For personal accounts being used in an organizational context (for instance, a personal account invited to an Azure AD tenant), the idp claim may be 'live.com' or an STS URI containing the Microsoft account tenant 9188040d-6c67-4c5b-b112-36a304b66dad.
iat int, en UNIX-tidsstämpelint, a UNIX timestamp "Utfärdat vid" anger när autentiseringen för denna token ägde rum."Issued At" indicates when the authentication for this token occurred.
nbf int, en UNIX-tidsstämpelint, a UNIX timestamp Anspråket "NBF" (inte före) anger hur lång tid som JWT inte får godkännas för bearbetning.The "nbf" (not before) claim identifies the time before which the JWT must not be accepted for processing.
exp int, en UNIX-tidsstämpelint, a UNIX timestamp Anspråket "EXP" (förfallo tid) anger förfallo tid för eller efter vilken JWT inte får godkännas för bearbetning.The "exp" (expiration time) claim identifies the expiration time on or after which the JWT must not be accepted for processing. Det är viktigt att Observera att en resurs kanske avvisar token före den här tiden, till exempel när en ändring i autentisering krävs eller om ett token återkallning har upptäckts.It's important to note that a resource may reject the token before this time as well, such as when a change in authentication is required or a token revocation has been detected.
aio Ogenomskinlig strängOpaque String Ett internt anspråk som används av Azure AD för att registrera data för åter användning av token.An internal claim used by Azure AD to record data for token reuse. Resurserna bör inte använda detta påstående.Resources should not use this claim.
acr Sträng, "0" eller "1"String, a "0" or "1" Förekommer endast i v 1.0-token.Only present in v1.0 tokens. Anspråket "autentiserings kontext klass".The "Authentication context class" claim. Värdet "0" anger att slutanvändaren inte uppfyller kraven i ISO/IEC 29115.A value of "0" indicates the end-user authentication did not meet the requirements of ISO/IEC 29115.
amr JSON-matris med strängarJSON array of strings Förekommer endast i v 1.0-token.Only present in v1.0 tokens. Anger hur ämnet för token autentiserades.Identifies how the subject of the token was authenticated. Mer information finns i avsnittet om AMR-anspråk .See the amr claim section for more details.
appid Sträng, ett GUIDString, a GUID Förekommer endast i v 1.0-token.Only present in v1.0 tokens. Program-ID för klienten med hjälp av token.The application ID of the client using the token. Programmet kan fungera som fristående eller för en användares räkning.The application can act as itself or on behalf of a user. Program-ID: t representerar vanligt vis ett program objekt, men det kan även representera ett tjänst objekt i Azure AD.The application ID typically represents an application object, but it can also represent a service principal object in Azure AD.
azp Sträng, ett GUIDString, a GUID Finns bara i v 2.0-token, ersättning för appid .Only present in v2.0 tokens, a replacement for appid. Program-ID för klienten med hjälp av token.The application ID of the client using the token. Programmet kan fungera som fristående eller för en användares räkning.The application can act as itself or on behalf of a user. Program-ID: t representerar vanligt vis ett program objekt, men det kan även representera ett tjänst objekt i Azure AD.The application ID typically represents an application object, but it can also represent a service principal object in Azure AD.
appidacr "0", "1" eller "2""0", "1", or "2" Förekommer endast i v 1.0-token.Only present in v1.0 tokens. Anger hur klienten autentiserades.Indicates how the client was authenticated. För en offentlig klient är värdet "0".For a public client, the value is "0". Om klient-ID och klient hemlighet används är värdet "1".If client ID and client secret are used, the value is "1". Om ett klient certifikat användes för autentisering är värdet "2".If a client certificate was used for authentication, the value is "2".
azpacr "0", "1" eller "2""0", "1", or "2" Finns bara i v 2.0-token, ersättning för appidacr .Only present in v2.0 tokens, a replacement for appidacr. Anger hur klienten autentiserades.Indicates how the client was authenticated. För en offentlig klient är värdet "0".For a public client, the value is "0". Om klient-ID och klient hemlighet används är värdet "1".If client ID and client secret are used, the value is "1". Om ett klient certifikat användes för autentisering är värdet "2".If a client certificate was used for authentication, the value is "2".
preferred_username SträngString Det primära användar namnet som representerar användaren.The primary username that represents the user. Det kan vara en e-postadress, ett telefonnummer eller ett generiskt användar namn utan angivet format.It could be an email address, phone number, or a generic username without a specified format. Värdet är föränderligt och kan ändras med tiden.Its value is mutable and might change over time. Eftersom det är föränderligt får inte det här värdet användas för att fatta auktoriseringsbeslut.Since it is mutable, this value must not be used to make authorization decisions. Den kan användas för användar tips, men i ett läsbart användar gränssnitt som användar namn.It can be used for username hints, however, and in human-readable UI as a username. profileOmfånget krävs för att kunna ta emot detta anspråk.The profile scope is required in order to receive this claim. Förekommer endast i v 2.0-token.Present only in v2.0 tokens.
name SträngString Ger ett läsligt värde som identifierar ämnet för token.Provides a human-readable value that identifies the subject of the token. Värdet är inte garanterat unikt, det är föränderligt och har utformats för att endast användas i visnings syfte.The value is not guaranteed to be unique, it is mutable, and it's designed to be used only for display purposes. profileOmfånget krävs för att kunna ta emot detta anspråk.The profile scope is required in order to receive this claim.
scp Sträng, en blankstegsavgränsad lista över omfångString, a space separated list of scopes Den uppsättning omfång som exponeras av ditt program för vilket klient programmet har begärt (och fått) medgivande.The set of scopes exposed by your application for which the client application has requested (and received) consent. Din app bör kontrol lera att dessa omfattningar är giltiga för de som exponeras av din app och fatta auktoriseringsbeslut baserat på värdet för dessa omfång.Your app should verify that these scopes are valid ones exposed by your app, and make authorization decisions based on the value of these scopes. Ingår endast för användartoken.Only included for user tokens.
roles Sträng mat ris, en lista med behörigheterArray of strings, a list of permissions Den uppsättning behörigheter som exponeras av ditt program som det begär ande programmet eller användaren har fått behörighet att anropa.The set of permissions exposed by your application that the requesting application or user has been given permission to call. För Application-tokenanvänds detta under flödet för klientens autentiseringsuppgifter (v 1.0, v 2.0) i stället för användar omfattningar.For application tokens, this is used during the client credential flow (v1.0, v2.0) in place of user scopes. För användar-tokens fylls detta med de roller som användaren har tilldelats på mål programmet.For user tokens this is populated with the roles the user was assigned to on the target application.
wids Matris med RoleTemplateID -GUIDArray of RoleTemplateID GUIDs Anger de roller för klienter som tilldelats den här användaren, från avsnittet av roller som finns i inbyggda Azure AD-roller.Denotes the tenant-wide roles assigned to this user, from the section of roles present in Azure AD built-in roles. Detta anspråk har kon figurer ATS per program, via groupMembershipClaims egenskapen för applikations manifestet.This claim is configured on a per-application basis, through the groupMembershipClaims property of the application manifest. Inställningen "alla" eller "DirectoryRole" krävs.Setting it to "All" or "DirectoryRole" is required. Kanske inte finns i token som erhållits via det implicita flödet på grund av frågor om token-längd.May not be present in tokens obtained through the implicit flow due to token length concerns.
groups JSON-matris med GUIDJSON array of GUIDs Tillhandahåller objekt-ID: n som representerar ämnets grupp medlemskap.Provides object IDs that represent the subject's group memberships. Dessa värden är unika (se objekt-ID) och kan användas på ett säkert sätt för att hantera åtkomst, t. ex. för att tvinga behörighet att få åtkomst till en resurs.These values are unique (see Object ID) and can be safely used for managing access, such as enforcing authorization to access a resource. Grupperna som ingår i gruppen grupper har kon figurer ATS per tillämpning via groupMembershipClaims program Manifestetsegenskap.The groups included in the groups claim are configured on a per-application basis, through the groupMembershipClaims property of the application manifest. Värdet null utesluter alla grupper, värdet "SecurityGroup" kommer bara att innehålla Active Directory medlemskap i säkerhets grupper och värdet "alla" omfattar både säkerhets grupper och Microsoft 365 distributions listor.A value of null will exclude all groups, a value of "SecurityGroup" will include only Active Directory Security Group memberships, and a value of "All" will include both Security Groups and Microsoft 365 Distribution Lists.

I hasgroups anspråket nedan finns mer information om hur du använder groups anspråk med implicit beviljande.See the hasgroups claim below for details on using the groups claim with the implicit grant.
För andra flöden, om antalet grupper som användaren finns över en gräns (150 för SAML, 200 för JWT), läggs ett överbelastnings anspråk till i anspråks källorna som pekar på Microsoft Graph slut punkten som innehåller listan över grupper för användaren.For other flows, if the number of groups the user is in goes over a limit (150 for SAML, 200 for JWT), then an overage claim will be added to the claim sources pointing at the Microsoft Graph endpoint containing the list of groups for the user.
hasgroups BooleskBoolean Om det finns en sådan måste true användaren vara i minst en grupp.If present, always true, denoting the user is in at least one group. Används i stället för groups anspråket för JWTs i implicita bidrags flöden om det fullständiga grupp kravet skulle utöka URI-fragmentet över gränserna för URL-längd (för närvarande 6 eller flera grupper).Used in place of the groups claim for JWTs in implicit grant flows if the full groups claim would extend the URI fragment beyond the URL length limits (currently 6 or more groups). Anger att klienten ska använda Microsoft Graph API för att fastställa användarens grupper ( https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects ).Indicates that the client should use the Microsoft Graph API to determine the user's groups (https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects).
groups:src1 JSON-objektJSON object För Tokenbegäran som inte är begränsade (se hasgroups ovan) men fortfarande är för stora för token kommer en länk till listan över fullständiga grupper för användaren att inkluderas.For token requests that are not length limited (see hasgroups above) but still too large for the token, a link to the full groups list for the user will be included. För JWTs som ett distribuerat anspråk för SAML som ett nytt anspråk i stället för groups anspråket.For JWTs as a distributed claim, for SAML as a new claim in place of the groups claim.

Exempel-JWT-värde:Example JWT Value:
"groups":"src1"
"_claim_sources: "src1" : { "endpoint" : "https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects" }"_claim_sources: "src1" : { "endpoint" : "https://graph.microsoft.com/v1.0/users/{userID}/getMemberObjects" }
sub SträngString Den huvudprincip som token förutsätter information för, t. ex. användaren av en app.The principal about which the token asserts information, such as the user of an app. Värdet är oföränderligt och kan inte tilldelas om eller återanvändas.This value is immutable and cannot be reassigned or reused. Den kan användas för att utföra verifierings kontroller på ett säkert sätt, till exempel när token används för att få åtkomst till en resurs och kan användas som en nyckel i databas tabeller.It can be used to perform authorization checks safely, such as when the token is used to access a resource, and can be used as a key in database tables. Eftersom ämnet alltid finns i de tokens som Azure AD utfärdar rekommenderar vi att du använder det här värdet i ett system för generell behörighet.Because the subject is always present in the tokens that Azure AD issues, we recommend using this value in a general-purpose authorization system. Ämnet är dock unikt för ett visst program-ID.The subject is, however, a pairwise identifier - it is unique to a particular application ID. Om en enskild användare loggar in i två olika appar med två olika klient-ID: er, kommer dessa appar att få två olika värden för ämnes anspråket.Therefore, if a single user signs into two different apps using two different client IDs, those apps will receive two different values for the subject claim. Detta kan vara något behov av, beroende på dina krav på arkitektur och sekretess.This may or may not be desired depending on your architecture and privacy requirements. Se även oid anspråket (som förblir detsamma i alla appar i en klient).See also the oid claim (which does remain the same across apps within a tenant).
oid Sträng, ett GUIDString, a GUID Den oföränderliga identifieraren för "huvud namn" för begäran – användaren eller tjänstens huvud namn vars identitet har verifierats.The immutable identifier for the "principal" of the request - the user or service principal whose identity has been verified. I ID-token och app + User tokens är detta objekt-ID för användaren.In ID tokens and app+user tokens, this is the object ID of the user. I endast app-tokens är det objekt-ID: t för det anropande tjänstens huvud namn.In app-only tokens, this is the object id of the calling service principal. Det kan också användas för att utföra verifierings kontroller på ett säkert sätt och som en nyckel i databas tabeller.It can also be used to perform authorization checks safely and as a key in database tables. Detta ID identifierar unikt huvud gruppen mellan program – två olika program som loggar in på samma användare får samma värde i oid anspråket.This ID uniquely identifies the principal across applications - two different applications signing in the same user will receive the same value in the oid claim. Detta oid kan användas när du skapar frågor till Microsoft onlinetjänster, till exempel Microsoft Graph.Thus, oid can be used when making queries to Microsoft online services, such as the Microsoft Graph. Microsoft Graph returnerar detta ID som id egenskap för ett angivet användar konto.The Microsoft Graph will return this ID as the id property for a given user account. Eftersom oid tillåter flera appar att korrelera huvud konton profile krävs omfånget för att kunna ta emot detta anspråk för användare.Because the oid allows multiple apps to correlate principals, the profile scope is required in order to receive this claim for users. Observera att om en enskild användare finns i flera klienter, kommer användaren att innehålla ett annat objekt-ID i varje klient – de betraktas som olika konton, även om användaren loggar in på varje konto med samma autentiseringsuppgifter.Note that if a single user exists in multiple tenants, the user will contain a different object ID in each tenant - they are considered different accounts, even though the user logs into each account with the same credentials.
tid Sträng, ett GUIDString, a GUID Representerar den Azure AD-klient som användaren är från.Represents the Azure AD tenant that the user is from. För arbets-och skol konton är GUID det oåterkalleliga klient-ID: t för den organisation som användaren tillhör.For work and school accounts, the GUID is the immutable tenant ID of the organization that the user belongs to. För personliga konton är värdet 9188040d-6c67-4c5b-b112-36a304b66dad .For personal accounts, the value is 9188040d-6c67-4c5b-b112-36a304b66dad. profileOmfånget krävs för att kunna ta emot detta anspråk.The profile scope is required in order to receive this claim.
unique_name SträngString Förekommer endast i v 1.0-token.Only present in v1.0 tokens. Innehåller ett läsbart värde som identifierar subjektet för token.Provides a human readable value that identifies the subject of the token. Det här värdet är inte garanterat unikt inom en klient organisation och bör endast användas för visning.This value is not guaranteed to be unique within a tenant and should be used only for display purposes.
uti Ogenomskinlig strängOpaque String Ett internt anspråk som används av Azure för att omverifiera token.An internal claim used by Azure to revalidate tokens. Resurserna bör inte använda det här anspråket.Resources shouldn't use this claim.
rh Ogenomskinlig strängOpaque String Ett internt anspråk som används av Azure för att omverifiera token.An internal claim used by Azure to revalidate tokens. Resurserna bör inte använda detta påstående.Resources should not use this claim.
ver Sträng, antingen 1.0 eller 2.0String, either 1.0 or 2.0 Anger versionen för åtkomsttoken.Indicates the version of the access token.

Gruppera överliggande anspråkGroups overage claim

För att säkerställa att token-storleken inte överskrider storleks gränserna för HTTP-huvudet begränsar Azure AD antalet objekt-ID: n som ingår i grupp anspråket.To ensure that the token size doesn't exceed HTTP header size limits, Azure AD limits the number of object IDs that it includes in the groups claim. Om en användare är medlem i fler grupper än överkvoten (150 för SAML-tokens, 200 för JWT-token och bara 6 om den har utfärdats via det implicita flödet), genererar inte Azure AD grupp anspråket i token.If a user is member of more groups than the overage limit (150 for SAML tokens, 200 for JWT tokens, and only 6 if issued via the implicit flow), then Azure AD does not emit the groups claim in the token. I stället innehåller den ett överanvändning-anspråk i token som indikerar att programmet ska fråga Microsoft Graph-API: et för att hämta användarens grupp medlemskap.Instead, it includes an overage claim in the token that indicates to the application to query the Microsoft Graph API to retrieve the user's group membership.

{
  ...
  "_claim_names": {
   "groups": "src1"
    },
    {
  "_claim_sources": {
    "src1": {
        "endpoint":"[Url to get this user's group membership from]"
        }
       }
     }
  ...
}

Du kan använda den BulkCreateGroups.ps1 som finns i mappen skript för att Skapa appar för att testa överanvändnings scenarier.You can use the BulkCreateGroups.ps1 provided in the App Creation Scripts folder to help test overage scenarios.

v 1.0 Basic-anspråkv1.0 basic claims

Följande anspråk kommer att ingå i v 1.0-token om det är tillämpligt, men inte ingår i v 2.0-token som standard.The following claims will be included in v1.0 tokens if applicable, but aren't included in v2.0 tokens by default. Om du använder v 2.0 och behöver någon av dessa anspråk kan du begära dem med valfria anspråk.If you're using v2.0 and need one of these claims, request them using optional claims.

BegärClaim FormatFormat BeskrivningDescription
ipaddr SträngString IP-adressen som användaren autentiseras från.The IP address the user authenticated from.
onprem_sid Sträng, i sid-formatString, in SID format I de fall där användaren har en lokal autentisering, ger detta anspråk sitt SID.In cases where the user has an on-premises authentication, this claim provides their SID. Du kan använda onprem_sid för auktorisering i äldre program.You can use onprem_sid for authorization in legacy applications.
pwd_exp int, en UNIX-tidsstämpelint, a UNIX timestamp Anger när användarens lösen ord upphör att gälla.Indicates when the user's password expires.
pwd_url SträngString En URL där användare kan skickas för att återställa sina lösen ord.A URL where users can be sent to reset their password.
in_corp booleanboolean Signalerar om klienten loggar in från företags nätverket.Signals if the client is logging in from the corporate network. Om de inte är det inkluderas inte anspråket.If they aren't, the claim isn't included.
nickname SträngString Ett ytterligare namn för användaren, separat från förnamn eller efter namn.An additional name for the user, separate from first or last name.
family_name SträngString Innehåller användarens efter namn, efter namn eller familje namn som definierats på användarobjektet.Provides the last name, surname, or family name of the user as defined on the user object.
given_name SträngString Innehåller det första eller det angivna namnet på användaren, som anges på användarobjektet.Provides the first or given name of the user, as set on the user object.
upn SträngString Användarens användar namn.The username of the user. Kan vara ett telefonnummer, en e-postadress eller en oformaterad sträng.May be a phone number, email address, or unformatted string. Bör endast användas för att visa och tillhandahålla användar tips i omautentiserings scenarier.Should only be used for display purposes and providing username hints in reauthentication scenarios.

amrAnspråketThe amr claim

Microsoft-identiteter kan autentiseras på olika sätt, vilket kan vara relevant för ditt program.Microsoft identities can authenticate in different ways, which may be relevant to your application. amrAnspråket är en matris som kan innehålla flera objekt, till exempel ["mfa", "rsa", "pwd"] för en autentisering som har använt både ett lösen ord och Authenticator-appen.The amr claim is an array that can contain multiple items, such as ["mfa", "rsa", "pwd"], for an authentication that used both a password and the Authenticator app.

VärdeValue BeskrivningDescription
pwd Lösenordsautentisering, antingen användarens Microsoft-lösenord eller en Apps klient hemlighet.Password authentication, either a user's Microsoft password or an app's client secret.
rsa Autentiseringen baseras på beviset för en RSA-nyckel, till exempel med Microsoft Authenticator-appen.Authentication was based on the proof of an RSA key, for example with the Microsoft Authenticator app. Detta inkluderar om autentiseringen utfördes av ett självsignerat JWT med ett tjänst ägda X509-certifikat.This includes if authentication was done by a self-signed JWT with a service owned X509 certificate.
otp Eng ång slö sen ord med ett e-postmeddelande eller ett SMS.One-time passcode using an email or a text message.
fed En försäkrad federerad autentisering (till exempel JWT eller SAML) användes.A federated authentication assertion (such as JWT or SAML) was used.
wia Windows-integrerad autentiseringWindows Integrated Authentication
mfa Multi-Factor Authentication användes.Multi-factor authentication was used. När detta är tillgängligt kommer även andra autentiseringsmetoder att tas med.When this is present the other authentication methods will also be included.
ngcmfa Likvärdigt med mfa , används för etablering av vissa typer av avancerade autentiseringsuppgifter.Equivalent to mfa, used for provisioning of certain advanced credential types.
wiaormfa Användaren använde Windows eller en MFA-autentiseringsuppgift för att autentisera.The user used Windows or an MFA credential to authenticate.
none Ingen autentisering har gjorts.No authentication was done.

Livstid för åtkomsttokenAccess token lifetime

Standard livs längden för en åtkomsttoken varierar beroende på vilket klient program som begär token.The default lifetime of an access token varies, depending on the client application requesting the token. Till exempel kan klienter med kontinuerlig åtkomst utvärdering (CAE) som förhandlar om CAE-medvetna sessioner se en lång livs längd för token för livs längd (upp till 28 timmar).For example, continuous access evaluation (CAE) capable clients that negotiate CAE-aware sessions will see a long lived token lifetime (up to 28 hours). När åtkomsttoken upphör att gälla måste klienten använda uppdateringstoken till (normalt tyst) Hämta en ny uppdateringstoken och åtkomsttoken.When the access token expires, the client must use the refresh token to (usually silently) acquire a new refresh token and access token.

Du kan justera livs längden för en åtkomsttoken för att kontrol lera hur ofta klient programmet förfaller programsessionen och hur ofta användaren måste autentiseras på nytt (tyst eller interaktivt).You can adjust the lifetime of an access token to control how often the client application expires the application session, and how often it requires the user to re-authenticate (either silently or interactively). Mer information finns i avsnittet om livstider för att konfigurera token.For more information, read Configurable token lifetimes.

Validerar tokenValidating tokens

Alla appar bör inte validera tokens.Not all apps should validate tokens. Endast i vissa scenarier ska appar verifiera en token:Only in specific scenarios should apps validate a token:

  • Webb-API: er måste verifiera åtkomsttoken som skickas till dem av en klient.Web APIs must validate access tokens sent to them by a client. De får bara acceptera tokens som innehåller deras aud anspråk.They must only accept tokens containing their aud claim.
  • Konfidentiella webbappar som ASP.NET Core måste verifiera ID-token som skickas till dem via användarens webbläsare i hybrid flödet innan åtkomst till en användares data eller upprättas.Confidential web apps like ASP.NET Core must validate ID tokens sent to them via the user's browser in the hybrid flow, before allowing access to a user's data or establishing a session.

Om inget av ovanstående scenarier tillämpas, kommer ditt program inte att ha nytta av att verifiera token och kan utgöra en säkerhets-och Tillförlitlighets risk om beslut fattas utifrån tokens giltighet.If none of the above scenarios apply, your application will not benefit from validating the token, and may present a security and reliability risk if decisions are made based on the validity of the token. Offentliga klienter som inbyggda appar eller SPAs drar inte nytta av att validera token – appen kommunicerar direkt med IDP, så SSL-skyddet garanterar att token är giltiga.Public clients like native apps or SPAs don't benefit from validating tokens - the app communicates directly with the IDP, so SSL protection ensures the tokens are valid.

API: er och webbappar måste bara verifiera token som har ett aud anspråk som matchar deras program. andra resurser kan ha anpassade verifierings regler för token.APIs and web apps must only validate tokens that have an aud claim that matches their application; other resources may have custom token validation rules. Token för Microsoft Graph kan till exempel inte val IDE ras enligt dessa regler på grund av sitt eget format.For example, tokens for Microsoft Graph won't validate according to these rules due to their proprietary format. Att verifiera och acceptera token som är avsedda för en annan resurs är ett exempel på problem med förvirrande vice .Validating and accepting tokens meant for another resource is an example of the confused deputy problem.

Om ditt program behöver verifiera en id_token eller en access_token enligt ovan, bör din app först verifiera token signatur och utfärdare mot värdena i OpenID identifierings dokument.If your application needs to validate an id_token or an access_token according to the above, your app should first validate the token's signature and issuer against the values in the OpenID discovery document. Till exempel finns den klient oberoende versionen av dokumentet på https://login.microsoftonline.com/common/.well-known/openid-configuration .For example, the tenant-independent version of the document is located at https://login.microsoftonline.com/common/.well-known/openid-configuration.

Följande information finns för de som vill förstå den underliggande processen.The following information is provided for those who wish to understand the underlying process. Azure AD-har inbyggda funktioner för att verifiera åtkomsttoken och du kan bläddra igenom våra exempel för att hitta ett på valfritt språk.The Azure AD middleware has built-in capabilities for validating access tokens, and you can browse through our samples to find one in the language of your choice. Det finns även flera tredjeparts bibliotek med öppen källkod som är tillgängliga för JWT-validering. det finns minst ett alternativ för nästan alla plattformar och språk.There are also several third-party open-source libraries available for JWT validation - there is at least one option for almost every platform and language. Mer information om Azure AD-autentiseringspaket och kod exempel finns i autentiseringsinställningarnaför.For more information about Azure AD authentication libraries and code samples, see the authentication libraries.

Verifiera signaturenValidating the signature

En JWT innehåller tre segment, som avgränsas med . specialtecknet.A JWT contains three segments, which are separated by the . character. Det första segmentet kallas sidhuvud, det andra som bröd texten och det tredje som signaturen.The first segment is known as the header, the second as the body, and the third as the signature. Du kan använda signatur segmentet för att verifiera tokens äkthet så att den kan vara betrodd av din app.The signature segment can be used to validate the authenticity of the token so that it can be trusted by your app.

Token som utfärdas av Azure AD är signerade med algoritmer för asymmetrisk kryptering i bransch standard, till exempel RS256.Tokens issued by Azure AD are signed using industry standard asymmetric encryption algorithms, such as RS256. Huvud-i-JWT-filen innehåller information om nyckeln och krypterings metoden som används för att signera token:The header of the JWT contains information about the key and encryption method used to sign the token:

{
  "typ": "JWT",
  "alg": "RS256",
  "x5t": "iBjL1Rcqzhiy4fpxIxdZqohM2Yk",
  "kid": "iBjL1Rcqzhiy4fpxIxdZqohM2Yk"
}

algAnspråket anger algoritmen som användes för att signera token, medan kid anspråket anger den särskilda offentliga nyckel som användes för att validera token.The alg claim indicates the algorithm that was used to sign the token, while the kid claim indicates the particular public key that was used to validate the token.

Vid en viss tidpunkt kan Azure AD signera en id_token med en viss uppsättning offentliga privata nyckel par.At any given point in time, Azure AD may sign an id_token using any one of a certain set of public-private key pairs. Azure AD roterar den möjliga uppsättningen nycklar regelbundet, så att din app kan skrivas för att hantera dessa ändringar automatiskt.Azure AD rotates the possible set of keys on a periodic basis, so your app should be written to handle those key changes automatically. En rimlig frekvens för att söka efter uppdateringar av de offentliga nycklar som används av Azure AD är var 24: e timme.A reasonable frequency to check for updates to the public keys used by Azure AD is every 24 hours.

Du kan hämta de signerings nyckel data som krävs för att validera signaturen med hjälp av OpenID Connect-Metadatadokumentet som finns på:You can acquire the signing key data necessary to validate the signature by using the OpenID Connect metadata document located at:

https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration

Tips

Prova denna URL i en webbläsare!Try this URL in a browser!

Detta dokument för metadata:This metadata document:

  • Är ett JSON-objekt som innehåller flera användbara informations delar, till exempel platsen för de olika slut punkter som krävs för att utföra OpenID Connect-autentisering.Is a JSON object containing several useful pieces of information, such as the location of the various endpoints required for doing OpenID Connect authentication.
  • Innehåller en jwks_uri , som ger platsen för uppsättningen offentliga nycklar som används för att signera token.Includes a jwks_uri, which gives the location of the set of public keys used to sign tokens. JSON-webbnyckeln (JWK) som finns i jwks_uri innehåller all information om den offentliga nyckeln som används just nu.The JSON Web Key (JWK) located at the jwks_uri contains all of the public key information in use at that particular moment in time. JWK-formatet beskrivs i RFC 7517.The JWK format is described in RFC 7517. Din app kan använda kid anspråket i JWT-huvudet för att välja vilken offentlig nyckel i det här dokumentet som har använts för att signera en viss token.Your app can use the kid claim in the JWT header to select which public key in this document has been used to sign a particular token. Den kan sedan utföra signaturverifiering med rätt offentlig nyckel och angiven algoritm.It can then do signature validation using the correct public key and the indicated algorithm.

Anteckning

Vi rekommenderar att du använder kid anspråk för att validera din token.We recommend using the kid claim to validate your token. Även om v 1.0-token innehåller x5t både kid -och-anspråken innehåller v 2.0-tokens endast kid anspråket.Though v1.0 tokens contain both the x5t and kid claims, v2.0 tokens contain only the kid claim.

Verifieringen av signaturen är utanför det här dokumentets omfång – det finns många bibliotek med öppen källkod som hjälper dig att göra det om det behövs.Doing signature validation is outside the scope of this document - there are many open-source libraries available for helping you do so if necessary. Men Microsoft Identity Platform har ett tillägg för Token-signering till standard-anpassade signerings nycklar.However, the Microsoft identity platform has one token signing extension to the standards - custom signing keys.

Om din app har anpassade signerings nycklar som ett resultat av funktionen för anspråks mappning måste du lägga till en appid frågeparameter som innehåller app-ID: t för att få ett jwks_uri peka på appens signerings nyckel information som ska användas för verifiering.If your app has custom signing keys as a result of using the claims-mapping feature, you must append an appid query parameter containing the app ID to get a jwks_uri pointing to your app's signing key information, which should be used for validation. Exempel: https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e innehåller en jwks_uri av https://login.microsoftonline.com/{tenant}/discovery/keys?appid=6731de76-14a6-49ae-97bc-6eba6914391e .For example: https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e contains a jwks_uri of https://login.microsoftonline.com/{tenant}/discovery/keys?appid=6731de76-14a6-49ae-97bc-6eba6914391e.

Anspråksbaserad auktoriseringClaims based authorization

Ditt programs affärs logik kommer att diktera det här steget, några vanliga autentiseringsmetoder anges nedan.Your application's business logic will dictate this step, some common authorization methods are laid out below.

  • Kontrol lera scp om roles -eller-anspråket kontrollerar att alla befintliga omfattningar matchar de som exponeras av ditt API och Tillåt att klienten utför den begärda åtgärden.Check the scp or roles claim to verify that all present scopes match those exposed by your API, and allow the client to do the requested action.
  • Se till att anrops klienten kan anropa ditt API med hjälp av appid anspråket.Ensure the calling client is allowed to call your API using the appid claim.
  • Verifiera autentiseringen för den anropande klienten med appidacr -den bör inte vara 0 om offentliga klienter inte tillåts anropa ditt API.Validate the authentication status of the calling client using appidacr - it shouldn't be 0 if public clients aren't allowed to call your API.
  • Kontrol lera mot en lista över tidigare nonce anspråk för att kontrol lera att token inte spelas upp.Check against a list of past nonce claims to verify the token isn't being replayed.
  • Kontrol lera att tid matchar en klient som har behörighet att anropa ditt API.Check that the tid matches a tenant that is allowed to call your API.
  • Använd amr anspråket för att verifiera att användaren har utfört MFA.Use the amr claim to verify the user has performed MFA. Detta bör tillämpas med villkorlig åtkomst.This should be enforced using Conditional Access.
  • Om du har begärt roles -eller groups -anspråk i åtkomsttoken kontrollerar du att användaren finns i gruppen som har behörighet att utföra den här åtgärden.If you've requested the roles or groups claims in the access token, verify that the user is in the group allowed to do this action.
    • För token som hämtats med det implicita flödet måste du förmodligen fråga Microsoft Graph efter dessa data, eftersom det ofta är för stort för att få plats i token.For tokens retrieved using the implicit flow, you'll likely need to query the Microsoft Graph for this data, as it's often too large to fit in the token.

Token för användare och programUser and application tokens

Ditt program kan ta emot token för användare (flödet som vanligt vis diskuteras) eller direkt från ett program (via flödet för klientens autentiseringsuppgifter).Your application may receive tokens for user (the flow usually discussed) or directly from an application (through the client credentials flow). Dessa app-only-token anger att det här anropet kommer från ett program och inte har en användare som säkerhetskopierar det.These app-only tokens indicate that this call is coming from an application and does not have a user backing it. Dessa tokens hanteras i stort sett samma:These tokens are handled largely the same:

  • Använd roles om du vill se behörigheter som har beviljats ämne för token.Use roles to see permissions that have been granted to the subject of the token.
  • Använd oid eller sub för att verifiera att den anropande tjänstens huvud namn är det förväntade ett.Use oid or sub to validate that the calling service principal is the expected one.

Om din app behöver skilja mellan appars åtkomst-tokens och åtkomsttoken för användare använder du det idtyp valfria anspråket.If your app needs to distinguish between app-only access tokens and access tokens for users, use the idtyp optional claim. Genom att lägga till idtyp anspråket i accessToken fältet och kontrol lera värdet app kan du identifiera endast app-Access-token.By adding the idtyp claim to the accessToken field, and checking for the value app, you can detect app-only access tokens. ID-tokens och åtkomsttoken för användare har inte idtyp anspråket som ingår.ID tokens and access tokens for users will not have the idtyp claim included.

Återkalla tokenToken revocation

Uppdaterings-token kan inaktive ras eller återkallas av olika skäl.Refresh tokens can be invalidated or revoked at any time, for different reasons. De delas in i två huvud kategorier: tids gränser och åter kallelser.These fall into two main categories: timeouts and revocations.

Timeout för tokenToken timeouts

Med konfiguration av livs längd för tokenkan du ändra livs längden för uppdaterade tokens.Using token lifetime configuration, the lifetime of refresh tokens can be altered. Det är normalt och förväntas att vissa token ska gå utan användning (t. ex. om användaren inte öppnar appen i tre månader) och därför upphör att gälla.It is normal and expected for some tokens to go without use (e.g. the user does not open the app for 3 months) and therefore expire. Appar kommer att stöta på scenarier där inloggnings servern avvisar en uppdateringstoken på grund av dess ålder.Apps will encounter scenarios where the login server rejects a refresh token due to its age.

  • MaxInactiveTime: om uppdateringstoken inte har använts inom den tid som bestäms av MaxInactiveTime, kommer uppdateringstoken inte längre att vara giltig.MaxInactiveTime: If the refresh token hasn't been used within the time dictated by the MaxInactiveTime, the Refresh Token will no longer be valid.
  • MaxSessionAge: om MaxAgeSessionMultiFactor eller MaxAgeSessionSingleFactor har angetts till något annat än standardvärdet (tills det har återkallats) krävs omautentisering efter att den tid som anges i MaxAgeSession * går ut.MaxSessionAge: If MaxAgeSessionMultiFactor or MaxAgeSessionSingleFactor have been set to something other than their default (Until-revoked), then reauthentication will be required after the time set in the MaxAgeSession* elapses.
  • Exempel:Examples:
    • Klienten har en MaxInactiveTime på fem dagar och användaren gick på semester i en vecka, och därför har Azure AD inte sett en ny Tokenbegäran från användaren om 7 dagar.The tenant has a MaxInactiveTime of five days, and the user went on vacation for a week, and so Azure AD hasn't seen a new token request from the user in 7 days. Nästa gång användaren begär en ny token hittar de en uppdateringstoken som har återkallats, och de måste ange sina autentiseringsuppgifter igen.The next time the user requests a new token, they'll find their Refresh Token has been revoked, and they must enter their credentials again.
    • Ett känsligt program har en MaxAgeSessionSingleFactor på en dag.A sensitive application has a MaxAgeSessionSingleFactor of one day. Om en användare loggar in på måndag och tisdag (efter 25 timmar har förflutit) måste de autentiseras igen.If a user logs in on Monday, and on Tuesday (after 25 hours have elapsed), they'll be required to reauthenticate.

ÅterkalladeRevocation

Uppdaterings-token kan återkallas av servern på grund av en ändring av autentiseringsuppgifter eller på grund av användnings-eller administratörs åtgärder.Refresh tokens can be revoked by the server due to a change in credentials, or due to use or admin action. Uppdaterade token hamnar i två klasser – de som utfärdats till konfidentiella klienter (kolumnen längst till höger) och de som utfärdats till offentliga klienter (alla andra kolumner).Refresh tokens fall into two classes - those issued to confidential clients (the rightmost column) and those issued to public clients (all other columns).

ÄndraChange Lösenordsbaserad cookiePassword-based cookie Lösenordsbaserad tokenPassword-based token Icke-lösenordsbaserad cookieNon-password-based cookie Icke-lösenordsbaserad tokenNon-password-based token Konfidentiell klient-tokenConfidential client token
Lösen ordet upphör att gällaPassword expires Förblir AliveStays alive Förblir AliveStays alive Förblir AliveStays alive Förblir AliveStays alive Förblir AliveStays alive
Lösen ordet har ändrats av användarenPassword changed by user RevokedRevoked RevokedRevoked Förblir AliveStays alive Förblir AliveStays alive Förblir AliveStays alive
Användaren SSPRUser does SSPR RevokedRevoked RevokedRevoked Förblir AliveStays alive Förblir AliveStays alive Förblir AliveStays alive
Administratör återställer lösen ordetAdmin resets password RevokedRevoked RevokedRevoked Förblir AliveStays alive Förblir AliveStays alive Förblir AliveStays alive
Användaren återkallar sina Refresh-token via PowerShellUser revokes their refresh tokens via PowerShell RevokedRevoked RevokedRevoked RevokedRevoked RevokedRevoked RevokedRevoked
Administratören återkallar alla uppdateringstoken för en användare via PowerShellAdmin revokes all refresh tokens for a user via PowerShell RevokedRevoked RevokedRevoked RevokedRevoked RevokedRevoked RevokedRevoked
Enkel utloggning (v 1.0, v 2.0 ) på webbenSingle sign-out (v1.0, v2.0 ) on web RevokedRevoked Förblir AliveStays alive RevokedRevoked Förblir AliveStays alive Förblir AliveStays alive

Icke-lösenordsbaseradNon-password-based

En icke-lösenordsbaserad inloggning är en där användaren inte skrev något lösen ord för att hämta den.A non-password-based login is one where the user didn't type in a password to get it. Exempel på icke-lösenordsbaserad inloggning är:Examples of non-password-based login include:

  • Använda din ansikte med Windows HelloUsing your face with Windows Hello
  • FIDO2-nyckelFIDO2 key
  • SMSSMS
  • RöstVoice
  • PIN-KODPIN

Ta en titt på primära uppdateringstoken för mer information om primära uppdateringstoken.Check out Primary Refresh Tokens for more details on primary refresh tokens.

Nästa stegNext steps