RevoGuard is a sandbox environment designed to test the revocation of Managed Identity (MSI) tokens. The workflow allows developers to validate how Azure resources and applications behave when presented with revoked or invalidated tokens.
The workflow follows these stages:
- Token Acquisition: The Managed Identity Host requests a token from the Azure AD (Entra ID) via the local MSI/IMDS endpoint. The host then uses this token to access a Target Resource.
- Revocation: A revocation action is performed via the RevoGuard mechanism to invalidate the token in Azure AD.
- Validation Failure: The Host attempts to use the old token, and the Target Resource must deny access based on the updated revocation status.
- Recovery: The Host requests a fresh token from the MSI/IMDS endpoint and successfully accesses the Target Resource with the new token.
This process is used to measure the latency between a revocation action and the moment a resource begins rejecting the invalidated token.
sequenceDiagram
participant AAD as Azure AD (Entra ID)
participant Host as Managed Identity Host
participant Resource as Target Resource
participant Revo as Revocation Mechanism
participant Monitor as Monitoring & Logging
rect rgb(245, 245, 245)
Note over Host: 1) Host requests MSI token
Host->>AAD: Request token (MSI/IMDS endpoint)
AAD-->>Host: Returns short-lived access token
Host->>Resource: Presents access token
Resource-->>Host: Access granted
end
rect rgb(245, 245, 245)
Note over Revo: 2) Revoke token via RevoGuard
Revo->>AAD: Revocation action (invalidate token)
AAD-->>Resource: Updated revocation status
Host->>Resource: Attempts to use old token
Resource-->>Host: Access denied (revoked token)
end
rect rgb(245, 245, 245)
Note over Monitor: 3) Observe logs & metrics
Monitor->>AAD: Collect sign-in & token logs
Monitor->>Resource: Collect access & denial events
end
rect rgb(245, 245, 245)
Note over Host: 4) Host acquires new token & retries
Host->>AAD: Request new token (MSI/IMDS endpoint)
AAD-->>Host: Returns fresh short-lived token
Host->>Resource: Presents new valid token
Resource-->>Host: Access granted (new token)
end