Entra ID Devices & Primary Refresh Tokens
Last updated
Last updated
There are three types of device identities:
Microsoft Entra join
These are organization owned devices and heavily managed using Intune. Only Windows 11, 10 and Server 2019 machines running on Azure. These can be accessed using Azure AD accounts.
Microsoft Entra registration
These can be used owned (BYOD) or organization owned. These are lightly managed. Can be Windows 10 or newer, macOS, Ubuntu and mobile devices.
Microsoft Entra hybrid join
Organization owned devices joined to on-premise AD and registered with Entra ID. All supported Windows Desktops en server version
PRT is a special refresh token used for single sign-on. (SSO). It can be used to obtain access and refresh tokens to any application. It is issued to a user for a specific device. It is valid for 90 days and continuously renewed.
CloudAP SSP on Windows devices requests and caches a PRT on a device.
The idea of SSO is that when you have a Entra ID joined device, you want to be able to access any application without having to provide credentials again
MFA & PRT
If a PRT is MFA-based (Windows Hello or Account managed), then the claim is transferred to app tokens to prevent MFA challenge for every application. This means that if you RDP into a machine, it is not MFA based and the claim is not transferred.
If we have access to a PRT, it is possible to request access tokens for any application. First check if there is a user AzureAD\username
Using ROADToken:
Request Nonce:
Next, run the following command to execute from system privileges in the session of the Azure AD user ROADToken.exe:
AADInternals
Mimikatz
First using mimikatz cloudap, extract the key value and the PRT itself:
Copy the key value and PRT. Next, use dpapi
to extract the session key:
Finally, use roadtx to renew and save the PRT:
When a PRT is renewed conditional access is NOT checked
Now we can request a access token for azure resource manager:
Or for MSGraph:
Or open a browser with the token already in place: