From 290905c9cf518d93a62388a9f65950c22c1d6103 Mon Sep 17 00:00:00 2001 From: Marek Posolda Date: Fri, 14 Mar 2025 09:55:44 +0100 Subject: [PATCH] Documentation for supported token-exchange (#38008) closes #37126 Signed-off-by: Marek Posolda Co-authored-by: Bruno Oliveira da Silva Co-authored-by: andymunro <48995441+andymunro@users.noreply.github.com> --- .../release_notes/topics/26_2_0.adoc | 10 + .../topics/clients/con-client-scopes.adoc | 1 + .../clients/oidc/con-basic-settings.adoc | 2 + .../server_admin/topics/sessions.adoc | 1 + .../tests/src/test/resources/ignored-links | 3 +- .../topics/templates/document-attributes.adoc | 2 + .../topics/changes/changes-26_2_0.adoc | 37 ++ .../images/token-exchange-switch-refresh.png | Bin 0 -> 124384 bytes docs/guides/images/token-exchange-switch.png | Bin 0 -> 71399 bytes docs/guides/securing-apps/token-exchange.adoc | 361 +++++++++++++++++- 10 files changed, 396 insertions(+), 21 deletions(-) create mode 100644 docs/guides/images/token-exchange-switch-refresh.png create mode 100644 docs/guides/images/token-exchange-switch.png diff --git a/docs/documentation/release_notes/topics/26_2_0.adoc b/docs/documentation/release_notes/topics/26_2_0.adoc index 8bb1355486c..716bfee5c70 100644 --- a/docs/documentation/release_notes/topics/26_2_0.adoc +++ b/docs/documentation/release_notes/topics/26_2_0.adoc @@ -25,6 +25,16 @@ This strengthens a secure-by-default setup and minimizes the configuration steps For more information, check the link:https://www.keycloak.org/server/caching#_securing_transport_stacks[Securing Transport Stacks] in the distributed caches guide. += Supported Standard Token Exchange + +In this release, we added support for the Standard token exchange! The token exchange feature was in preview for a long time, so we are glad to finally support the standard token exchange. +For now, this is limited to exchanging the Internal token to internal token compliant with the https://datatracker.ietf.org/doc/html/rfc8693[Token exchange specification]. It does not yet cover use +cases related to identity brokering or subject impersonation. We hope to support even more token exchange use cases in subsequent releases. + +For more details, see the link:{securing_apps_token_exchange_link}#_standard-token-exchange[Standard token exchange]. + +For information on how to upgrade from the legacy token exchange used in previous {project_name} versions, see the link:{upgradingguide_link}[{upgradingguide_name}]. + = New cache for CRLs loaded for the X.509 authenticator Now the Certificate Revocation Lists (CRL), that are used to validate certificates in the X.509 authenticator, are cached inside a new infinispan cache called `crl`. Caching improves the validation performance and decreases the memory consumption because just one CRL is maintained per source. diff --git a/docs/documentation/server_admin/topics/clients/con-client-scopes.adoc b/docs/documentation/server_admin/topics/clients/con-client-scopes.adoc index 28ff3911eb0..188ce0060cf 100644 --- a/docs/documentation/server_admin/topics/clients/con-client-scopes.adoc +++ b/docs/documentation/server_admin/topics/clients/con-client-scopes.adoc @@ -84,6 +84,7 @@ The scope parameter contains the string, with the scope values divided by spaces == Evaluating Client Scopes include::proc-evaluating-client-scopes.adoc[] +[[client-scopes-permissions]] == Client scopes permissions When issuing tokens to a user, the client scope applies only if the user is permitted to use it. diff --git a/docs/documentation/server_admin/topics/clients/oidc/con-basic-settings.adoc b/docs/documentation/server_admin/topics/clients/oidc/con-basic-settings.adoc index 442ce36ea06..571c8bdf329 100644 --- a/docs/documentation/server_admin/topics/clients/oidc/con-basic-settings.adoc +++ b/docs/documentation/server_admin/topics/clients/oidc/con-basic-settings.adoc @@ -66,6 +66,8 @@ For client-side clients that perform browser logins. As it is not possible to en *Service account roles*:: If enabled, this client can authenticate to {project_name} and retrieve access token dedicated to this client. In terms of OAuth2 specification, this enables support of `Client Credentials Grant` for this client. +*Standard Token Exchange*:: If enabled, this client can use the link:{securing_apps_token_exchange_link}#_standard-token-exchange[Standard token exchange]. + *Auth 2.0 Device Authorization Grant*:: If enabled, this client can use the OIDC xref:con-oidc-auth-flows_server_administration_guide[Device Authorization Grant]. *OIDC CIBA Grant*:: If enabled, this client can use the OIDC xref:con-oidc-auth-flows_{context}[Client Initiated Backchannel Authentication Grant]. diff --git a/docs/documentation/server_admin/topics/sessions.adoc b/docs/documentation/server_admin/topics/sessions.adoc index dc6c9572042..dfd332528ba 100644 --- a/docs/documentation/server_admin/topics/sessions.adoc +++ b/docs/documentation/server_admin/topics/sessions.adoc @@ -1,4 +1,5 @@ +[[managing-user-sessions]] == Managing user sessions When users log into realms, {project_name} maintains a user session for each user and remembers each client visited by the user within the session. Realm administrators can perform multiple actions on each user session: diff --git a/docs/documentation/tests/src/test/resources/ignored-links b/docs/documentation/tests/src/test/resources/ignored-links index a727f2460bd..a7ed128ce67 100644 --- a/docs/documentation/tests/src/test/resources/ignored-links +++ b/docs/documentation/tests/src/test/resources/ignored-links @@ -45,4 +45,5 @@ https://www.keycloak.org/observability/* https://www.keycloak.org/high-availability/concepts-memory-and-cpu-sizing#_measuring_the_activity_of_a_running_keycloak_instance http://example.com:8080 # To be removed once KC 26.2 has been released -https://www.keycloak.org/server/caching#_securing_transport_stacks \ No newline at end of file +https://www.keycloak.org/server/caching#_securing_transport_stacks +https://www.keycloak.org/securing-apps/token-exchange* \ No newline at end of file diff --git a/docs/documentation/topics/templates/document-attributes.adoc b/docs/documentation/topics/templates/document-attributes.adoc index b589dd61467..5ae61cc20be 100644 --- a/docs/documentation/topics/templates/document-attributes.adoc +++ b/docs/documentation/topics/templates/document-attributes.adoc @@ -132,3 +132,5 @@ :securing_apps_link: https://www.keycloak.org/guides#securing-apps :securing_apps_java_policy_enforcer_link: https://www.keycloak.org/securing-apps/policy-enforcer :securing_apps_java_policy_enforcer_name: Java Policy enforcer +:securing_apps_token_exchange_link: https://www.keycloak.org/securing-apps/token-exchange +:securing_apps_token_exchange_name: Token exchange Documentation diff --git a/docs/documentation/upgrading/topics/changes/changes-26_2_0.adoc b/docs/documentation/upgrading/topics/changes/changes-26_2_0.adoc index c91f38958bc..850c689ebd8 100644 --- a/docs/documentation/upgrading/topics/changes/changes-26_2_0.adoc +++ b/docs/documentation/upgrading/topics/changes/changes-26_2_0.adoc @@ -52,6 +52,43 @@ If your deployment scripts add explicit NetworkPolicies for {project_name}, you Read more about this in the https://www.keycloak.org/operator/advanced-configuration[Operator Advanced configuration]. +=== Supported standard token exchange + +In this release, {project_name} added support for the link:{securing_apps_token_exchange_link}#_standard-token-exchange[Standard token exchange] (Feature `token-exchange-standard:v2`). In the past {project_name} releases, +{project_name} had only a preview token exchange feature, which is now referred to as link:{securing_apps_token_exchange_link}#_legacy-token-exchange[Legacy token exchange] (Feature `token-exchange:v1`). +The legacy token exchange is still in preview and it works the same way as in previous releases. If you used the link:{securing_apps_token_exchange_link}#_internal-token-to-internal-token-exchange[internal-internal token exchange], +consider migrating to the new standard token exchange. + +If you prefer to continue using the legacy token exchange, you will find it operates as in previous releases. No need exists to disable the standard token exchange feature. Your clients will use the standard token exchange only if it is enabled on the {project_name} client. However, migration to the standard token exchange is recommended. It is the officially supported method and the priority for enhancements. + +Consider the following notes as you plan for migration to the new standard token exchange: + +* The feature `token-exchange-standard`, which represents the new Standard token exchange, is enabled by default. It is recommended to +disable the `token-exchange` feature, which represents the Legacy token exchange, to make sure that requests will be served by the new standard token exchange. + +* You can have both the standard and legacy token exchange features enabled, which can be useful if you need to cover standard use cases (internal-internal) together with the other token exchange use cases that are implemented only by legacy token exchange. For instance, link:{securing_apps_token_exchange_link}#_external-token-to-internal-token-exchange[external to internal token exchange] is implemented only by the +legacy token exchange. In this case, {project_name} serves the standard internal-to-internal requests preferably by the standard token exchange while the other requests are served by the legacy token exchange. The choice of standard or legacy token exchange is determined based on the +parameters of the particular request. For example, requests containing non-standard parameters such as `requested_issuer` or `requested_subject` are considered legacy. + +* Standard token exchange requires enabling a switch on the client as described in the link:{securing_apps_token_exchange_link}#_standard-token-exchange-enable[{securing_apps_token_exchange_name}]. + +Consider these additional changes in the behavior of the two types of token exchange: + +* Fine-grained admin permissions are no longer needed or supported for the standard token exchange. + +* The most notable change regarding the behavior of scopes and audiences is that the applied client scopes are based on the client triggering the token exchange request rather than the "target" client specified by the `audience` parameter. +Support exists for multiple values of the `audience` parameter as mentioned in the specification. The details are described in the link:{securing_apps_token_exchange_link}#_standard-token-exchange-scope[{securing_apps_token_exchange_name}]. + +* Public clients are no longer allowed to send the token exchange requests. Legacy token exchange allowed public clients to exchange tokens with themselves to downscope the original token. This use case can +instead be covered by using the refresh token grant, in which the `scope` parameter can be used to downscope the refreshed access token, as mentioned in +the https://datatracker.ietf.org/doc/html/rfc6749#section-6[OAuth2 specification]. + +* Exchanging an access token for a SAML assertion is not supported in this release. In other words, using `requested_token_type=urn:ietf:params:oauth:token-type:saml2` is not supported. + +* Exchanging an access token for a refresh token is allowed only if it is explicitly enabled on the client as mentioned in the link:{securing_apps_token_exchange_link}#_standard-token-exchange-details[{securing_apps_token_exchange_name}]. +Currently, it is not supported to request offline tokens or exchange a refresh token when the subject token was issued from an offline session. The recommended approach is to exchange for access tokens instead of +refresh token when possible. + === LDAP provider now can store new users, groups, and roles in a sub-DN of the base DN When adding new users, groups, or roles, the LDAP provider would always store them in the same base DN configured for the searches. However, in some deployments admins may want to configure a broader DN with `subtree` scope to fetch users (or groups/roles) from multiple sub-DNs, but they don't want new users (or groups/roles) to be stored in this base DN in LDAP. Instead, they would like to chose one of the sub-DNs for that. diff --git a/docs/guides/images/token-exchange-switch-refresh.png b/docs/guides/images/token-exchange-switch-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..2cdd0f6c7d6aa971379999935de4f56c59d26399 GIT binary patch literal 124384 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 literal 0 HcmV?d00001 diff --git a/docs/guides/images/token-exchange-switch.png b/docs/guides/images/token-exchange-switch.png new file mode 100644 index 0000000000000000000000000000000000000000..e326489b2e3fd77d4e7c136ca2794b1a7a5741dd GIT binary patch literal 71399 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

d*ElOuld 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 +Token exchange is the process that allows a client application to exchange one token for another token. In {project_name}, two features implement token exchange: + +* <<_standard-token-exchange,Standard token exchange: version 2 (V2)>> - This feature is the fully supported token exchange implementation that is enabled by default once the {project_name} server is started. +* <<_legacy-token-exchange,Legacy token exchange: version 1 (V1)>> - This preview feature is not enabled by default once {project_name} server is started. + +The capabilities of {project_name} for token exchange are as follows: + +. A client can exchange an existing {project_name} token created for a specific client for a new token targeted to a different client in the same realm. +. A client can exchange an existing {project_name} token for an external token, such as a linked Facebook account. +. A client can exchange an external token for a {project_name} token. +. A client can impersonate a user. + +The standard token exchange supports only use-case (1). The legacy token exchange support the four use-cases, but it is a preview feature. Therefore, the standard token exchange V2 is recommended since it is supported and will be maintained for the future. The legacy token exchange is useful for last three use cases, but it may not be +backwards compatible with future {project_name} versions. You can also enable both token exchange features and use them together. For example, you could use both internal-internal exchange +provided by V2 together with other use cases that are supported by V1. For more details, see this <<_standard-token-exchange-comparison,token exchange comparison>>. + +[[_standard-token-exchange]] +== Standard token exchange + +Standard token exchange in {project_name} implements the https://datatracker.ietf.org/doc/html/rfc8693[Token exchange specification]. It allows client application to exchange an existing {project_name} token created +for a specific client for a new token issued to the client that triggered the token exchange request. Both clients must be in the same realm. + +[[_standard-token-exchange-flow]] +=== Token exchange flow + +Consider this typical token exchange flow: + +. The user authenticates with the use of the {project_name} SSO to the client application `initial-client`. The token is issued to the `initial-client`. +. The client `initial-client` may need to use the REST service `requester-client`, which requires authentication. So the `initial-client` sends the access token from step 1 to the `requester-client` with the +use of the token +. To serve the request, the `requester-client` may need to call another service `target-client`. However it may be unable to use the token sent to it from `initial-client`. For example: +* The token has insufficient permissions or scopes. +* The `target-client` is not specified as the token audience; the token was intended to be used to invoke `requester-client`. +* The token has to many permissions; therefore, the `requester-client` may not want to share it with the `target-client`. ++ +Any of these situations could be the reason to invoke the token exchange. The `requester-client` may need to send the token exchange request to the {project_name} server and use the original token from step 1 as the +_subject token_ and exchange it for another token _requested token_. +. The _requested token_ is returned to `requester-client`. This token can now be sent to the `target-client`. +. The `target-client` can fulfill the request and return the response to the `requester-client`. The `requester-client` can then follow and return the response to the request from step 2. + +Many other use-cases exist for token exchange, but the preceding example is the most typical. + +==== Example token exchange request + +The folowing is an example token exchange request of the client `requester-client` in the realm `test`. Note that `subject_token` is the access token issued to the `initial-client`: + +[source,bash] +---- +POST /realms/test/protocol/openid-connect/token +Authorization: Basic cmVxdWVzdGVyLWNsaWVudDpwYXNzd29yZA== +Content-Type: application/x-www-form-urlencoded +Accept: application/json + +grant_type=urn:ietf:params:oauth:grant-type:token-exchange& +subject_token=$SUBJECT_TOKEN& +subject_token_type=urn:ietf:params:oauth:token-type:access_token& +requested_token_type=urn:ietf:params:oauth:token-type:access_token +---- + +The example token exchange response may look like this: + +[source,json] +---- +{ + "access_token": "eyJhbGciOiJSUzI1NiIsIn...", + "expires_in": 300, + "token_type": "Bearer", + "issued_token_type": "urn:ietf:params:oauth:token-type:access_token", + "session_state": "287f3c57-32b8-4c0f-8b00-8c7db231d701", + "scope": "default-scope1", + "refresh_expires_in": 0, + "not-before-policy": 0 +} +---- + +[[_standard-token-exchange-enable]] +=== How to enable token exchange + +For standard token exchange, `token-exchange-standard:v2` is enabled by default. However, you also need to enable the *Standard token exchange* switch for +the client that is supposed to send token exchange requests, such as the `requester-client` from the <<_standard-token-exchange-flow,previous example>>. Note that `requester-client` must be a confidential client. +Also, as is the case for other grant requests, the token exchange requests must be authenticated by the appropriate link:{adminguide_link}#_client-credentials[client authentication method] that is configured +for the client. + +.Enabling Token Exchange +image::token-exchange-switch.png[Enabling Token Exchange] + +[[_standard-token-exchange-request]] +=== Request and response parameters + +The parameters are aligned with the https://datatracker.ietf.org/doc/html/rfc8693#name-token-exchange-request-and-[Token exchange specification], which are described as follows: + +grant_type:: + _REQUIRED._ The value of the parameter must be `urn:ietf:params:oauth:grant-type:token-exchange`. + +subject_token:: + _REQUIRED._ A security token that represents the identity of the party on behalf of whom the request is being made. + +subject_token_type:: + _REQUIRED._ This parameter is the type of the token passed in the `subject_token` parameter. This must be `urn:ietf:params:oauth:token-type:access_token` when the standard token exchange is being used + because {project_name} does not support other types for the standard token exchange. + +requested_token_type:: + _OPTIONAL._ This parameter represents the type of token that the client wants to exchange for. In this version, only oauth and OpenID Connect token types are supported. The default value for this + is `urn:ietf:params:oauth:token-type:access_token`. Another possible value is `urn:ietf:params:oauth:token-type:id_token` if the ID token issued to `requester-client` is requested. The possible value might + be also `urn:ietf:params:oauth:token-type:refresh_token`; in this case, you will receive both an access token and refresh token within the response. However, the refresh token is allowed if the `Allow refresh token in Standard Token Exchange` client configuration option is enabled as specified in the <<_standard-token-exchange-details,standard token exchange>> section. + +scope:: + _OPTIONAL._ This parameter represents the space-delimited set of OAuth and OpenID Connect scopes that the client is requesting. You can use link:{adminguide_link}#_client_scopes[Optional client scopes] + of the `requester-client`. For more details, see <<_standard-token-exchange-scope,scopes and audiences>>. Omitting this parameter means that only + the link:{adminguide_link}#_client_scopes[Default client scopes] are effectively used. + +audience:: + _OPTIONAL._ Audience specifies `client_id` of the client, which is supposed to be used as the token audience. In <<_standard-token-exchange-flow,the example above>>, it could be `target-client`. Multiple + values of this parameter are allowed, which means that you want the token to contain multiple audiences to be used by `requester-client` in multiple different services. For example + `audience=target-client1&audience=target-client2` can be used in the request. More details in <<_standard-token-exchange-scope,the section about scopes and audiences>>. + +A successful response is returned in the JSON format. It contains similar parameters such as the response from other grants. The following are some token exchange specifics of the more notable parameters: + +access_token:: + The requested access token. Note that if request specified `requested_token_type=urn:ietf:params:oauth:token-type:id_token`, this parameter may actually contain the ID token instead of access token. + This behavior is per https://datatracker.ietf.org/doc/html/rfc8693#section-2.2.1[the token exchange specification]. + +refresh_token:: + The refresh token. It is included just if `requested_token_type=urn:ietf:params:oauth:token-type:refresh_token` is used and the client has enabled issuing refresh tokens from the token exchange + +issued_token_type:: + The issued requested token type. Same value as `requested_token_type` used in the request. + +token_type:: + Usually `Bearer` if issued token type was access token or refresh token. In case of ID token requested, the value is `N_A` + +[[_standard-token-exchange-scope]] +=== Scopes and audiences + +The `scope` parameter in the token exchange request has the same meaning as other grants. This parameter is optional. When it is omitted, the effective client scopes used in the request are +the link:{adminguide_link}#_client_scopes[Default client scopes] of the `requester-client`. When this parameter is used, the effective client scopes are the default scopes together with +the link:{adminguide_link}#_client_scopes[Optional client scopes] + +By default, the used client scopes will add the audiences to the `aud` claim of the token based on the used client scopes and client roles as specified in the link:{adminguide_link}#audience-support[Audience documentation]. + +The `audience` parameter can be used for filtering of audiences, so that the `aud` claim will contain only the audiences specified by the `audience` parameter. Similarly the client roles in the token will +be filtered and the token will have only the client roles of the clients specified by the `audience` parameter. + +In addition, the `audience` parameter can be used to potentially filter client scopes as well. It works in a manner that is similar way to link:{adminguide_link}#client-scopes-permissions[Client scope permission for users]. +If the client scope does not contain any client roles (for example, it contains zero roles or it contains only realm roles), no additional filtering occurs for client scopes. However, if the client scope contains any +client role mappings, it must include some client roles of the clients requested by the `audience` parameter. Composite roles are also included for consideration. If the client scope contains no client +roles of the clients requested by the `audience`, the client scope will be filtered. + +NOTE: The `audience` parameter can be used to filter the audiences that are coming from the used client scopes. However, this parameter will not add more audiences. When the audience parameter is omitted, +no filtering occurs. As a result, the `audience` parameter is effectively used for "downscoping" the token to make sure that it contains only the requested audiences. However, the `scope` parameter is used +to add optional client scopes and hence it can be used for "upscoping" and adding more scopes. + +==== Examples + +Here are some examples to better illustrate the behavior for scopes and audiences. + +Assume we have the realm with: + +* Client `target-client1` with the client role `target-client1-role` + +* Client `target-client2` with the client role `target-client2-role` + +* Client `target-client3` with the client role `target-client3-role` + +* Client scope `default-scope1`. This client scope has role scope mapping for the client role `target-client1/target-client1-role` + +* Client scope `optional-scope2`. This client scope has role scope mapping for the client role `target-client2/target-client2-role` + +* Client `requester-client`, which has client scope `default-scope1` added as default client scope and scope `optional-scope2` added as an optional client scope + +* Authenticated user, who is member of both `target-client1-role` and `target-client2-role` + +The settings above means that using scope `default-scope1` will add the audience `target-client1` to the token and using `optional-scope2` will add the audience `target-client2`. This is because of the +audience resolving described in the link:{adminguide_link}#_audience_resolve[Audience documentation]. + + +===== Example 1 + +Token exchange request sent with `scope=optional-scope2` and without audience parameter: + +There will be no filtering of audience. The scopes and audiences will be resolved as is the case for any other grants as described in the link:{adminguide_link}#_client_scopes[Client scopes] and +link:{adminguide_link}#_audience_resolve[Audience documentation] sections. The response token will be similar to this (claims not interesting for this example omitted for brevity): + +[source,json] +---- +{ + "azp": "requester-client", + "scope": "default-scope1 optional-scope2", + "aud": [ "target-client1", "target-client2" ], + "resource_access": { + "target-client1": { + "roles": [ "target-client1-role" ] + }, + "target-client2": { + "roles": [ "target-client2-role" ] + } + }, + ... +} +---- + +===== Example 2 + +Token exchange request sent with `scope=optional-scope2` and with `audience=target-client2` + +Same like previous example, but `target-client1` audience and client roles filtered due audience parameter was included, but only with this `target-client2` client. The client scope `default-scope1` will be +also filtered due it contains some client roles, but at the same time, it does not contain any client roles of requested audience client `target-client2`. So token would be like: + +[source,json] +---- +{ + "azp": "requester-client", + "scope": "optional-scope2", + "aud": [ "target-client2" ], + "resource_access": { + "target-client2": { + "roles": [ "target-client2-role" ] + } + }, + ... +} +---- + +===== Example 3 + +Token exchange request sent with `scope=optional-scope2` and with `audience=target-client2&audience=target-client3` + +The `target-client3` is not part of the token audience as user does not have any roles. So in this case, the request will be rejected as some of the requested audiences are not available. + +NOTE: As mentioned in the token exchange specification, it is good practice to downscope the token as much as possible and use only the audiences needed. Ideally use a single audience. This strategy increases the probability +that request will be allowed. + +NOTE: If you have a more complex deployment with many various scopes and audiences, it can be challenging to model it in an appropriate way. Consider using the link:{adminguide_link}#_client_scopes_evaluate[Client scopes evaluate tab] +to test if the token looks as expected for the given user and for the given set of scopes and audiences. + +[[_standard-token-exchange-details]] +=== Token exchange - Additional details + +These additional points clarify the behavior of token exchange. + +* It is not supported for public clients to send the token exchange requests. The V1 had some very limited support to public clients, when public client can exchange the token to itself with less scopes. +This use case can be replaced by refresh token grant. + +* The `subject_token` sent to the token exchange endpoint must have the requester client set as an audience in the `aud` claim. Otherwise, the request would be rejected. The only exception is, if client +exchanges his own token, which was issued to it. Exchanging to itself might be useful to downscope/upscope the token or filter unneeded token audiences and so on. + +* Consents - If the requester client has *Consent required* enabled, the token exchange is allowed only if the user is already granted consent to all requested scopes + +* link:{adminguide_link}#_fine_grain_permissions[Fine-grained admin permissions (FGAP)] are not needed for the standard token exchange. We plan to eventually integrate with FGAP for the future, but that +integration might be available to all grants. It will not be specific only to token exchange as it was in token exchange V1. + +* Integrating token exchange with link:{adminguide_link}#_client_policies[Client policies] is possible. This integration can be useful to address certain use cases. For example, consider the use case to reject the token exchange request if the +client `requester-client` sends the request with `scope=some-confidential-scope`. In this example, it can be useful to create a client policy condition with combined conditions +for `client-scope`, `grant-type` and `client-roles`. + +* Requesting a refresh token is allowed only if the client has the switch *Allow refresh token in Standard Token Exchange* set to a value other than `No` (the default value). The switch is available in the +Admin Console in the *Advanced* tab of the OIDC client in the *OpenID Connect Compatibility Modes* section. The other available value of the switch is *Same session*, which means that the refresh token is +allowed only if the refresh token can use the same user session as the subject token. If that subject token is coming from a link:{adminguide_link}#_transient-session[Transient session] or from an +link:{adminguide_link}#_offline-access[Offline session], the requesting refresh token will not be allowed. Similarly it will not be allowed to request an offline token (using `scope=offline_access`). + +.Enabling refresh token in Token Exchange +image::token-exchange-switch-refresh.png[Enabling refresh token in Token Exchange] + +* Token exchange never creates a new link:{adminguide_link}#managing-user-sessions[user session]. In case that `requested_token_type` is a refresh token, it may eventually create a new client session in the user session +for the requester client (if the client session was not yet created). + +* {project_name} Token exchange does not yet have support for the `resource` parameter. + +* The token exchange specification mentions the concepts of https://datatracker.ietf.org/doc/html/rfc8693#name-delegation-vs-impersonation[impersonation and delegation]. {project_name} has support for the +impersonation use case, but not yet for the delegation use case. + +==== Revocation + +Assuming that there is a subject token `access-token1` issued to the client `initial-client`, here are some considerations related to token revocation: + +* For the case when the `access-token1` was exchanged to the `access-token2` of the client `requester-client`, the revocation of the `access-token1` will not revoke `access-token2`. Supporting of a "revocation chain" for access +tokens would mean quite an overhead. So considering this, the administrator must ensure that access tokens are short-lived and are revoked automatically after some time. + +* For the case when `access-token1` was exchanged to `refresh-token2` of client `requester-client`, we try to support revocation chain. This means that: + ** Revocation of `access-token1` will revoke also `refresh-token2`. Moreover this will remove the client session of the client `requester-client` from the + user session and hence all refresh tokens of `requester-client` in this user session will be effectively revoked + ** In case that `refresh-token2` and it's related access token was used for the further token exchange to different client, then revocation of `access-token1` will revoke those subsequent token exchanges + as well. In other words, the whole "chain" of exchanged tokens is going to be revoked. + ** Note that the access token should be valid when the revocation endpoint is invoked. If you do not have a valid access token when the original `access-token1` has expired, you can potentially use another + access token issued to same client in the same user session. The exchanged tokens such as `refresh-token2` and others from the "chain" should be revoked. + +[[_standard-token-exchange-comparison]] +=== Comparison of standard token exchange and legacy token exchange + +While the preceding sections fully detail standard and legacy token exchange, the following is an overall summary that compares the two token exchange methods. + +[cols="3*", options="header"] +|=== +|Capability |Standard token exchange V2 |Legacy token exchange V1 +s|Internal-internal token exchange | Supported. Implemented as per rfc8693 | Preview support. Loose implementation of rfc8693. It is recommended to use V2 instead +s|Allowed `subject_token_type` | Access token type only | Access token type only for internal-internal, JWT for external-internal scenarios +s|Allowed `requested_token_type` | Access token (default), Refresh token, ID token | Access token, Refresh token (default), SAML2 assertion +s|Behaviour 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 scopes of +the "target" client specified by audience parameter. Downscoping support only +s|Behavior of `audience` parameter | Support for more values as per the specification. 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 audience parameter and using scopes of that client +s|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 +s|Consents | Allowed for clients with `Consent required` as long as the user is already granted consent | Not allowed for clients with *Consent required* +s|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 +s|Revocation chain | Not available for access tokens. Available for refresh tokens | Not available for access nor refresh tokens +s|Delegation per rfc8693|Not supported yet|Not supported +s|Resource parameter per rfc8693|Not supported yet|Not supported +s|Federated token exchange | Not implemented yet | Implemented as a preview +s|Subject impersonation (including direct naked impersonation) | Not implemented yet | Implemented as a preview +|=== + +[[_legacy-token-exchange]] +== Legacy token exchange + :tech_feature_name: Token Exchange :tech_feature_id: token-exchange @@ -29,7 +343,7 @@ To use more than the <<_internal-token-to-internal-token-exchange,Internal Token For details, see the https://www.keycloak.org/server/features[Enabling and disabling features] {section}. ==== -== How token exchange works +=== How token exchange works In {project_name}, token exchange is the process of using a set of credentials or token to obtain an entirely different token. A client may want to invoke on a less trusted application so it may want to downgrade the current token it has. @@ -57,7 +371,7 @@ Public clients specify their client identifier as a form parameter. Confidentia to pass their client id and secret, Basic Auth, or however your admin has configured the client authentication flow in your realm. -=== Form parameters +==== Form parameters client_id:: _REQUIRED MAYBE._ This parameter is required for clients using form parameters for authentication. If you are using @@ -97,7 +411,7 @@ scope:: NOTE: We currently only support OpenID Connect and OAuth exchanges. Support for SAML based clients and identity providers may be added in the future depending on user demand. -=== Responses from a token exchange request +==== Responses from a token exchange request A successful response from an exchange invocation will return the HTTP 200 response code with a content type that depends on the `requested-token-type` and `requested_issuer` the client asks for. OAuth requested token types will return @@ -140,7 +454,10 @@ For simplicity's sake, let's call a token minted by the current realm as an _int an external realm or identity provider as an _external_ token. [[_internal-token-to-internal-token-exchange]] -== Internal token to internal token exchange +=== Internal token to internal token exchange + +NOTE: For internal token to internal token exchange, it is recommended to use <<_standard-token-exchange,Standard token exchange>> instead of using the legacy token exchange flow described below. +Standard token exchange is officially supported. With an internal token to token exchange you have an existing token minted to a specific client and you want to exchange this token for a new one minted for a different target client. Why would you want to do this? This generally happens @@ -150,7 +467,7 @@ need to perform a "permission downgrade" where your app needs to invoke on a les to propagate your current access token. [[_client_to_client_permission]] -=== Granting permission for the exchange +==== Granting permission for the exchange Clients that want to exchange tokens for a different client need to be authorized in the Admin Console. You need to define a `token-exchange` fine grain permission in the target client you want permission to exchange to. @@ -195,7 +512,7 @@ Your client now has permission to invoke. If you do not do this correctly, you try to make an exchange. [[_internal_internal_making_request]] -=== Making the request +==== Making the request When your client is exchanging an existing token for a token targeting another client, you use the `audience` parameter. This parameter must be the client identifier for the target client that you configured in the Admin Console. @@ -234,7 +551,7 @@ the client making the request to successfully complete the exchange. } ---- -== Internal token to external token exchange +=== Internal token to external token exchange You can exchange a realm token for an external token minted by an external identity provider. This external identity provider must be configured within the `Identity Provider` section of the Admin Console. Currently only OAuth/OpenID Connect based external @@ -253,7 +570,7 @@ If the account is not linked, the exchange response will contain a link you can discussed more in the <<_internal_external_making_request, Making the Request>> section. [[_grant_permission_external_exchange]] -=== Granting permission for the exchange +==== Granting permission for the exchange Internal to external token exchange requests will be denied with a 403, Forbidden response until you grant permission for the calling client to exchange tokens with the external identity provider. To grant permission to the client, you go to the identity provider's configuration page to the *Permissions* tab. @@ -293,7 +610,7 @@ image::exchange-idp-apply-policy.png[Apply Client Policy] Your client now has permission to invoke. If you do not do this correctly, you will get a 403 Forbidden response if you try to make an exchange. [[_internal_external_making_request]] -=== Making the request +==== Making the request When your client is exchanging an existing internal token to an external one, you provide the `requested_issuer` parameter. The parameter must be the alias of a configured identity provider. @@ -340,7 +657,8 @@ so that the client can perform link:{developerguide_link}[Client Initiated Accou providers require linking through browser OAuth protocol. With the `account-link-url` just add a `redirect_uri` query parameter to it and you can forward browsers to perform the link. -== External token to internal token exchange +[[_external-token-to-internal-token-exchange]] +=== External token to internal token exchange You can trust and exchange external tokens minted by external identity providers for internal tokens. This can be used to bridge between realms or just to trust tokens from your social provider. It works similarly to an identity provider @@ -359,7 +677,7 @@ These types of changes required a configured identity provider in the Admin Cons NOTE: SAML identity providers are not supported at this time. Twitter tokens cannot be exchanged either. -=== Granting permission for the exchange +==== Granting permission for the exchange Before external token exchanges can be done, you grant permission for the calling client to make the exchange. This permission is granted in the same manner as <<_grant_permission_external_exchange, internal to external permission is granted>>. @@ -368,7 +686,7 @@ If you also provide an `audience` parameter whose value points to a different cl must also grant the calling client permission to exchange to the target client specific in the `audience` parameter. How to do this is <<_client_to_client_permission, discussed earlier>> in this section. -=== Making the request +==== Making the request The `subject_token_type` must either be `urn:ietf:params:oauth:token-type:access_token` or `urn:ietf:params:oauth:token-type:jwt`. If the type is `urn:ietf:params:oauth:token-type:access_token` you specify the `subject_issuer` parameter and it must be the @@ -411,21 +729,24 @@ an example JSON response you get back from this call. ---- -== Impersonation +=== Impersonation For internal and external token exchanges, the client can request on behalf of a user to impersonate a different user. For example, you may have an admin application that needs to impersonate a user so that a support engineer can debug a problem. +NOTE: The impersonation scenario mentioned here is different from the https://datatracker.ietf.org/doc/html/rfc8693#name-delegation-vs-impersonation[impersonation concept of the token exchange specification]. +The specification does not support impersonating the token subject to different subject. The specification semantics rather means "impersonating the client" instead of "impersonating the user". -=== Granting permission for the exchange + +==== Granting permission for the exchange The user that the subject token represents must have permission to impersonate other users. See the link:{adminguide_link}[{adminguide_name}] on how to enable this permission. It can be done through a role or through fine grain admin permissions. -=== Making the request +==== Making the request Make the request as described in other chapters except additionally specify the `requested_subject` parameter. The value of this parameter must be a username or user id. @@ -443,7 +764,7 @@ curl -X POST \ http://localhost:8080{kc_realms_path}/myrealm/protocol/openid-connect/token ---- -== Direct Naked Impersonation +=== Direct Naked Impersonation You can make an internal token exchange request without providing a `subject_token`. This is called a direct naked impersonation because it places a lot of trust in a client as that client can impersonate any user in the realm. @@ -454,7 +775,7 @@ is able to authenticate users itself, but not able to obtain a token. WARNING: It is very risky to enable direct naked impersonation for a client. If the client's credentials are ever stolen, that client can impersonate any user in the system. -=== Granting permission for the exchange +==== Granting permission for the exchange If the `audience` parameter is provided, then the calling client must have permission to exchange to the client. How to set this up is discussed earlier in this chapter. @@ -504,7 +825,7 @@ try to make this type of exchange. NOTE: Public clients are not allowed to do direct naked impersonations. -=== Making the request +==== Making the request To make the request, simply specify the `requested_subject` parameter. This must be the username or user id of a valid user. You can also specify an `audience` parameter if you wish. @@ -519,14 +840,14 @@ curl -X POST \ http://localhost:8080{kc_realms_path}/myrealm/protocol/openid-connect/token ---- -== Expand permission model with service accounts +=== Expand permission model with service accounts When granting clients permission to exchange, you don't necessarily manually enable those permissions for each and every client. If the client has a service account associated with it, you can use a role to group permissions together and assign exchange permissions by assigning a role to the client's service account. For example, you might define a `naked-exchange` role and any service account that has that role can do a naked exchange. -== Exchange vulnerabilities +=== Exchange vulnerabilities When you start allowing token exchanges, there are various things you have to both be aware of and careful of.