Internal-internal token exchange |
Supported. Implemented as per RFC 8693 |
Preview support. Loose implementation of RFC 8693. It is recommended to use V2 instead |
Allowed subject_token_type |
Access token type only |
Access token type only for internal-internal, JWT for external-internal scenarios |
Allowed requested_token_type |
Access token (default), Refresh token, ID token |
Access token, Refresh token (default), SAML 2.0 assertion |
Behavior of scope parameter |
Aligned with other grants. Scope parameter means requesting optional scopes of the client, which sent the token exchange request |
Scope parameter based on the scopes of
the "target" client specified by audience parameter. Downscoping support only |
Behavior of audience parameter |
Support for more values as per the specification. It can be used to narrow down the available audiences and keep only the requested audiences. Effectively downscoping the token per
the required target audience |
Support for single audience value. Token effectively issued to the client requested by the audience parameter and using the scopes of that client |
Public clients |
Not available. Downscoping implemented by V1 can be replaced by refresh token grant |
Available only to exchange token of the client itself. Effectively downscoping support only |
Consents |
Allowed for clients with Consent required as long as the user is already granted consent |
Not allowed for clients with Consent required |
Authorization |
Verification that the requester client must be in the audience of the subject_token. Integration with client policies. No Fine-grained admin permissions |
Based on fine-grained admin permissions version 1 |
Revocation chain |
Not available for access tokens. Available for refresh tokens |
Not available for access nor refresh tokens |
Sender-constrained tokens (DPoP, mTLS) |
Supported. See Securing applications with Demonstrating Proof-of-Possession (DPoP). |
Not supported. The exchanged token is issued without any binding. |
Delegation per RFC 8693 |
Experimental support via Token Exchange Delegation |
Not supported |
Resource parameter per RFC 8693 |
Not supported yet |
Not supported |
Internal to external Token Exchange |
Identity brokering APIs can be used instead. See Identity Brokering APIs for more information. |
Implemented as a preview |
External to internal Token Exchange |
Use-case implemented by Standard Token Exchange V2 and JWT Authorization Grant. See OAuth Identity and Authorization Chaining Across Domains for more information. |
Implemented as a preview |
Subject impersonation (including direct naked impersonation) |
Not implemented yet |
Implemented as a preview |