Tokens de acesso da plataforma Microsoft IdentityMicrosoft identity platform access tokens

Os tokens de acesso permitem que os clientes chamem APIs protegidas pelo Azure com segurança.Access tokens enable clients to securely call APIs protected by Azure. Os tokens de acesso da plataforma de identidade da Microsoft são JWTs, objetos JSON codificados em base64 assinados pelo Azure.Microsoft identity platform access tokens are JWTs, Base64 encoded JSON objects signed by Azure. Os clientes devem tratar os tokens de acesso como cadeias de caracteres opacas, pois o conteúdo do token se destina apenas ao recurso.Clients should treat access tokens as opaque strings, as the contents of the token are intended for the resource only. Para fins de validação e depuração, os desenvolvedores podem decodificar JWTs usando um site como jwt.ms.For validation and debugging purposes, developers can decode JWTs using a site like jwt.ms. O cliente pode obter um token de acesso do ponto de extremidade v 1.0 ou do ponto de extremidade v 2.0 usando uma variedade de protocolos.Your client can get an access token from either the v1.0 endpoint or the v2.0 endpoint using a variety of protocols.

Quando o cliente solicita um token de acesso, o Azure AD também retorna alguns metadados sobre o token de acesso para o consumo do aplicativo.When your client requests an access token, Azure AD also returns some metadata about the access token for your app's consumption. Essas informações incluem a data de expiração do token de acesso e os escopos para os quais ele é válido.This information includes the expiry time of the access token and the scopes for which it's valid. Esses dados permitem ao aplicativo realizar o cache inteligente dos tokens de acesso sem precisar analisar o token de acesso em si.This data allows your app to do intelligent caching of access tokens without having to parse the access token itself.

Se o aplicativo é um recurso (API Web) ao qual os clientes podem solicitar acesso, os tokens de acesso fornecem informações úteis para uso em autenticação e autorização, como o usuário, o cliente, o emissor, as permissões e muito mais.If your application is a resource (web API) that clients can request access to, access tokens provide helpful information for use in authentication and authorization, such as the user, client, issuer, permissions, and more.

Confira as seções a seguir para saber como um recurso pode validar e usar as declarações dentro de um token de acesso.See the following sections to learn how a resource can validate and use the claims inside an access token.

Importante

Os tokens de acesso são criados com base no público do token, o que significa que o aplicativo que possui os escopos no token.Access tokens are created based on the audience of the token, meaning the application that owns the scopes in the token. É assim accessTokenAcceptedVersion 2 que uma configuração de recurso no manifesto do aplicativo permite que um cliente que chama o ponto de extremidade v 1.0 receba um token de acesso v 2.0.This is how a resource setting accessTokenAcceptedVersion in the app manifest to 2 allows a client calling the v1.0 endpoint to receive a v2.0 access token. Da mesma forma, é por isso que alterar as declarações opcionais do token de acesso para o cliente não altera o token de acesso recebido user.readquando um token é solicitado, que pertence ao recurso do MS Graph.Similarly, this is why changing the access token optional claims for your client do not change the access token received when a token is requested for user.read, which is owned by the MS Graph resource.
Pelo mesmo motivo, ao testar o aplicativo cliente com uma conta pessoal (como hotmail.com ou outlook.com), você pode descobrir que o token de acesso recebido pelo seu cliente é uma cadeia de caracteres opaca.For the same reason, while testing your client application with a personal account (such as hotmail.com or outlook.com), you may find that the access token received by your client is an opaque string. Isso ocorre porque o recurso que está sendo acessado solicitou tíquetes MSA (conta Microsoft) herdados que são criptografados e não podem ser compreendidos pelo cliente.This is because the resource being accessed has requested legacy MSA (Microsoft account) tickets that are encrypted and can't be understood by the client.

Tokens de exemploSample tokens

Os tokens v1.0 e v2.0 são semelhantes e contêm muitas das mesmas declarações.v1.0 and v2.0 tokens look similar and contain many of the same claims. Um exemplo de cada um é fornecido aqui.An example of each is provided here.

v1.0v1.0

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiJlZjFkYTlkNC1mZjc3LTRjM2UtYTAwNS04NDBjM2Y4MzA3NDUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTUyMjIyOS8iLCJpYXQiOjE1MzcyMzMxMDYsIm5iZiI6MTUzNzIzMzEwNiwiZXhwIjoxNTM3MjM3MDA2LCJhY3IiOiIxIiwiYWlvIjoiQVhRQWkvOElBQUFBRm0rRS9RVEcrZ0ZuVnhMaldkdzhLKzYxQUdyU091TU1GNmViYU1qN1hPM0libUQzZkdtck95RCtOdlp5R24yVmFUL2tES1h3NE1JaHJnR1ZxNkJuOHdMWG9UMUxrSVorRnpRVmtKUFBMUU9WNEtjWHFTbENWUERTL0RpQ0RnRTIyMlRJbU12V05hRU1hVU9Uc0lHdlRRPT0iLCJhbXIiOlsid2lhIl0sImFwcGlkIjoiNzVkYmU3N2YtMTBhMy00ZTU5LTg1ZmQtOGMxMjc1NDRmMTdjIiwiYXBwaWRhY3IiOiIwIiwiZW1haWwiOiJBYmVMaUBtaWNyb3NvZnQuY29tIiwiZmFtaWx5X25hbWUiOiJMaW5jb2xuIiwiZ2l2ZW5fbmFtZSI6IkFiZSAoTVNGVCkiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMjIyNDcvIiwiaXBhZGRyIjoiMjIyLjIyMi4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJvaWQiOiIwMjIyM2I2Yi1hYTFkLTQyZDQtOWVjMC0xYjJiYjkxOTQ0MzgiLCJyaCI6IkkiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJsM19yb0lTUVUyMjJiVUxTOXlpMmswWHBxcE9pTXo1SDNaQUNvMUdlWEEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6ImFiZWxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJGVnNHeFlYSTMwLVR1aWt1dVVvRkFBIiwidmVyIjoiMS4wIn0.D3H6pMUtQnoJAGq6AHd

Exiba esse token da v1.0 em JWT.ms.View this v1.0 token in JWT.ms.

v2.0v2.0

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Imk2bEdrM0ZaenhSY1ViMkMzbkVRN3N5SEpsWSJ9.eyJhdWQiOiI2ZTc0MTcyYi1iZTU2LTQ4NDMtOWZmNC1lNjZhMzliYjEyZTMiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE1MzcyMzEwNDgsIm5iZiI6MTUzNzIzMTA0OCwiZXhwIjoxNTM3MjM0OTQ4LCJhaW8iOiJBWFFBaS84SUFBQUF0QWFaTG8zQ2hNaWY2S09udHRSQjdlQnE0L0RjY1F6amNKR3hQWXkvQzNqRGFOR3hYZDZ3TklJVkdSZ2hOUm53SjFsT2NBbk5aY2p2a295ckZ4Q3R0djMzMTQwUmlvT0ZKNGJDQ0dWdW9DYWcxdU9UVDIyMjIyZ0h3TFBZUS91Zjc5UVgrMEtJaWpkcm1wNjlSY3R6bVE9PSIsImF6cCI6IjZlNzQxNzJiLWJlNTYtNDg0My05ZmY0LWU2NmEzOWJiMTJlMyIsImF6cGFjciI6IjAiLCJuYW1lIjoiQWJlIExpbmNvbG4iLCJvaWQiOiI2OTAyMjJiZS1mZjFhLTRkNTYtYWJkMS03ZTRmN2QzOGU0NzQiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhYmVsaUBtaWNyb3NvZnQuY29tIiwicmgiOiJJIiwic2NwIjoiYWNjZXNzX2FzX3VzZXIiLCJzdWIiOiJIS1pwZmFIeVdhZGVPb3VZbGl0anJJLUtmZlRtMjIyWDVyclYzeERxZktRIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidXRpIjoiZnFpQnFYTFBqMGVRYTgyUy1JWUZBQSIsInZlciI6IjIuMCJ9.pj4N-w_3Us9DrBLfpCt

Exiba esse token v2.0 em JWT.ms.View this v2.0 token in JWT.ms.

Declarações em tokens de acessoClaims in access tokens

Os JWTs são divididos em três partes:JWTs are split into three pieces:

  • Cabeçalho – fornece informações sobre como validar o token, incluindo informações sobre o tipo de token e como ele foi assinado.Header - Provides information about how to validate the token including information about the type of token and how it was signed.
  • Conteúdo – contém todos os dados importantes sobre o usuário ou o aplicativo que está tentando chamar o serviço.Payload - Contains all of the important data about the user or app that is attempting to call your service.
  • Assinatura – é a matéria-prima usada para validar o token.Signature - Is the raw material used to validate the token.

Cada parte é separada por um ponto (.) e codificada em Base64 separadamente.Each piece is separated by a period (.) and separately Base64 encoded.

As declarações estão presentes somente se existe um valor para preenchê-lo.Claims are present only if a value exists to fill it. Portanto, seu aplicativo não deve assumir uma dependência de uma declaração estar presente.So, your app shouldn't take a dependency on a claim being present. Os exemplos incluem pwd_exp (nem todo locatário exige a expiração das senhas) ou family_name (a credencial do cliente flui são em nome dos aplicativos, que não têm nomes).Examples include pwd_exp (not every tenant requires passwords to expire) or family_name (client credential flows are on behalf of applications, which don't have names). As declarações usadas para validação do token de acesso sempre estarão presentes.Claims used for access token validation will always be present.

Observação

Algumas declarações são usadas para ajudar o Azure AD a proteger tokens no caso de reutilização.Some claims are used to help Azure AD secure tokens in case of reuse. Elas são marcadas como não sendo para consumo público na descrição como "Opacas".These are marked as not being for public consumption in the description as "Opaque". Essas declarações podem ou não aparecer em um token, e novas declarações podem ser adicionadas sem aviso prévio.These claims may or may not appear in a token, and new ones may be added without notice.

Declarações de cabeçalhoHeader claims

DeclaraçãoClaim FormatarFormat DescriçãoDescription
typ Cadeia de caracteres – sempre "JWT"String - always "JWT" Indica que o token é um JWT.Indicates that the token is a JWT.
nonce CadeiaString Um identificador exclusivo usado para proteger contra ataques de reprodução de token.A unique identifier used to protect against token replay attacks. O recurso pode registrar esse valor para proteger contra reproduções.Your resource can record this value to protect against replays.
alg CadeiaString Indica o algoritmo que foi usado para assinar o token, por exemplo, "RS256"Indicates the algorithm that was used to sign the token, for example, "RS256"
kid CadeiaString Especifica a impressão digital da chave pública que é usada para assinar esse token.Specifies the thumbprint for the public key that's used to sign this token. Emitido nos tokens de acesso v1.0 e v2.0.Emitted in both v1.0 and v2.0 access tokens.
x5t CadeiaString Funciona da mesma forma (em uso e valor) que kid.Functions the same (in use and value) as kid. x5t é uma declaração herdada emitida somente em tokens de acesso da v1.0 para fins de compatibilidade.x5t is a legacy claim emitted only in v1.0 access tokens for compatibility purposes.

Declarações de conteúdoPayload claims

DeclaraçãoClaim FormatarFormat DescriçãoDescription
aud Cadeia de caracteres, um URI da ID do AplicativoString, an App ID URI Identifica o destinatário pretendido do token.Identifies the intended recipient of the token. Em tokens de ID, o público é a ID do aplicativo do aplicativo, atribuído ao seu aplicativo no portal do Azure.In id tokens, the audience is your app's Application ID, assigned to your app in the Azure portal. O aplicativo deve validar esse valor e rejeitar o token, caso o valor não seja correspondente.Your app should validate this value and reject the token if the value does not match.
iss Cadeia de caracteres, um URI STSString, an STS URI Identifica o STS (Serviço de Token de Segurança) que constrói e retorna o token e o locatário do Azure AD no qual o usuário foi autenticado.Identifies the security token service (STS) that constructs and returns the token, and the Azure AD tenant in which the user was authenticated. Se o token emitido for um token v2.0 (consulte a declaração ver), o URI será finalizado em /v2.0.If the token issued is a v2.0 token (see the ver claim), the URI will end in /v2.0. O GUID que indica que o usuário é um consumidor da conta da Microsoft é 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. O aplicativo deve usar a parte do GUID da declaração para restringir o conjunto de locatários que podem entrar no aplicativo, se aplicável.Your app should use the GUID portion of the claim to restrict the set of tenants that can sign in to the app, if applicable.
idp Cadeia de caracteres, normalmente um URI de STSString, usually an STS URI Registra o provedor de identidade que autenticou a entidade do token.Records the identity provider that authenticated the subject of the token. Esse valor é idêntico ao valor da declaração Emissor, a menos que a conta de usuário não esteja no mesmo locatário que o emissor – convidados, por exemplo.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. Se a declaração não estiver presente, significa que o valor de iss pode ser usado em vez disso.If the claim isn't present, it means that the value of iss can be used instead. Para as contas pessoais usadas em um contexto organizacional (por exemplo, uma conta pessoal convidada para um locatário do Azure AD), a declaração idppode ser 'live.com' ou um URI de STS que contém o locatário da conta Microsoft9188040d-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, um carimbo de data/hora UNIXint, a UNIX timestamp "Emitido em" indica quando ocorreu a autenticação desse token."Issued At" indicates when the authentication for this token occurred.
nbf int, um carimbo de data/hora UNIXint, a UNIX timestamp A declaração "nbf" (não antes) identifica a hora antes da qual o JWT não deve ser aceito para processamento.The "nbf" (not before) claim identifies the time before which the JWT must not be accepted for processing.
exp int, um carimbo de data/hora UNIXint, a UNIX timestamp A declaração "exp" (hora de expiração) identifica a hora de expiração ou a hora após ela na qual o JWT não deve ser aceito para processamento.The "exp" (expiration time) claim identifies the expiration time on or after which the JWT must not be accepted for processing. É importante observar que um recurso pode rejeitar o token antes dessa hora também, como quando uma alteração na autenticação é necessária ou se uma revogação de token foi detectada.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 Cadeia de caracteres opacaOpaque String Uma declaração interna usada pelo Azure AD para registrar os dados para reutilização de token.An internal claim used by Azure AD to record data for token reuse. Os recursos não devem usar essa declaração.Resources should not use this claim.
acr Cadeia de caracteres, um "0" ou "1"String, a "0" or "1" Presente apenas em tokens da v1.0.Only present in v1.0 tokens. A declaração da "Classe de contexto de autenticação".The "Authentication context class" claim. Um valor "0" indica que a autenticação do usuário final não atendeu aos requisitos da ISO/IEC 29115.A value of "0" indicates the end-user authentication did not meet the requirements of ISO/IEC 29115.
amr Matriz de cadeias de caracteres JSONJSON array of strings Presente apenas em tokens da v1.0.Only present in v1.0 tokens. Identifica como o assunto do token foi autenticado.Identifies how the subject of the token was authenticated. Confira a seção de declarações de amr para obter mais detalhes.See the amr claim section for more details.
appid Cadeia de caracteres, um GUIDString, a GUID Presente apenas em tokens da v1.0.Only present in v1.0 tokens. A ID do aplicativo do cliente que usa o token.The application ID of the client using the token. O aplicativo pode agir como ele próprio ou em nome de um usuário.The application can act as itself or on behalf of a user. A ID do aplicativo normalmente representa um objeto de aplicativo, mas também pode representar um objeto de entidade de serviço no AD do Azure.The application ID typically represents an application object, but it can also represent a service principal object in Azure AD.
appidacr "0", "1" ou "2""0", "1", or "2" Presente apenas em tokens da v1.0.Only present in v1.0 tokens. Indica como o cliente foi autenticado.Indicates how the client was authenticated. Para um cliente público, o valor é "0".For a public client, the value is "0". Se a ID do cliente e o segredo do cliente são usados, o valor é "1".If client ID and client secret are used, the value is "1". Se um certificado do cliente foi usado para autenticação, o valor é "2".If a client certificate was used for authentication, the value is "2".
azp Cadeia de caracteres, um GUIDString, a GUID Somente presentes em tokens v 2.0, uma substituição appidpara.Only present in v2.0 tokens, a replacement for appid. A ID do aplicativo do cliente que usa o token.The application ID of the client using the token. O aplicativo pode agir como ele próprio ou em nome de um usuário.The application can act as itself or on behalf of a user. A ID do aplicativo normalmente representa um objeto de aplicativo, mas também pode representar um objeto de entidade de serviço no AD do Azure.The application ID typically represents an application object, but it can also represent a service principal object in Azure AD.
azpacr "0", "1" ou "2""0", "1", or "2" Somente presentes em tokens v 2.0, uma substituição appidacrpara.Only present in v2.0 tokens, a replacement for appidacr. Indica como o cliente foi autenticado.Indicates how the client was authenticated. Para um cliente público, o valor é "0".For a public client, the value is "0". Se a ID do cliente e o segredo do cliente são usados, o valor é "1".If client ID and client secret are used, the value is "1". Se um certificado do cliente foi usado para autenticação, o valor é "2".If a client certificate was used for authentication, the value is "2".
preferred_username CadeiaString O nome de usuário principal que representa o usuário.The primary username that represents the user. Ele pode ser um endereço de email, número de telefone ou nome de usuário genérico sem um formato especificado.It could be an email address, phone number, or a generic username without a specified format. Seu valor é mutável e pode ser alterado ao longo do tempo.Its value is mutable and might change over time. Uma vez que é mutável, esse valor não deve ser usado para tomar decisões de autorização.Since it is mutable, this value must not be used to make authorization decisions. Ele pode ser usado para obter dicas de nome de usuário.It can be used for username hints though. O escopo profile é necessário para receber essa declaração.The profile scope is required in order to receive this claim.
name CadeiaString Fornece um valor legível por humanos que identifica a entidade do token.Provides a human-readable value that identifies the subject of the token. Não há garantia de que o valor seja exclusivo. Ele é mutável e foi projetado para ser usado apenas para fins de exibição.The value is not guaranteed to be unique, it is mutable, and it's designed to be used only for display purposes. O escopo profile é necessário para receber essa declaração.The profile scope is required in order to receive this claim.
scp Cadeia de caracteres, uma lista de escopos separados por espaçosString, a space separated list of scopes O conjunto de escopos expostos pelo aplicativo para o qual o aplicativo cliente solicitou (e recebeu) o consentimento.The set of scopes exposed by your application for which the client application has requested (and received) consent. O aplicativo deve verificar se os escopos são escopos válidos expostos pelo aplicativo e tomar decisões de autorização de acordo com o valor desses escopos.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. Incluído apenas para tokens de usuário.Only included for user tokens.
roles Matriz de cadeias de caracteres, uma lista de permissõesArray of strings, a list of permissions O conjunto de permissões expostas por seu aplicativo que o aplicativo ou usuário solicitante recebeu permissão para chamar.The set of permissions exposed by your application that the requesting application or user has been given permission to call. Para tokens de aplicativo, isso é usado durante o fluxo de credenciais do cliente no lugar de escopos do usuário.For application tokens, this is used during the client-credentials flow in place of user scopes. Para tokens de usuário , isso é populado com as funções às quais o usuário foi atribuído no aplicativo de destino.For user tokens this is populated with the roles the user was assigned to on the target application.
wids Matriz de GUIDs RoleTemplateIDArray of RoleTemplateID GUIDs Denota as funções de todo o locatário atribuídas a esse usuário, da seção de funções presentes na página funções de administrador.Denotes the tenant-wide roles assigned to this user, from the section of roles present in the admin roles page. Essa declaração é configurada em uma base por aplicativo, por groupMembershipClaims meio da Propriedade do manifesto do aplicativo.This claim is configured on a per-application basis, through the groupMembershipClaims property of the application manifest. Configurá-lo como "All" ou "DirectoryRole" é necessário.Setting it to "All" or "DirectoryRole" is required. Pode não estar presente em tokens obtidos por meio do fluxo implícito devido a problemas de comprimento do token.May not be present in tokens obtained through the implicit flow due to token length concerns.
groups Matriz JSON de GUIDsJSON array of GUIDs Fornece IDs de objetos que representam as associações de grupo do assunto.Provides object IDs that represent the subject's group memberships. Esses valores são exclusivos (consulte a ID de objeto) e podem ser usados com segurança para gerenciar o acesso, como a imposição da autorização para acessar um recurso.These values are unique (see Object ID) and can be safely used for managing access, such as enforcing authorization to access a resource. Os grupos incluídos na declaração dos grupos são configurados por aplicativo, por meio da propriedade groupMembershipClaims do manifesto do aplicativo.The groups included in the groups claim are configured on a per-application basis, through the groupMembershipClaims property of the application manifest. Um valor nulo exclui todos os grupos; já um valor "SecurityGroup" inclui somente os membros do grupo de segurança do Active Directory, enquanto um valor "All" inclui tanto grupos de segurança quanto listas de distribuição do Office 365.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 Office 365 Distribution Lists.

Consulte a declaração hasgroups abaixo para obter detalhes de como usar a declaração groups com a concessão implícita.See the hasgroups claim below for details on using the groups claim with the implicit grant.
Para outros fluxos, se o número de grupos em que o usuário está ultrapassar um limite (150 para SAML, 200 para JWT), uma declaração excedente será adicionada às fontes de declaração que apontam para o ponto de extremidade do AAD Graph que contém a lista de grupos para o usuário.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 AAD Graph endpoint containing the list of groups for the user.
hasgroups BoolianoBoolean Se houver algum, sempre true, indicando que o usuário pertence a pelo menos um grupo.If present, always true, denoting the user is in at least one group. Usado no lugar da declaração groups de JWTs em fluxos de concessão implícitos se a declaração completa de grupos ultrapassar o fragmento de URI para além dos limites de extensão da URL (atualmente, 6 ou mais grupos).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). Indica que o cliente deve usar o Graph para determinar os grupos do usuário (https://graph.windows.net/{tenantID}/users/{userID}/getMemberObjects).Indicates that the client should use the Graph to determine the user's groups (https://graph.windows.net/{tenantID}/users/{userID}/getMemberObjects).
groups:src1 Objeto JSONJSON object Para solicitações de token sem limite de tamanho (consulte hasgroups acima), mas ainda muito grandes para o token, será incluído um link para a lista completa de grupos do usuário.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. Para JWTs na forma de declaração distribuída, para SAML como uma nova declaração no lugar da declaração groups.For JWTs as a distributed claim, for SAML as a new claim in place of the groups claim.

Valor de exemplo de JWT:Example JWT Value:
"groups":"src1"
"_claim_sources: "src1" : { "endpoint" : "https://graph.windows.net/{tenantID}/users/{userID}/getMemberObjects" }"_claim_sources: "src1" : { "endpoint" : "https://graph.windows.net/{tenantID}/users/{userID}/getMemberObjects" }
sub Cadeia de caracteres, um GUIDString, a GUID O item mais importante sobre o qual o token declara informações, como o usuário de um aplicativo.The principal about which the token asserts information, such as the user of an app. Esse valor é imutável e não pode ser reatribuído nem reutilizado.This value is immutable and cannot be reassigned or reused. Pode ser usado para executar verificações de autorização de forma segura, por exemplo, quando o token é usado para acessar um recurso, e pode ser usado como uma chave nas tabelas de banco de dados.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. Como a entidade está sempre presente nos tokens emitidos pelo Azure AD, é recomendável usar esse valor em um sistema de autorização de uso geral.Because the subject is always present in the tokens that Azure AD issues, we recommend using this value in a general-purpose authorization system. O assunto é, no entanto, um identificador de paridade - é exclusivo a uma ID de aplicativo específica.The subject is, however, a pairwise identifier - it is unique to a particular application ID. Portanto, se um único usuário entra em dois aplicativos diferentes usando duas IDs de cliente diferentes, esses aplicativos receberão dois valores diferentes para a declaração do assunto.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. Isso pode ou não ser desejável, dependendo dos requisitos de arquitetura e de privacidade.This may or may not be desired depending on your architecture and privacy requirements. Veja também a oid declaração (que permanece a mesma em aplicativos dentro de um locatário).See also the oid claim (which does remain the same across apps within a tenant).
oid Cadeia de caracteres, um GUIDString, a GUID O identificador imutável de um objeto na plataforma de identidade da Microsoft, nesse caso, uma conta de usuário.The immutable identifier for an object in the Microsoft identity platform, in this case, a user account. Também pode ser usada para realizar verificações de autorização com segurança e como uma chave em tabelas de banco de dados.It can also be used to perform authorization checks safely and as a key in database tables. Essa ID identifica exclusivamente o usuário entre os aplicativos - dois aplicativos diferentes autenticando o mesmo usuário receberão o mesmo valor na declaração oid.This ID uniquely identifies the user across applications - two different applications signing in the same user will receive the same value in the oid claim. Portanto, oid pode ser usada ao fazer consultas nos serviços online da Microsoft, como o Microsoft Graph.Thus, oid can be used when making queries to Microsoft online services, such as the Microsoft Graph. O Microsoft Graph retornará essa ID como a propriedade id para uma determinada conta de usuário.The Microsoft Graph will return this ID as the id property for a given user account. Como o oid permite que vários aplicativos correlacionem usuários, o escopo profile é necessário a fim de receber essa declaração.Because the oid allows multiple apps to correlate users, the profile scope is required in order to receive this claim. Observe que, se um único usuário existir em vários locatários, o usuário conterá uma ID de objeto diferentes em cada locatário - são consideradas contas diferentes, mesmo que o usuário faça logon em cada conta com as mesmas credenciais.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 Cadeia de caracteres, um GUIDString, a GUID Representa o locatário do Azure AD do qual o usuário é proveniente.Represents the Azure AD tenant that the user is from. Para contas corporativas e de estudante, o GUID é a ID de locatário imutável da organização à qual o usuário pertence.For work and school accounts, the GUID is the immutable tenant ID of the organization that the user belongs to. Para contas pessoais, o valor é 9188040d-6c67-4c5b-b112-36a304b66dad.For personal accounts, the value is 9188040d-6c67-4c5b-b112-36a304b66dad. O escopo profile é necessário para receber essa declaração.The profile scope is required in order to receive this claim.
unique_name CadeiaString Presente apenas em tokens da v1.0.Only present in v1.0 tokens. Fornece um valor legível que identifica a entidade do token.Provides a human readable value that identifies the subject of the token. Não há garantia de que esse valor seja exclusivo dentro de um locatário e ele deve ser usado apenas para fins de exibição.This value is not guaranteed to be unique within a tenant and should be used only for display purposes.
uti Cadeia de caracteres opacaOpaque String Uma declaração interna usada pelo Azure para revalidar tokens.An internal claim used by Azure to revalidate tokens. Os recursos não devem usar essa declaração.Resources shouldn't use this claim.
rh Cadeia de caracteres opacaOpaque String Uma declaração interna usada pelo Azure para revalidar tokens.An internal claim used by Azure to revalidate tokens. Os recursos não devem usar essa declaração.Resources should not use this claim.
ver Cadeia de caracteres 1.0 , ou2.0String, either 1.0 or 2.0 Indica a versão do token de acesso.Indicates the version of the access token.

[! Declaração excedente de grupos] para garantir que o tamanho do token não exceda os limites de tamanho do cabeçalho HTTP, o Azure AD limita o número de IDs de objeto que ele inclui na declaração de grupos. 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. Se um usuário for membro de mais grupos do que o limite excedente (150 para tokens SAML, 200 para tokens JWT), o Azure AD não emitirá a declaração de grupos no token.If a user is member of more groups than the overage limit (150 for SAML tokens, 200 for JWT tokens), then Azure AD does not emit the groups claim in the token. Em vez disso, ele inclui uma declaração excedente no token que indica ao aplicativo consultar o API do Graph para recuperar a associação de grupo do usuário.Instead, it includes an overage claim in the token that indicates to the application to query the Graph API to retrieve the user’s group membership. { ... "_claim_names": {"Groups": "src1"}, {"_claim_sources": {"src1": {"Endpoint": "[URL do grafo para obter a associação de grupo deste usuário de]"}}{ ... "_claim_names": { "groups": "src1" }, { "_claim_sources": { "src1": { "endpoint":"[Graph Url to get this user's group membership from]" } }
... } Você pode usar o BulkCreateGroups.ps1 fornecido na pasta scripts de criação de aplicativo para ajudar a testar cenários excedentes.... } You can use the BulkCreateGroups.ps1 provided in the App Creation Scripts folder to help test overage scenarios.

Declarações básicas v1.0v1.0 basic claims

As declarações a seguir serão incluídas em tokens v 1.0, se aplicável, mas não são incluídas em tokens v 2.0 por padrão.The following claims will be included in v1.0 tokens if applicable, but aren't included in v2.0 tokens by default. Se você estiver usando a v 2.0 e precisar de uma dessas declarações, solicite-as usando declarações opcionais.If you're using v2.0 and need one of these claims, request them using optional claims.

DeclaraçãoClaim FormatarFormat DescriçãoDescription
ipaddr CadeiaString O endereço IP por meio do qual o usuário se autenticou.The IP address the user authenticated from.
onprem_sid Cadeia de caracteres, em formato SIDString, in SID format Nos casos em que o usuário tem uma autenticação local, essa declaração fornece o SID.In cases where the user has an on-premises authentication, this claim provides their SID. Você pode usar onprem_sid para autorização em aplicativos herdados.You can use onprem_sid for authorization in legacy applications.
pwd_exp int, um carimbo de data/hora UNIXint, a UNIX timestamp Indica quando a senha do usuário expira.Indicates when the user's password expires.
pwd_url CadeiaString Uma URL para a qual os usuários podem ser enviados para redefinir suas senhas.A URL where users can be sent to reset their password.
in_corp booleanboolean Indica se o cliente está se conectando da rede corporativa.Signals if the client is logging in from the corporate network. Se não forem, a declaração não será incluída.If they aren't, the claim isn't included.
nickname CadeiaString Um nome adicional para o usuário, separado do nome ou sobrenome.An additional name for the user, separate from first or last name.
family_name CadeiaString Fornece o sobrenome ou o nome da família do usuário, conforme definido no objeto de usuário.Provides the last name, surname, or family name of the user as defined on the user object.
given_name CadeiaString Fornece o nome ou nome especificado do usuário, conforme definido no objeto de usuário.Provides the first or given name of the user, as set on the user object.
upn CadeiaString O nome de usuário do usuário.The username of the user. Pode ser um número de telefone, um endereço de email ou uma cadeia de caracteres sem formatação.May be a phone number, email address, or unformatted string. Deve ser usado apenas para fins de exibição e para fornecer dicas de nome de usuário em cenários de reautenticação.Should only be used for display purposes and providing username hints in reauthentication scenarios.

A declaração amrThe amr claim

As identidades da Microsoft podem ser autenticadas de maneiras diferentes, o que pode ser relevante para seu aplicativo.Microsoft identities can authenticate in different ways, which may be relevant to your application. A declaração amr é uma matriz que pode conter vários itens, como ["mfa", "rsa", "pwd"], para uma autenticação que usou uma senha e o aplicativo Authenticator.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.

ValorValue DescriçãoDescription
pwd Autenticação de senha, uma senha da Microsoft do usuário ou um segredo do cliente do aplicativo.Password authentication, either a user's Microsoft password or an app's client secret.
rsa A autenticação se baseava na prova de uma chave RSA, por exemplo, com o aplicativo Microsoft Authenticator.Authentication was based on the proof of an RSA key, for example with the Microsoft Authenticator app. Isso inclui se a autenticação foi feita por um JWT autoassinado com um certificado X509 de Propriedade do serviço.This includes if authentication was done by a self-signed JWT with a service owned X509 certificate.
otp Uma senha única usando um email ou uma mensagem de texto.One-time passcode using an email or a text message.
fed Uma declaração de autenticação federada (por exemplo, JWT ou SAML) foi usada.A federated authentication assertion (such as JWT or SAML) was used.
wia Autenticação Integrada do WindowsWindows Integrated Authentication
mfa A autenticação multifator for usada.Multi-factor authentication was used. Quando isso estiver presente, os outros métodos de autenticação também serão incluídos.When this is present the other authentication methods will also be included.
ngcmfa Equivalente a mfa, usado para o provisionamento de alguns tipos de credenciais avançadas.Equivalent to mfa, used for provisioning of certain advanced credential types.
wiaormfa O usuário utilizou o Windows ou uma credencial MFA para se autenticar.The user used Windows or an MFA credential to authenticate.
none Nenhuma autenticação foi feita.No authentication was done.

Validando tokensValidating tokens

Para validar um id_token ou access_token, o aplicativo deverá validar a assinatura e as declarações do token.To validate an id_token or an access_token, your app should validate both the token's signature and the claims. Para validar tokens de acesso, seu aplicativo também deve validar o emissor, o público e os tokens de assinatura.To validate access tokens, your app should also validate the issuer, the audience, and the signing tokens. Estes precisam ser validados em relação aos valores no documento de descoberta OpenID.These need to be validated against the values in the OpenID discovery document. Por exemplo, a versão independente de locatário do documento está localizada em 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.

O middleware do Azure AD tem funcionalidades internas para validar os tokens de acesso e você pode navegar pelas nossas amostras para encontrar uma na linguagem de sua escolha.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. Para obter mais informações sobre como validar explicitamente um token JWT, confira a amostra de validação manual de JWT.For more information on how to explicitly validate a JWT token, see the manual JWT validation sample.

Fornecemos bibliotecas e exemplos de código que mostram como manipular a validação de token com facilidade.We provide libraries and code samples that show how to easily handle token validation. As informações abaixo são fornecidas para aqueles que desejam entender o processo subjacente.The below information is provided for those who wish to understand the underlying process. Há também várias bibliotecas de software livre de terceiros disponíveis para validação de JWT – há pelo menos uma opção para quase todas as plataformas e idiomas.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 out there. Para obter mais informações sobre bibliotecas de autenticação do Azure AD e exemplos de código, confira bibliotecas de autenticação v1.0 e bibliotecas de autenticação v2.0.For more information about Azure AD authentication libraries and code samples, see v1.0 authentication libraries and v2.0 authentication libraries.

Validação da assinaturaValidating the signature

Um JWT contém três segmentos, que são separados pelo caractere . .A JWT contains three segments, which are separated by the . character. O primeiro segmento é conhecido como o cabeçalho, o segundo como o corpo e o terceiro como a assinatura.The first segment is known as the header, the second as the body, and the third as the signature. O segmento de assinatura pode ser usado para validar a autenticidade do token, de modo que seu aplicativo possa confiar nele.The signature segment can be used to validate the authenticity of the token so that it can be trusted by your app.

Os tokens emitidos pelo Azure AD são assinados usando algoritmos de criptografia assimétrica padrão do setor, como o RSA 256.Tokens issued by Azure AD are signed using industry standard asymmetric encryption algorithms, such as RSA 256. O cabeçalho do JWT contém informações sobre o método de criptografia e a chave usados para assinar o 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"
}

A alg declaração indica o algoritmo que foi usado para assinar o token, enquanto a kid declaração indica a chave pública específica que foi usada para validar o 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.

Em qualquer ponto no tempo, o AD do Azure pode assinar um id_token usando qualquer um de um determinado conjunto de pares de chaves públicas-privadas.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. O AD do Azure gira o possível conjunto de chaves em intervalos periódicos, de modo que o aplicativo deve ser escrito para tratar essas mudanças de chave automaticamente.Azure AD rotates the possible set of keys on a periodic basis, so your app should be written to handle those key changes automatically. Uma frequência razoável para verificar se há atualizações para as chaves públicas usadas pelo Azure AD é a cada 24 horas.A reasonable frequency to check for updates to the public keys used by Azure AD is every 24 hours.

Você pode adquirir os dados de chave de assinatura necessários para validar a assinatura usando o documento de metadados do OpenID Connect localizado em: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

Dica

Experimente essa URL em um navegador!Try this URL in a browser!

Esses metadados documentam:This metadata document:

  • É um objeto JSON que contém várias informações úteis, como o local dos vários pontos de extremidade necessários para fazer a autenticação do OpenID Connect.Is a JSON object containing several useful pieces of information, such as the location of the various endpoints required for doing OpenID Connect authentication.
  • Inclui um jwks_uri, que fornece o local do conjunto de chaves públicas usadas para assinar tokens.Includes a jwks_uri, which gives the location of the set of public keys used to sign tokens. O documento de JSON localizado no jwks_uri contém todas as informações de chave pública em uso naquele momento específico.The JSON document located at the jwks_uri contains all of the public key information in use at that particular moment in time. Seu aplicativo pode usar a declaração kid no cabeçalho do JWT para selecionar qual chave pública neste documento foi usada para assinar um token específico.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. Em seguida, ele pode fazer a validação de assinatura usando a chave pública correta e o algoritmo indicado.It can then do signature validation using the correct public key and the indicated algorithm.

Observação

O ponto de extremidade v1.0 retorna as declarações x5t e kid, enquanto o ponto de extremidade v 2.0 responde apenas com a declaração kid.The v1.0 endpoint returns both the x5t and kid claims, while the v2.0 endpoint responds with only the kid claim. No futuro, é recomendável usar a declaração kid para validar o token.Going forward, we recommend using the kid claim to validate your token.

A validação da assinatura está fora do escopo deste documento. há muitas bibliotecas de software livre disponíveis para ajudá-lo a fazer isso, se necessário.Doing signature validation is outside the scope of this document - there are many open source libraries available for helping you do so if necessary. No entanto, a plataforma de identidade da Microsoft tem uma extensão de assinatura de token para os padrões-chaves de assinatura personalizadas.However, the Microsoft Identity platform has one token signing extension to the standards - custom signing keys.

Se seu aplicativo tiver chaves de assinatura personalizadas como resultado do uso do recurso de mapeamento de declarações , você deverá acrescentar appid um parâmetro de consulta que contém a jwks_uri ID do aplicativo para começar a apontar para as informações de chave de assinatura do aplicativo, que devem ser usadas para confirmação.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. Por exemplo: https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e contém um jwks_uri de 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.

Autorização baseada em declaraçõesClaims based authorization

A lógica de negócios do aplicativo determinará esta etapa; alguns métodos comuns de autorização são apresentados abaixo.Your application's business logic will dictate this step, some common authorization methods are laid out below.

  • Marque a scp Declaração roles ou para verificar se todos os escopos presentes correspondem aos expostos por sua API e permita que o cliente faça a ação solicitada.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.
  • Verifique se o cliente de chamada pode chamar sua API usando a declaração appid.Ensure the calling client is allowed to call your API using the appid claim.
  • Validar o status de autenticação do cliente de chamada appidacr usando-ele não deverá ser 0 se os clientes públicos não tiverem permissão para chamar sua 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.
  • Verifique em uma lista de declarações nonce anteriores para verificar se o token não está sendo repetido.Check against a list of past nonce claims to verify the token isn't being replayed.
  • Verifique se o tid corresponde a um locatário que tem permissão para chamar sua API.Check that the tid matches a tenant that is allowed to call your API.
  • Use a declaração acr para verificar se o usuário realizou a MFA.Use the acr claim to verify the user has performed MFA. Isso deve ser imposto usando o acesso condicional.This should be enforced using Conditional Access.
  • Se você solicitou as roles declarações groups ou no token de acesso, verifique se o usuário está no grupo com permissão para executar esta ação.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.
    • Para os tokens recuperados usando o fluxo implícito, provavelmente, você precisará conferir o Microsoft Graph para esses dados, pois eles costumam ser muito grandes para se ajustarem ao 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.

Tokens de usuário e aplicativoUser and application tokens

Seu aplicativo pode receber tokens em nome de um usuário (o fluxo normal) ou diretamente de um aplicativo (por meio do fluxo de credenciais do cliente).Your application may receive tokens on behalf of a user (the usual flow) or directly from an application (through the client credentials flow). Esses tokens somente de aplicativo indicam que essa chamada é proveniente de um aplicativo e não tem nenhum usuário dando suporte a ela.These app-only tokens indicate that this call is coming from an application and does not have a user backing it. Esses tokens são manipulados basicamente da mesma forma, com algumas diferenças:These tokens are handled largely the same, with some differences:

  • Tokens somente de aplicativo não terão uma scp declaração e, em vez disso, roles podem ter uma declaração.App-only tokens will not have a scp claim, and may instead have a roles claim. Esse é o local em que a permissão de aplicativo (em vez de permissões delegadas) será registrada.This is where application permission (as opposed to delegated permissions) will be recorded. Para obter mais informações sobre permissões delegadas e de aplicativo, confira permissões e consentimento em v1.0 e v2.0.For more information about delegated and application permissions, see permission and consent in v1.0 and v2.0.
  • Muitas declarações específicas do humano estarão ausentes, name como ou. upnMany human-specific claims will be missing, such as name or upn.
  • As sub declarações oid e serão as mesmas.The sub and oid claims will be the same.

Revogação de tokenToken revocation

Os tokens de atualização podem ser invalidados ou revogados a qualquer momento, por diferentes motivos.Refresh tokens can be invalidated or revoked at any time, for different reasons. Eles se encaixam em duas categorias principais: tempos limite e revogações.These fall into two main categories: timeouts and revocations.

Tempos limite de tokenToken timeouts

  • MaxInactiveTime: Se o token de atualização não tiver sido usado dentro do tempo determinado pelo MaxInactiveTime, o token de atualização não será mais válido.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: se MaxAgeSessionMultiFactor ou MaxAgeSessionSingleFactor tiver sido definido como algo diferente do padrão (até revogado), será necessária a reautenticação depois de decorrido o tempo definido em MaxAgeSession*.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.
  • Exemplos:Examples:
    • O locatário tem um MaxInactiveTime de cinco dias e o usuário entrou em férias por uma semana e, portanto, o Azure AD não viu uma nova solicitação de token do usuário em 7 dias.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. Na próxima vez que o usuário solicitar um novo token, ele encontrará seu token de atualização foi revogado e deverá inserir suas credenciais novamente.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.
    • Um aplicativo confidencial tem um MaxAgeSessionSingleFactor de um dia.A sensitive application has a MaxAgeSessionSingleFactor of one day. Se um usuário fizer logon na segunda-feira e na terça-feira (depois que 25 horas tiverem decorrido), será necessário autenticar novamente.If a user logs in on Monday, and on Tuesday (after 25 hours have elapsed), they'll be required to reauthenticate.

RevogaçãoRevocation

Cookie baseado em senhaPassword-based cookie Token baseado em senhaPassword-based token Cookie não baseado em senhaNon-password-based cookie Token não baseados em senhaNon-password-based token Token de cliente confidencialConfidential client token
A senha expiraPassword expires Permanece ativoStays alive Permanece ativoStays alive Permanece ativoStays alive Permanece ativoStays alive Permanece ativoStays alive
Senha alterada pelo usuárioPassword changed by user RevogadoRevoked RevogadoRevoked Permanece ativoStays alive Permanece ativoStays alive Permanece ativoStays alive
Usuário faz SSPRUser does SSPR RevogadoRevoked RevogadoRevoked Permanece ativoStays alive Permanece ativoStays alive Permanece ativoStays alive
Administrador redefine senhaAdmin resets password RevogadoRevoked RevogadoRevoked Permanece ativoStays alive Permanece ativoStays alive Permanece ativoStays alive
Usuário revoga seus tokens de atualização por meio do PowerShellUser revokes their refresh tokens via PowerShell RevogadoRevoked RevogadoRevoked RevogadoRevoked RevogadoRevoked RevogadoRevoked
O administrador revoga todos os tokens de atualização do locatário por meio do PowerShellAdmin revokes all refresh tokens for the tenant via PowerShell RevogadoRevoked RevogadoRevoked RevogadoRevoked RevogadoRevoked RevogadoRevoked
Logoff único na WebSingle sign-out on web RevogadoRevoked Permanece ativoStays alive RevogadoRevoked Permanece ativoStays alive Permanece ativoStays alive

Observação

Um logon "não baseado em senha" é um logon em que o usuário não digita uma senha para entrar.A "Non-password based" login is one where the user didn't type in a password to get it. Por exemplo, usando seu rosto no Windows Hello, uma chave FIDO ou um PIN.For example, using your face with Windows Hello, a FIDO key, or a PIN.

Existe um problema conhecido com o Token de atualização primário do Windows.A known issue exists with the Windows Primary Refresh Token. Se o PRT for obtido por meio de uma senha e, em seguida, o usuário fizer logon usando o Hello, isso não alterará a origem do PRT e será revogado se o usuário alterar sua senha.If the PRT is obtained via a password, and then the user logs in via Hello, this does not change the origination of the PRT, and it will be revoked if the user changes their password.

Os tokens de atualização não são invalidados ou revogados quando usados para buscar um novo token de acesso e um token de atualização.Refresh tokens aren't invalidated or revoked when used to fetch a new access token and refresh token.

Próximas etapasNext steps