O que é um Token de atualização principal?What is a Primary Refresh Token?

Um PRT (token de atualização principal) é um artefato importante da autenticação do Azure AD no Windows 10, Windows Server 2016 e versões posteriores, iOS e dispositivos Android.A Primary Refresh Token (PRT) is a key artifact of Azure AD authentication on Windows 10, Windows Server 2016 and later versions, iOS, and Android devices. Trata-se de um JWT (Token Web JSON) emitido especialmente para agentes de token de terceiros da Microsoft para habilitar o SSO (logon único) nos aplicativos usados nesses dispositivos.It is a JSON Web Token (JWT) specially issued to Microsoft first party token brokers to enable single sign-on (SSO) across the applications used on those devices. Neste artigo, serão fornecidos detalhes sobre a emissão, o uso e a proteção de um PRT em dispositivos Windows 10.In this article, we will provide details on how a PRT is issued, used, and protected on Windows 10 devices.

Este artigo pressupõe que você já tenha entendido os diferentes estados de dispositivo disponíveis no Azure AD e como o SSO funciona no Windows 10.This article assumes that you already understand the different device states available in Azure AD and how single sign-on works in Windows 10. Para obter mais informações sobre dispositivos no Azure AD, consulte o artigo O que é o gerenciamento de dispositivos no Azure Active Directory?For more information about devices in Azure AD, see the article What is device management in Azure Active Directory?

Principais termos e componentesKey terminology and components

Os componentes do Windows mostrados a seguir desempenham um papel fundamental na solicitação e no uso de um PRT:The following Windows components play a key role in requesting and using a PRT:

  • Provedor de Autenticação na Nuvem (CloudAP): o CloudAP é o provedor de autenticação moderno para entrar no Windows, o qual verifica os usuários que estão fazendo logon em um dispositivo Windows 10.Cloud Authentication Provider (CloudAP): CloudAP is the modern authentication provider for Windows sign in, that verifies users logging to a Windows 10 device. Ele fornece uma estrutura de plug-in que pode ser usada pelos provedores de identidade para habilitar a autenticação no Windows usando as credenciais do próprio provedor de identidade.CloudAP provides a plugin framework that identity providers can build on to enable authentication to Windows using that identity provider’s credentials.
  • Gerenciador de Contas da Web (WAM): o WAM é o agente de token padrão em dispositivos Windows 10.Web Account Manager (WAM): WAM is the default token broker on Windows 10 devices. Ele também fornece uma estrutura de plug-in que pode ser usada pelos provedores de identidade para habilitar o SSO para os aplicativos que dependem desse provedor de identidade.WAM also provides a plugin framework that identity providers can build on and enable SSO to their applications relying on that identity provider.
  • Plug-in CloudAP do Azure AD: um plug-in específico do Azure AD criado na estrutura do CloudAP e que verifica as credenciais do usuário com o Azure AD durante a entrada no Windows.Azure AD CloudAP plugin: An Azure AD specific plugin built on the CloudAP framework, that verifies user credentials with Azure AD during Windows sign in.
  • Plug-in WAM do Azure AD: um plug-in específico do Azure AD criado na estrutura do WAM e que habilita o SSO para aplicativos que dependem do Azure AD para autenticação.Azure AD WAM plugin: An Azure AD specific plugin built on the WAM framework, that enables SSO to applications that rely on Azure AD for authentication.
  • Dsreg: um componente específico do Azure AD no Windows 10 que opera o processo de registro de dispositivo em todos os estados de dispositivo.Dsreg: An Azure AD specific component on Windows 10, that handles the device registration process for all device states.
  • Trusted Platform Module (TPM): um TPM é um componente de hardware interno de um dispositivo que fornece funções de segurança baseadas em hardware para segredos de usuário e de dispositivo.Trusted Platform Module (TPM): A TPM is a hardware component built into a device, that provides hardware-based security functions for user and device secrets. Mais detalhes podem ser encontrados no artigo Visão geral da tecnologia Trusted Platform Module.More details can be found in the article Trusted Platform Module Technology Overview.

O que um PRT contém?What does the PRT contain?

Um PRT contém declarações que geralmente estão presentes em qualquer token de atualização do Azure AD.A PRT contains claims generally contained in any Azure AD refresh token. Além disso, o PRT também conta com algumas declarações específicas do dispositivo.In addition, there are some device-specific claims included in the PRT. Elas são as seguintes:They are as follows:

  • ID do dispositivo: um PRT é emitido a um usuário em um dispositivo específico.Device ID: A PRT is issued to a user on a specific device. A declaração de ID do dispositivo deviceID determina em qual dispositivo o PRT foi emitido ao usuário.The device ID claim deviceID determines the device the PRT was issued to the user on. Posteriormente, essa declaração é emitida a tokens obtidos por meio do PRT.This claim is later issued to tokens obtained via the PRT. A declaração de ID do dispositivo é usada para determinar a autorização de Acesso condicional baseada no estado ou na conformidade do dispositivo.The device ID claim is used to determine authorization for Conditional Access based on device state or compliance.
  • Chave da sessão: a chave da sessão é uma chave simétrica criptografada que é gerada pelo serviço de autenticação do Azure AD e emitida como parte do PRT.Session key: The session key is an encrypted symmetric key, generated by the Azure AD authentication service, issued as part of the PRT. A chave da sessão atuará como a prova de posse quando um PRT for usado para obter tokens para outros aplicativos.The session key acts as the proof of possession when a PRT is used to obtain tokens for other applications.

Posso ver o que há dentro de um PRT?Can I see what’s in a PRT?

Um PRT é um blob opaco enviado a partir do Azure AD e cujo conteúdo não é conhecido por nenhum componente cliente.A PRT is an opaque blob sent from Azure AD whose contents are not known to any client components. Você não consegue ver o que está dentro de um PRT.You cannot see what’s inside a PRT.

Como um PRT é emitido?How is a PRT issued?

O registro do dispositivo é um pré-requisito para a autenticação baseada em dispositivo no Azure AD.Device registration is a prerequisite for device based authentication in Azure AD. Um PRT só é emitido para usuários em dispositivos registrados.A PRT is issued to users only on registered devices. Para obter detalhes mais aprofundados sobre o registro de dispositivos, consulte o artigo Windows Hello para Empresas e registro de dispositivo.For more in-depth details on device registration, see the article Windows Hello for Business and Device Registration. Durante um registro de dispositivo, o componente dsreg gera dois conjuntos de pares de chaves de criptografia:During device registration, the dsreg component generates two sets of cryptographic key pairs:

  • Chave de dispositivo (dkpub/dkpriv)Device key (dkpub/dkpriv)
  • Chave de transporte (tkpub/tkpriv)Transport key (tkpub/tkpriv)

Caso o dispositivo tenha TPM válido e em funcionamento, as chaves privadas serão associadas a esse TPM; as chaves públicas, por sua vez, são enviadas ao Azure AD durante o processo de registro do dispositivo.The private keys are bound to the device’s TPM if the device has a valid and functioning TPM, while the public keys are sent to Azure AD during the device registration process. Essas chaves são usadas para validar o estado do dispositivo durante a solicitação de um PRT.These keys are used to validate the device state during PRT requests.

Há dois cenários em que o PRT é emitido durante a autenticação do usuário em um dispositivo Windows 10:The PRT is issued during user authentication on a Windows 10 device in two scenarios:

  • Ingressado no Azure AD ou ingressado no Azure AD híbrido: Um PRT será emitido durante o logon no Windows quando um usuário entrar com suas credenciais da organização.Azure AD joined or Hybrid Azure AD joined: A PRT is issued during Windows logon when a user signs in with their organization credentials. Um PRT é emitido com todas as credenciais do Windows 10 que tenham suporte, como senhas e o Windows Hello para Empresas.A PRT is issued with all Windows 10 supported credentials, for example, password and Windows Hello for Business. Nesse cenário, o plug-in CloudAP do Azure AD é considerada a autoridade principal pelo PRT.In this scenario, Azure AD CloudAP plugin is the primary authority for the PRT.
  • Dispositivo registrados no Azure AD: um PRT será emitido quando um usuário adicionar uma conta corporativa secundária ao seu dispositivo Windows 10.Azure AD registered device: A PRT is issued when a user adds a secondary work account to their Windows 10 device. Os usuários podem adicionar uma conta ao Windows 10 de duas formas:Users can add an account to Windows 10 in two different ways -
    • Adicionando uma conta usando o prompt Usar essa conta em qualquer lugar neste dispositivo depois de entrar em um aplicativo (por exemplo, Outlook)Adding an account via the Use this account everywhere on this device prompt after signing in to an app (for example, Outlook)
    • Adicionando uma conta pelo caminho Configurações > Contas > Acesso corporativo ou de estudante > ConectarAdding an account from Settings > Accounts > Access Work or School > Connect

Em cenários com dispositivos registrados do Azure AD, o plug-in WAM do Azure AD é considerado a autoridade principal pelo PRT, pois o logon do Windows não está sendo feito com essa conta do Azure AD.In Azure AD registered device scenarios, the Azure AD WAM plugin is the primary authority for the PRT since Windows logon is not happening with this Azure AD account.

Observação

Provedores de identidade de terceiros precisam ter suporte ao protocolo WS-Trust para habilitar a emissão do PRT em dispositivos Windows 10.3rd party identity providers need to support the WS-Trust protocol to enable PRT issuance on Windows 10 devices. Sem o WS-Trust, o PRT não pode ser emitido para usuários em dispositivos ingressados no Azure AD híbrido ou no Azure AD.Without WS-Trust, PRT cannot be issued to users on Hybrid Azure AD joined or Azure AD joined devices. No ADFS, somente os pontos de extremidade usernamemixed são necessários.On ADFS only usernamemixed endpoints are required. O ADFS/Services/Trust/2005/windowstransport e o ADFS/Services/Trust/13/windowstransport devem ser habilitados como pontos de extremidade voltados para a intranet e não devem ser expostos como pontos de extremidade voltados para a extranet por meio do proxy de aplicativo WebBoth adfs/services/trust/2005/windowstransport and adfs/services/trust/13/windowstransport should be enabled as intranet facing endpoints only and must NOT be exposed as extranet facing endpoints through the Web Application Proxy

Qual é o tempo de vida de um PRT?What is the lifetime of a PRT?

Depois de emitido, um PRT é válido por 14 dias, mas será renovado continuamente desde que o usuário use o dispositivo ativamente.Once issued, a PRT is valid for 14 days and is continuously renewed as long as the user actively uses the device.

Como um PRT é usado?How is a PRT used?

Um PRT é usado por dois componentes fundamentais no Windows:A PRT is used by two key components in Windows:

  • Plug-in CloudAP do Azure AD: ao entrar no Windows, o plug-in CloudAP do Azure AD solicita um PRT do Azure AD usando as credenciais fornecidas pelo usuário.Azure AD CloudAP plugin: During Windows sign in, the Azure AD CloudAP plugin requests a PRT from Azure AD using the credentials provided by the user. Ele também armazena o PRT em cache para habilitar a entrada armazenada em cache quando o usuário não tiver acesso a uma conexão com a Internet.It also caches the PRT to enable cached sign in when the user does not have access to an internet connection.
  • Plug-in WAM do Azure AD: quando usuários tentam acessar aplicativos, o plug-in WAM do Azure AD usa o PRT para habilitar o SSO no Windows 10.Azure AD WAM plugin: When users try to access applications, the Azure AD WAM plugin uses the PRT to enable SSO on Windows 10. O plug-in WAM do Azure AD usa o PRT para solicitar tokens de atualização e de acesso para aplicativos que dependem do WAM para solicitações de token.Azure AD WAM plugin uses the PRT to request refresh and access tokens for applications that rely on WAM for token requests. Ele também injeta o PRT nas solicitações do navegador para habilitar o SSO em navegadores.It also enables SSO on browsers by injecting the PRT into browser requests. O SSO do navegador no Windows 10 tem suporte no Microsoft Edge (nativamente) e no Chrome (por meio das contas do Windows 10 ou extensões do Office Online).Browser SSO in Windows 10 is supported on Microsoft Edge (natively) and Chrome (via the Windows 10 Accounts or Office Online extensions).

Como um PRT é renovado?How is a PRT renewed?

Um PRT é renovado por meio de dois métodos:A PRT is renewed in two different methods:

  • Plug-in CloudAP do Azure AD a cada 4 horas: o plug-in CloudAP renova o PRT a cada 4 horas durante a entrada no Windows.Azure AD CloudAP plugin every 4 hours: The CloudAP plugin renews the PRT every 4 hours during Windows sign in. Caso o usuário esteja sem uma conexão com a Internet nesse momento, o plug-in CloudAP renovará o PRT depois que o dispositivo estiver conectado à Internet.If the user does not have internet connection during that time, CloudAP plugin will renew the PRT after the device is connected to the internet.
  • Plug-in WAM do Azure AD durante solicitações de token de aplicativo: o plug-in WAM habilita o SSO em dispositivos Windows 10 por meio da habilitação de solicitações de token silencioso para aplicativos.Azure AD WAM plugin during app token requests: The WAM plugin enables SSO on Windows 10 devices by enabling silent token requests for applications. O plug-in WAM pode renovar o PRT durante essas solicitações de token de duas maneiras:The WAM plugin can renew the PRT during these token requests in two different ways:
    • Um aplicativo solicita o WAM a um token de acesso silenciosamente, mas não há um token de atualização disponível para esse aplicativo.An app requests WAM for an access token silently but there’s no refresh token available for that app. Nesse caso, o WAM usa o PRT para solicitar um token para o aplicativo e retorna um novo PRT na resposta.In this case, WAM uses the PRT to request a token for the app and gets back a new PRT in the response.
    • Um aplicativo solicita o WAM a um token de acesso, mas o PRT é inválido ou o Azure AD requer autorização adicional (por exemplo, Autenticação Multifator do Microsoft Azure).An app requests WAM for an access token but the PRT is invalid or Azure AD requires additional authorization (for example, Azure Multi-Factor Authentication). Nesse cenário, o WAM inicia um logon interativo que requer que o usuário seja reautenticado ou forneça uma verificação adicional, e um novo PRT é emitido na autenticação bem-sucedida.In this scenario, WAM initiates an interactive logon requiring the user to reauthenticate or provide additional verification and a new PRT is issued on successful authentication.

Em um ambiente do ADFS, a linha de visão direta para o controlador de domínio não é necessária para renovar o PRT.In an ADFS environment, direct line of sight to the domain controller isn't required to renew the PRT. A renovação de PRT requer apenas pontos de extremidade/ADFS/Services/Trust/2005/usernamemixed e/ADFS/Services/Trust/13/usernamemixed habilitados no proxy usando WS-Trust protocolo.PRT renewal requires only /adfs/services/trust/2005/usernamemixed and /adfs/services/trust/13/usernamemixed endpoints enabled on proxy by using WS-Trust protocol.

Os pontos de extremidade de transporte do Windows são necessários para a autenticação de senha somente quando uma senha é alterada, não para a renovação de PRT.Windows transport endpoints are required for password authentication only when a password is changed, not for PRT renewal.

Considerações-chaveKey considerations

  • Um PRT só é emitido e renovado durante uma autenticação de aplicativo nativo.A PRT is only issued and renewed during native app authentication. Um PRT não é renovado nem emitido durante uma sessão do navegador.A PRT is not renewed or issued during a browser session.
  • Nos dispositivos ingressados no Azure AD e no Azure AD híbrido, o plug-in CloudAP é considerado a autoridade principal de um PRT.In Azure AD joined and hybrid Azure AD joined devices, the CloudAP plugin is the primary authority for a PRT. Caso um PRT seja renovado durante uma solicitação de token baseada em WAM, o PRT será enviado de volta para o plug-in CloudAP, o qual verificará sua validade com o Azure AD antes de aceitá-lo.If a PRT is renewed during a WAM-based token request, the PRT is sent back to CloudAP plugin, which verifies the validity of the PRT with Azure AD before accepting it.

Como o PRT é protegido?How is the PRT protected?

Um PRT é protegido ao ser associado ao dispositivo no qual o usuário entrou.A PRT is protected by binding it to the device the user has signed in to. O Azure AD e o Windows 10 habilitam a proteção do PRT por meio dos seguintes métodos:Azure AD and Windows 10 enable PRT protection through the following methods:

  • Durante a primeira entrada: durante a primeira entrada, um PRT é emitido por meio de solicitações de assinatura usando a chave do dispositivo gerada criptograficamente durante o registro do dispositivo.During first sign in: During first sign in, a PRT is issued by signing requests using the device key cryptographically generated during device registration. Em um dispositivo com um TPM válido e em funcionamento, a chave do dispositivo é protegida pelo TPM, o que impede qualquer acesso mal-intencionado.On a device with a valid and functioning TPM, the device key is secured by the TPM preventing any malicious access. Um PRT não será emitido se não for possível validar a assinatura da chave de dispositivo correspondente.A PRT is not issued if the corresponding device key signature cannot be validated.
  • Durante solicitações e renovações de token: quando um PRT é emitido, o Azure AD também emite uma chave da sessão criptografada para o dispositivo.During token requests and renewal: When a PRT is issued, Azure AD also issues an encrypted session key to the device. Ele é criptografado com a chave de transporte pública (tkpub) gerada e enviada ao Azure AD como parte do registro do dispositivo.It is encrypted with the public transport key (tkpub) generated and sent to Azure AD as part of device registration. Essa chave da sessão só pode ser descriptografada pela chave de transporte privada (tkpriv) protegida pelo TPM.This session key can only be decrypted by the private transport key (tkpriv) secured by the TPM. A chave da sessão é a chave PoP (Prova de posse) para todas as solicitações enviadas ao Azure AD.The session key is the Proof-of-Possession (POP) key for any requests sent to Azure AD. A chave da sessão também é protegida pelo TPM, e nenhum outro componente do sistema operacional pode acessá-la.The session key is also protected by the TPM and no other OS component can access it. As solicitações de token ou de renovação de PRT são assinadas com segurança por essa chave da sessão por meio do TPM e, portanto, não podem ser adulteradas.Token requests or PRT renewal requests are securely signed by this session key through the TPM and hence, cannot be tampered with. O Azure AD invalidará quaisquer solicitações do dispositivo que não estejam assinadas pela chave da sessão correspondente.Azure AD will invalidate any requests from the device that are not signed by the corresponding session key.

Ao usar o TPM para proteger essas chaves, os atores mal-intencionados não podem roubar as chaves nem reproduzir o PRT em outro lugar, pois o TPM estará inacessível mesmo que um invasor tenha posse física do dispositivo.By securing these keys with the TPM, malicious actors cannot steal the keys nor replay the PRT elsewhere as the TPM is inaccessible even if an attacker has physical possession of the device. Portanto, o uso de um TPM aprimora muito a segurança de dispositivos ingressados no Azure AD, ingressados no Azure AD híbrido e registrados no Azure AD contra o roubo de credenciais.Thus, using a TPM greatly enhances the security of Azure AD Joined, Hybrid Azure AD joined, and Azure AD registered devices against credential theft. Para melhor desempenho e confiabilidade, o TPM 2.0 é a versão recomendada para todos os cenários de registro de dispositivo do Azure AD no Windows 10.For performance and reliability, TPM 2.0 is the recommended version for all Azure AD device registration scenarios on Windows 10.

Como tokens de aplicativo e cookies de navegador são protegidos?How are app tokens and browser cookies protected?

Tokens de aplicativo: quando um aplicativo solicita um token por meio do WAM, o Azure AD emite um token de atualização e um token de acesso.App tokens: When an app requests token through WAM, Azure AD issues a refresh token and an access token. Porém, o WAM retorna apenas o token de acesso para o aplicativo e protege o token de atualização em seu cache por meio da criptografia com a chave DPAPI (interface de programação de aplicativo de proteção de dados) do usuário.However, WAM only returns the access token to the app and secures the refresh token in its cache by encrypting it with the user’s data protection application programming interface (DPAPI) key. O WAM usa o token de atualização de modo seguro por meio da assinatura de solicitações com a chave da sessão para emitir mais tokens de acesso.WAM securely uses the refresh token by signing requests with the session key to issue further access tokens. A chave DPAPI é protegida por uma chave simétrica baseada no Azure AD presente no próprio Azure AD.The DPAPI key is secured by an Azure AD based symmetric key in Azure AD itself. Quando o dispositivo precisa descriptografar o perfil do usuário com a chave DPAPI, o Azure AD a fornece criptografada pela chave da sessão, e o plug-in CloudAP solicitará o TPM para descriptografá-la.When the device needs to decrypt the user profile with the DPAPI key, Azure AD provides the DPAPI key encrypted by the session key, which CloudAP plugin requests TPM to decrypt. Essa funcionalidade garante a consistência na proteção de tokens de atualização e evita que os aplicativos implementem seus próprios mecanismos de proteção.This functionality ensures consistency in securing refresh tokens and avoids applications implementing their own protection mechanisms.

Cookies do navegador: no Windows 10, o Azure AD tem suporte nativo ao SSO do navegador no Internet Explorer e no Microsoft Edge e, no Google Chrome, esse suporte se dá por meio da extensão de contas do Windows 10.Browser cookies: In Windows 10, Azure AD supports browser SSO in Internet Explorer and Microsoft Edge natively or in Google Chrome via the Windows 10 accounts extension. A segurança é criada para proteger os cookies e também os pontos de extremidade para os quais eles são enviados.The security is built not only to protect the cookies but also the endpoints to which the cookies are sent. Os cookies do navegador são protegidos da mesma maneira que um PRT, ou seja, usando a chave da sessão para assiná-los e protegê-los.Browser cookies are protected the same way a PRT is, by utilizing the session key to sign and protect the cookies.

Quando um usuário inicia uma interação com o navegador, o navegador (ou a extensão) invoca um host cliente nativo do COM.When a user initiates a browser interaction, the browser (or extension) invokes a COM native client host. O host do cliente nativo garante que a página seja oriunda de um dos domínios permitidos.The native client host ensures that the page is from one of the allowed domains. O navegador poderia enviar outros parâmetros para o host do cliente nativo, inclusive um nonce, porém, o host do cliente nativo garante a validação do nome do host.The browser could send other parameters to the native client host, including a nonce, however the native client host guarantees validation of the hostname. O host do cliente nativo solicita um cookie do PRT do plug-in CloudAP, o qual o cria e o assina com a chave da sessão protegida do TPM.The native client host requests a PRT-cookie from CloudAP plugin, which creates and signs it with the TPM-protected session key. Como o cookie do PRT é assinado pela chave da sessão, ele não pode ser adulterado.As the PRT-cookie is signed by the session key, it cannot be tampered with. Esse o cookie do PRT é incluído no cabeçalho de solicitação do Azure AD para validar o dispositivo do qual ele se origina.This PRT-cookie is included in the request header for Azure AD to validate the device it is originating from. Caso esteja usando o navegador Chrome, apenas a extensão explicitamente definida no manifesto do host do cliente nativo poderá chamá-lo impedindo que extensões arbitrárias façam essas solicitações.If using the Chrome browser, only the extension explicitly defined in the native client host’s manifest can invoke it preventing arbitrary extensions from making these requests. Depois que o Azure AD validar o cookie do PRT, ele emitirá um cookie de sessão para o navegador.Once Azure AD validates the PRT cookie, it issues a session cookie to the browser. Esse cookie de sessão também contém a mesma chave da sessão emitida com um PRT.This session cookie also contains the same session key issued with a PRT. Durante as solicitações subsequentes, a chave da sessão será validada, associando efetivamente o cookie ao dispositivo e impedindo reproduções de outros locais.During subsequent requests, the session key is validated effectively binding the cookie to the device and preventing replays from elsewhere.

Quando um PRT obtém uma declaração de MFA?When does a PRT get an MFA claim?

Um PRT consegue obter uma declaração de MFA (autenticação multifator) em cenários específicos.A PRT can get a multi-factor authentication (MFA) claim in specific scenarios. Quando um PRT baseado na MFA é usado para solicitar tokens para aplicativos, a declaração de MFA é transferida para esses tokens de aplicativo.When an MFA-based PRT is used to request tokens for applications, the MFA claim is transferred to those app tokens. Essa funcionalidade fornece uma experiência sem contratempos aos usuários ao evitar o desafio de MFA para cada aplicativo que o exigir.This functionality provides a seamless experience to users by preventing MFA challenge for every app that requires it. Um PRT consegue obter uma declaração de MFA das maneiras a seguir:A PRT can get an MFA claim in the following ways:

  • Entrar com o Windows Hello para Empresas: O Windows Hello para Empresas substitui senhas e usa chaves criptográficas para fornecer uma autenticação forte de dois fatores.Sign in with Windows Hello for Business: Windows Hello for Business replaces passwords and uses cryptographic keys to provide strong two-factor authentication. O Windows Hello para Empresas é específico a um usuário em um dispositivo e ele mesmo requer a MFA para provisionar.Windows Hello for Business is specific to a user on a device, and itself requires MFA to provision. Quando um usuário faz logon usando o Windows Hello para Empresas, o PRT do usuário obtém uma declaração de MFA.When a user logs in with Windows Hello for Business, the user’s PRT gets an MFA claim. Esse cenário também se aplica a usuários que fazem logon com cartões inteligentes caso a autenticação de cartões inteligentes produza uma declaração de MFA do ADFS.This scenario also applies to users logging in with smartcards if smartcard authentication produces an MFA claim from ADFS.
    • Como o Windows Hello para Empresas é considerado uma autenticação multifator, a declaração MFA é atualizada quando o próprio PRT é atualizado, portanto, a duração da MFA se estenderá continuamente quando os usuários entrarem usando o Windows Hello para Empresas.As Windows Hello for Business is considered multi-factor authentication, the MFA claim is updated when the PRT itself is refreshed, so the MFA duration will continually extend when users sign in with WIndows Hello for Business
  • MFA durante uma entrada interativa do WAM: durante uma solicitação de token por meio do WAM, caso um usuário seja solicitado a usar a MFA para acessar o aplicativo, o PRT renovado durante essa interação será impresso com uma declaração de MFA.MFA during WAM interactive sign in: During a token request through WAM, if a user is required to do MFA to access the app, the PRT that is renewed during this interaction is imprinted with an MFA claim.
    • Nesse caso, a declaração de MFA não é atualizada continuamente, portanto, sua duração é baseada no tempo de vida definido no diretório.In this case, the MFA claim is not updated continuously, so the MFA duration is based on the lifetime set on the directory.
    • Quando um PRT e um RT já existentes são usados para o acesso a um aplicativo, eles são considerados a primeira prova de autenticação.When a previous existing PRT and RT are used for access to an app, the PRT and RT will be regarded as the first proof of authentication. Um novo AT será requerido, com uma segunda prova e uma declaração de MFA impressa.A new AT will be required with a second proof and an imprinted MFA claim. Isso também emitirá um PRT e um RT novos.This will also issue a new PRT and RT.
  • MFA durante o registro do dispositivo: caso um administrador tenha definido suas configurações de dispositivo no Azure AD para requerer uma MFA para registrar dispositivos, o usuário precisará usar a MFA para concluir o registro.MFA during device registration: If an admin has configured their device settings in Azure AD to require MFA to register devices, the user needs to do MFA to complete the registration. Durante esse processo, a declaração de MFA do PRT emitido para o usuário será obtida durante o registro.During this process, the PRT that is issued to the user has the MFA claim obtained during the registration. Essa funcionalidade só se aplicará ao usuário que tiver feito a operação de ingresso e não a outros usuários que entrarem nesse dispositivo.This capability only applies to the user who did the join operation, not to other users who sign in to that device.
    • De modo semelhante à entrada interativa do WAM, a declaração de MFA não é atualizada continuamente, portanto, sua duração é baseada no tempo de vida definido no diretório.Similar to the WAM interactive sign in, the MFA claim is not updated continuously, so the MFA duration is based on the lifetime set on the directory.

O Windows 10 mantém uma lista particionada de PRTs para cada credencial.Windows 10 maintains a partitioned list of PRTs for each credential. Assim, há um PRT para cada Windows Hello para Empresas, senha ou cartão inteligente.So, there’s a PRT for each of Windows Hello for Business, password, or smartcard. Esse particionamento garante que as declarações de MFA sejam isoladas com base na credencial usada e que não sejam misturadas durante solicitações de token.This partitioning ensures that MFA claims are isolated based on the credential used, and not mixed up during token requests.

Como um PRT é invalidado?How is a PRT invalidated?

Um PRT é invalidado nos seguintes cenários:A PRT is invalidated in the following scenarios:

  • Usuário inválido: se um usuário for excluído ou desabilitado no Azure AD, seu PRT será invalidado e não poderá ser usado para obter tokens para aplicativos.Invalid user: If a user is deleted or disabled in Azure AD, their PRT is invalidated and cannot be used to obtain tokens for applications. Se um usuário excluído ou desabilitado já tiver entrado em um dispositivo antes, a entrada armazenada em cache faria o logon até que CloudAP ficasse ciente do seu estado inválido.If a deleted or disabled user already signed in to a device before, cached sign-in would log them in, until CloudAP is aware of their invalid state. Assim que CloudAP determinar que o usuário é inválido, ele bloqueará logons subsequentes.Once CloudAP determines that the user is invalid, it blocks subsequent logons. A entrada de um usuário inválido será automaticamente bloqueada em novos dispositivos que não tenham suas credenciais armazenadas em cache.An invalid user is automatically blocked from sign in to new devices that don’t have their credentials cached.
  • Dispositivo inválido: se um dispositivo for excluído ou desabilitado no Azure AD, o PRT obtido será invalidado e não poderá ser usado para obter tokens para outros aplicativos.Invalid device: If a device is deleted or disabled in Azure AD, the PRT obtained on that device is invalidated and cannot be used to obtain tokens for other applications. Se um usuário estiver conectado em um dispositivo inválido, ele poderá continuar fazendo isso.If a user is already signed in to an invalid device, they can continue to do so. Mas todos os tokens no dispositivo serão invalidados, e o usuário não terá o SSO para nenhum recurso desse dispositivo.But all tokens on the device are invalidated and the user does not have SSO to any resources from that device.
  • Alteração de senha: quando um usuário alterar sua senha, o PRT obtido com a senha anterior será invalidado pelo Azure AD.Password change: After a user changes their password, the PRT obtained with the previous password is invalidated by Azure AD. Ao alterar a senha, o usuário receberá um novo PRT.Password change results in the user getting a new PRT. Essa invalidação pode ocorrer de duas maneiras:This invalidation can happen in two different ways:
    • Caso o usuário entre no Windows com sua nova senha, o CloudAP descartará o PRT antigo e solicitará que o Azure AD emita um novo PRT com a nova senha.If user signs in to Windows with their new password, CloudAP discards the old PRT and requests Azure AD to issue a new PRT with their new password. Caso o usuário não tenha uma conexão com a Internet, a nova senha não poderá ser validada, e o Windows poderá exigir que o usuário insira sua senha antiga.If user does not have an internet connection, the new password cannot be validated, Windows may require the user to enter their old password.
    • Caso um usuário tenha feito logon com sua senha antiga ou tenha alterado sua senha depois de entrar no Windows, o PRT antigo será usado para qualquer solicitação de token baseada em WAM.If a user has logged in with their old password or changed their password after signing into Windows, the old PRT is used for any WAM-based token requests. Nesse cenário, o usuário é solicitado a fazer a reautenticação durante a solicitação de token do WAM, e um novo PRT é emitido.In this scenario, the user is prompted to reauthenticate during the WAM token request and a new PRT is issued.
  • Problemas do TPM: às vezes, o TPM de um dispositivo pode apresentar problemas ou falhar, levando à inacessibilidade de chaves protegidas pelo TPM.TPM issues: Sometimes, a device’s TPM can falter or fail, leading to inaccessibility of keys secured by the TPM. Nesse caso, o dispositivo não consegue obter um PRT nem solicitar tokens usando um PRT existente, pois ele não pode provar a posse das chaves de criptografia.In this case, the device is incapable of getting a PRT or requesting tokens using an existing PRT as it cannot prove possession of the cryptographic keys. Como resultado, todos os PRTs existentes são invalidados pelo Azure AD.As a result, any existing PRT is invalidated by Azure AD. Ao detectar uma falha, o Windows 10 inicia um fluxo de recuperação para registrar novamente o dispositivo com novas chaves de criptografia.When Windows 10 detects a failure, it initiates a recovery flow to re-register the device with new cryptographic keys. Com o ingresso do Azure AD híbrido, assim como o registro inicial, a recuperação ocorre silenciosamente, sem a entrada do usuário.With Hybrid Azure Ad join, just like the initial registration, the recovery happens silently without user input. Para dispositivos ingressados ou registrados no Azure AD, a recuperação precisa ser executada por um usuário que tenha privilégios de administrador no dispositivo.For Azure AD joined or Azure AD registered devices, the recovery needs to be performed by a user who has administrator privileges on the device. Nesse cenário, o fluxo de recuperação é iniciado por um prompt do Windows que guia o usuário a recuperar o dispositivo com sucesso.In this scenario, the recovery flow is initiated by a Windows prompt that guides the user to successfully recover the device.

Fluxos detalhadosDetailed flows

Os diagramas a seguir ilustram os detalhes subjacentes na emissão, na renovação e no uso de um PRT para solicitar um token de acesso para um aplicativo.The following diagrams illustrate the underlying details in issuing, renewing, and using a PRT to request an access token for an application. Além disso, essas etapas também descrevem como os mecanismos de segurança supramencionados são aplicados durante essas interações.In addition, these steps also describe how the aforementioned security mechanisms are applied during these interactions.

Emissão de PRT durante a primeira entradaPRT issuance during first sign in

Fluxo detalhado da emissão de PRT durante a primeira entrada

Observação

Em dispositivos ingressados ao Azure AD, essa troca ocorre de forma síncrona para emitir um PRT antes que o usuário consiga fazer logon no Windows.In Azure AD joined devices, this exchange happens synchronously to issue a PRT before the user can logon to Windows. Em dispositivos ingressados no Azure AD híbrido, o Active Directory local é a autoridade principal.In hybrid Azure AD joined devices, on-premises Active Directory is the primary authority. Dessa forma, o usuário só está aguardando até que possa adquirir um TGT para fazer logon, enquanto a emissão do PRT ocorre de forma assíncrona.So, the user is only waiting until they can acquire a TGT to login, while the PRT issuance happens asynchronously. Esse cenário não se aplica a dispositivos registrados no Azure AD, pois o logon não usa as credenciais do Azure AD.This scenario does not apply to Azure AD registered devices as logon does not use Azure AD credentials.

EtapaStep DescriçãoDescription
UmA O usuário insere sua senha na interface do usuário de entrada.User enters their password in the sign in UI. A LogonUI passa as credenciais em um buffer de autenticação para o LSA, que, por sua vez, passa-as internamente para o CloudAP.LogonUI passes the credentials in an auth buffer to LSA, which in turns passes it internally to CloudAP. O CloudAP encaminha essa solicitação ao plug-in CloudAP.CloudAP forwards this request to the CloudAP plugin.
BB O plug-in CloudAP inicia uma solicitação de descoberta de realm para identificar o provedor de identidade do usuário.CloudAP plugin initiates a realm discovery request to identify the identity provider for the user. Caso o locatário do usuário tenha uma configuração de provedor de federação, o Azure AD retornará o ponto de extremidade MEX (Metadata Endpoint) do provedor de federação.If user’s tenant has a federation provider setup, Azure AD returns the federation provider’s Metadata Exchange endpoint (MEX) endpoint. Caso contrário, o Azure AD retorna que o usuário é gerenciado, indicando que ele pode se autenticar com o Azure AD.If not, Azure AD returns that the user is managed indicating that user can authenticate with Azure AD.
CC Caso o usuário seja gerenciado, o CloudAP receberá o nonce do Azure AD.If the user is managed, CloudAP will get the nonce from Azure AD. Caso o usuário seja federado, o plug-in CloudAP solicitará um token SAML do provedor de federação com as credenciais do usuário.If the user is federated, CloudAP plugin requests a SAML token from the federation provider with the user’s credentials. Depois de ter recebido, o token SAML solicita um nonce do Azure AD.Once it receives, the SAML token, it requests a nonce from Azure AD.
DD O plug-in CloudAP constrói a solicitação de autenticação com as credenciais do usuário, o nonce e um escopo do agente, assina a solicitação com a chave do dispositivo (dkpriv) e a envia ao Azure AD.CloudAP plugin constructs the authentication request with the user’s credentials, nonce, and a broker scope, signs the request with the Device key (dkpriv) and sends it to Azure AD. Em um ambiente federado, o plug-in CloudAP usa o token SAML retornado pelo provedor de federação em vez das credenciais do usuário.In a federated environment, CloudAP plugin uses the SAML token returned by the federation provider instead of the user’ credentials.
EE O Azure AD valida as credenciais do usuário, o nonce e a assinatura do dispositivo, depois verifica se o dispositivo é válido no locatário e emite o PRT criptografado.Azure AD validates the user credentials, the nonce, and device signature, verifies that the device is valid in the tenant and issues the encrypted PRT. Juntamente com o PRT, o Azure AD também emite uma chave simétrica, chamada de chave da sessão criptografada pelo Azure AD usando a chave de transporte (tkpub).Along with the PRT, Azure AD also issues a symmetric key, called the Session key encrypted by Azure AD using the Transport key (tkpub). Além disso, a chave da sessão também é inserida no PRT.In addition, the Session key is also embedded in the PRT. Essa chave da sessão atua como a chave PoP para solicitações subsequentes com o PRT.This Session key acts as the Proof-of-possession (PoP) key for subsequent requests with the PRT.
FF O plug-in CloudAP passa o PRT criptografado e a chave da sessão para o CloudAP.CloudAP plugin passes the encrypted PRT and Session key to CloudAP. O CloudAP solicita ao TPM que descriptografe a chave da sessão usando a chave de transporte (tkpriv) e a recriptografe usando a própria chave do TPM.CloudAP request the TPM to decrypt the Session key using the Transport key (tkpriv) and re-encrypt it using the TPM’s own key. O CloudAP armazena a chave da sessão criptografada em seu cache, junto com o PRT.CloudAP stores the encrypted Session key in its cache along with the PRT.

Renovação do PRT em logons subsequentesPRT renewal in subsequent logons

Renovação do PRT em logons subsequentes

EtapaStep DescriçãoDescription
UmA O usuário insere sua senha na interface do usuário de entrada.User enters their password in the sign in UI. A LogonUI passa as credenciais em um buffer de autenticação para o LSA, que, por sua vez, passa-as internamente para o CloudAP.LogonUI passes the credentials in an auth buffer to LSA, which in turns passes it internally to CloudAP. O CloudAP encaminha essa solicitação ao plug-in CloudAP.CloudAP forwards this request to the CloudAP plugin.
BB Caso o usuário tenha feito logon anteriormente ao usuário, o Windows iniciará a entrada em cache e validará as credenciais para fazer o logon do usuário.If the user has previously logged on to the user, Windows initiates cached sign in and validates credentials to log the user in. A cada 4 horas, o plug-in CloudAP inicia a renovação do PRT de forma assíncrona.Every 4 hours, the CloudAP plugin initiates PRT renewal asynchronously.
CC O plug-in CloudAP inicia uma solicitação de descoberta de realm para identificar o provedor de identidade do usuário.CloudAP plugin initiates a realm discovery request to identify the identity provider for the user. Caso o locatário do usuário tenha uma configuração de provedor de federação, o Azure AD retornará o ponto de extremidade MEX (Metadata Endpoint) do provedor de federação.If user’s tenant has a federation provider setup, Azure AD returns the federation provider’s Metadata Exchange endpoint (MEX) endpoint. Caso contrário, o Azure AD retorna que o usuário é gerenciado, indicando que ele pode se autenticar com o Azure AD.If not, Azure AD returns that the user is managed indicating that user can authenticate with Azure AD.
DD Caso o usuário seja federado, o plug-in CloudAP solicitará um token SAML do provedor de federação com as credenciais do usuário.If the user is federated, CloudAP plugin requests a SAML token from the federation provider with the user’s credentials. Depois de ter recebido, o token SAML solicita um nonce do Azure AD.Once it receives, the SAML token, it requests a nonce from Azure AD. Caso o usuário seja gerenciado, o CloudAP receberá diretamente o nonce do Azure AD.If the user is managed, CloudAP will directly get the nonce from Azure AD.
EE O plug-in CloudAP constrói a solicitação de autenticação com as credenciais do usuário, o nonce e o PRT existente, assina a solicitação com a chave da sessão e a envia ao Azure AD.CloudAP plugin constructs the authentication request with the user’s credentials, nonce, and the existing PRT, signs the request with the Session key and sends it to Azure AD. Em um ambiente federado, o plug-in CloudAP usa o token SAML retornado pelo provedor de federação em vez das credenciais do usuário.In a federated environment, CloudAP plugin uses the SAML token returned by the federation provider instead of the user’ credentials.
FF O Azure AD valida a assinatura de chave da sessão comparando-a com a chave da sessão inserida no PRT, valida o nonce e, depois, verifica se o dispositivo é válido no locatário e emite um novo PRT.Azure AD validates the Session key signature by comparing it against the Session key embedded in the PRT, validates the nonce and verifies that the device is valid in the tenant and issues a new PRT. Como visto anteriormente, o PRT é novamente acompanhado pela chave da sessão criptografada pela chave de transporte (tkpub).As seen before, the PRT is again accompanied with the Session key encrypted by Transport key (tkpub).
GG O plug-in CloudAP passa o PRT criptografado e a chave da sessão para o CloudAP.CloudAP plugin passes the encrypted PRT and Session key to CloudAP. O CloudAP solicita ao TPM que descriptografe a chave da sessão usando a chave de transporte (tkpriv) e a recriptografe usando a própria chave do TPM.CloudAP requests the TPM to decrypt the Session key using the Transport key (tkpriv) and re-encrypt it using the TPM’s own key. O CloudAP armazena a chave da sessão criptografada em seu cache, junto com o PRT.CloudAP stores the encrypted Session key in its cache along with the PRT.

Observação

Um PRT pode ser renovado externamente sem a necessidade de uma conexão VPN quando os pontos de extremidade usernamemixed são habilitados externamente.A PRT can be renewed externally without the need of a VPN connection when usernamemixed endpoints are enabled externally.

Uso do PRT durante solicitações de token de aplicativoPRT usage during app token requests

Uso do PRT durante solicitações de token de aplicativo

EtapaStep DescriçãoDescription
UmA Um aplicativo (por exemplo, Outlook, OneNote etc.) inicia uma solicitação de token para o WAM.An application (for example, Outlook, OneNote etc.) initiates a token request to WAM. O WAM, por sua vez, solicita ao plug-in WAM do Azure AD que atenda à solicitação de token.WAM, in turn, asks the Azure AD WAM plugin to service the token request.
BB Caso um token de atualização do aplicativo já esteja disponível, o plug-in WAM do Azure AD o usará para solicitar um token de acesso.If a Refresh token for the application is already available, Azure AD WAM plugin uses it to request an access token. Para fornecer uma prova de associação ao dispositivo, o plug-in WAM assinará a solicitação com a chave da sessão.To provide proof of device binding, WAM plugin signs the request with the Session key. O Azure AD valida a chave da sessão e emite um token de acesso e um novo token de atualização para o aplicativo, criptografados pela chave da sessão.Azure AD validates the Session key and issues an access token and a new refresh token for the app, encrypted by the Session key. O plug-in WAM solicita que o plug-in CloudAP descriptografe os tokens, o qual, por sua vez, solicita que o TPM descriptografe usando a chave da sessão, o que resulta no plug-in WAM obtendo ambos os tokens.WAM plugin requests Cloud AP plugin to decrypt the tokens, which, in turn, requests the TPM to decrypt using the Session key, resulting in WAM plugin getting both the tokens. Em seguida, o plug-in WAM fornece apenas o token de acesso para o aplicativo enquanto recriptografa o token de atualização com a DPAPI e o armazena em seu próprio cache.Next, WAM plugin provides only the access token to the application, while it re-encrypts the refresh token with DPAPI and stores it in its own cache
CC Caso um token de atualização do aplicativo não esteja disponível, o plug-in WAM do Azure AD usará o PRT para solicitar um token de acesso.If a Refresh token for the application is not available, Azure AD WAM plugin uses the PRT to request an access token. Para fornecer uma prova de posse, o plug-in WAM assinará a solicitação contendo o PRT com a chave da sessão.To provide proof of possession, WAM plugin signs the request containing the PRT with the Session key. O Azure AD valida a assinatura de chave da sessão comparando-a com a chave da sessão inserida no PRT, verifica se o dispositivo é válido e emite um token de acesso e um token de atualização para o aplicativo.Azure AD validates the Session key signature by comparing it against the Session key embedded in the PRT, verifies that the device is valid and issues an access token and a refresh token for the application. Além disso, o Azure AD pode emitir novos PRTs (baseados no ciclo de atualização), todos eles criptografados pela chave da sessão.in addition, Azure AD can issue a new PRT (based on refresh cycle), all of them encrypted by the Session key.
DD O plug-in WAM solicita que o plug-in CloudAP descriptografe os tokens, o qual, por sua vez, solicita que o TPM descriptografe usando a chave da sessão, o que resulta no plug-in WAM obtendo ambos os tokens.WAM plugin requests Cloud AP plugin to decrypt the tokens, which, in turn, requests the TPM to decrypt using the Session key, resulting in WAM plugin getting both the tokens. Em seguida, o plug-in WAM fornece apenas o token de acesso para o aplicativo enquanto recriptografa o token de atualização com a DPAPI e o armazena em seu próprio cache.Next, WAM plugin provides only the access token to the application, while it re-encrypts the refresh token with DPAPI and stores it in its own cache. O plug-in WAM usará o token de atualização nesse aplicativo desse momento em diante.WAM plugin will use the refresh token going forward for this application. O plug-in WAM também retorna o novo PRT ao plug-in de CloudAP, o qual valida o PRT com o Azure AD antes de atualizá-lo em seu próprio cache.WAM plugin also gives back the new PRT to Cloud AP plugin, which validates the PRT with Azure AD before updating it in its own cache. O plug-in CloudAP usará o novo PRT desse momento em diante.Cloud AP plugin will use the new PRT going forward.
EE O WAM fornece o token de acesso emitido recentemente ao WAM, o qual, por sua vez, o fornece de volta para o aplicativo de chamada.WAM provides the newly issued access token to WAM, which in turn, provides it back to the calling application

SSO do navegador usando o PRTBrowser SSO using PRT

SSO do navegador usando o PRT

EtapaStep DescriçãoDescription
UmA O usuário faz logon no Windows com suas próprias credenciais para obter um PRT.User logs in to Windows with their credentials to get a PRT. Assim que o usuário abrir o navegador, o navegador (ou extensão) carregará as URLs a partir do registro.Once user opens the browser, browser (or extension) loads the URLs from the registry.
BB Quando um usuário abre uma URL de logon do Azure AD, o navegador ou a extensão valida a URL com aquelas obtidas a partir do registro.When a user opens an Azure AD login URL, the browser or extension validates the URL with the ones obtained from the registry. Caso elas sejam correspondentes, o navegador invocará o host do cliente nativo para obter um token.If they match, the browser invokes the native client host for getting a token.
CC O host de cliente nativo valida que as URLs pertencem aos provedores de identidade da Microsoft (conta Microsoft ou Azure AD), extrai um nonce enviado a partir da URL e faz uma chamada para o plug-in CloudAP para obter um cookie do PRT.The native client host validates that the URLs belong to the Microsoft identity providers (Microsoft account or Azure AD), extracts a nonce sent from the URL and makes a call to CloudAP plugin to get a PRT cookie.
DD O plug-in CloudAP criará o cookie do PRT, entrará com a chave da sessão associada ao TPM e a enviará de volta para o host do cliente nativo.The CloudAP plugin will create the PRT cookie, sign in with the TPM-bound session key and send it back to the native client host. Como o cookie é assinado pela chave da sessão, ele não pode ser adulterado.As the cookie is signed by the session key, it cannot be tampered with.
EE O host do cliente nativo retornará esse cookie do PRT ao navegador, o qual o incluirá como parte do cabeçalho de solicitação chamado x-ms-RefreshTokenCredential e solicitará tokens do Azure AD.The native client host will return this PRT cookie to the browser, which will include it as part of the request header called x-ms-RefreshTokenCredential and request tokens from Azure AD.
FF O Azure AD valida a assinatura da chave da sessão no cookie do PRT, valida o nonce, verifica se o dispositivo é válido no locatário e emite um token de ID para a página da Web e um cookie de sessão criptografado para o navegador.Azure AD validates the Session key signature on the PRT cookie, validates the nonce, verifies that the device is valid in the tenant, and issues an ID token for the web page and an encrypted session cookie for the browser.

Observação

O fluxo de SSO do navegador descrito nas etapas acima não se aplica a sessões em modos privados, como InPrivate no Microsoft Edge, ou Incognito no Google Chrome (ao usar a extensão de contas da Microsoft).The Browser SSO flow described in the steps above does not apply for sessions in private modes such as InPrivate in Microsoft Edge, or Incognito in Google Chrome (when using the Microsoft Accounts extension).

Próximas etapasNext steps

Para obter mais informações sobre como solucionar problemas relacionados ao PRT, consulte o artigo Solucionar problemas de dispositivos Windows 10 e Windows Server 2016 ingressados no Azure Active Directory híbrido.For more information on troubleshooting PRT-related issues, see the article Troubleshooting hybrid Azure Active Directory joined Windows 10 and Windows Server 2016 devices.