From 50366f03a6f680dc03494ad830323bb21e5d4e2d Mon Sep 17 00:00:00 2001 From: rmartinc Date: Mon, 19 Jan 2026 09:07:48 +0100 Subject: [PATCH] Documentation for Authorization Chaining Across Domains Closes #45466 Signed-off-by: rmartinc --- .../identity-authorization-chaining.dio.svg | 4 + ...jwt-authorization-grant-oidc-add-scope.png | Bin 0 -> 36122 bytes .../jwt-authorization-grant-oidc-clienta.png | Bin 0 -> 31830 bytes .../jwt-authorization-grant-oidc-clientb.png | Bin 0 -> 42658 bytes .../jwt-authorization-grant-oidc-idp.png | Bin 0 -> 60378 bytes docs/guides/securing-apps/dpop.adoc | 2 +- .../jwt-authorization-grant.adoc | 62 +----- ...authorization-chaining-across-domains.adoc | 187 ++++++++++++++++++ docs/guides/securing-apps/specifications.adoc | 2 +- 9 files changed, 195 insertions(+), 62 deletions(-) create mode 100644 docs/guides/images/identity-authorization-chaining.dio.svg create mode 100644 docs/guides/images/jwt-authorization-grant-oidc-add-scope.png create mode 100644 docs/guides/images/jwt-authorization-grant-oidc-clienta.png create mode 100644 docs/guides/images/jwt-authorization-grant-oidc-clientb.png create mode 100644 docs/guides/images/jwt-authorization-grant-oidc-idp.png create mode 100644 docs/guides/securing-apps/oauth-identity-authorization-chaining-across-domains.adoc diff --git a/docs/guides/images/identity-authorization-chaining.dio.svg b/docs/guides/images/identity-authorization-chaining.dio.svg new file mode 100644 index 00000000000..1a7e7854ef3 --- /dev/null +++ b/docs/guides/images/identity-authorization-chaining.dio.svg @@ -0,0 +1,4 @@ + + + +
discover Authorization 
Trust Server Domain B
discover Authorization...
Client Trust
Domain A
Client TrustDomain A
1
1
Authorization Server
Trust Domain A
Authorization ServerTrust D...
Authorization Server
Trust Domain B
Authorization ServerTrust D...
Protected Resource
Trust Domain B
Protected ResourceTrust Dom...
exchange token [RFC 8693]
exchange token...
2
2
<authorization grant jwt>
<authorization...
3
3
present authorization
grant [RFC 7523]
present authori...
4
4
<access token>
<access token>
5
5
access
access
6
6
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/guides/images/jwt-authorization-grant-oidc-add-scope.png b/docs/guides/images/jwt-authorization-grant-oidc-add-scope.png new file mode 100644 index 0000000000000000000000000000000000000000..3e4b30d22686193157fa27e405c911db77b91bb3 GIT binary patch literal 36122 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 literal 0 HcmV?d00001 diff --git a/docs/guides/images/jwt-authorization-grant-oidc-clientb.png b/docs/guides/images/jwt-authorization-grant-oidc-clientb.png new file mode 100644 index 0000000000000000000000000000000000000000..67a5066e1e32e87d08115eb04f106c18ce7a2e16 GIT binary patch literal 42658 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 literal 0 HcmV?d00001 diff --git a/docs/guides/securing-apps/dpop.adoc b/docs/guides/securing-apps/dpop.adoc index b2ecf7985db..8f5fa836bf0 100644 --- a/docs/guides/securing-apps/dpop.adoc +++ b/docs/guides/securing-apps/dpop.adoc @@ -3,7 +3,7 @@ <@tmpl.guide title="Securing applications with DPoP" -priority=140 +priority=150 summary="Guide for securing applications with DPoP using Keycloak"> Standard OAuth 2.0 access tokens are typically **Bearer** tokens. Any party in possession of the token can use it to access protected resources, regardless of whether they are the legitimate client. If a Bearer token is leaked (e.g., via server logs, network interception, or browser storage), it is vulnerable to unauthorized reuse, known as a replay attack. diff --git a/docs/guides/securing-apps/jwt-authorization-grant.adoc b/docs/guides/securing-apps/jwt-authorization-grant.adoc index fb6082cdb8a..a0f370c350d 100644 --- a/docs/guides/securing-apps/jwt-authorization-grant.adoc +++ b/docs/guides/securing-apps/jwt-authorization-grant.adoc @@ -133,7 +133,7 @@ NOTE: Following the spec recommendation, the JWT Authorization Grant never issue == How to get a valid token for JWT Authorization Grant -The JWT Authorization Grant feature needs a previous JWT assertion in order to be exchanged for an access token. We can call the external OpenID Connect Provider (OP) `domaina`, the one that is represented in {project_name} via the Identity Provider. And we can call the {project_name} server that receives the JWT authorization grant `domainb`. The `domaina` should somehow issue a JWT that is a valid assertion for `domainb`. +The JWT Authorization Grant feature needs a previous JWT assertion in order to be exchanged for an access token. We can name the external OpenID Connect Provider (OP) `domaina`, the one that is represented in {project_name} via the Identity Provider. And we can name the {project_name} server that receives the JWT authorization grant `domainb`. The `domaina` should somehow issue a JWT that is a valid assertion for `domainb`. If `domaina` is a server different to {project_name}, we don't know how that initial JWT is obtained. But note that the specification enforces some processing of the assertion to be valid and return the access token. The way the client gets or generates such a JWT assertion in `domaina` depends completely on `domaina` server and client. @@ -142,65 +142,7 @@ In case the external identity provider is another {project_name} server or realm . For `domaina`, `domainb` is an audience that can be restricted via token exchange. . For `domainb`, `domaina` is an Identity Provider that is used to validate the assertion. The user in `domainb` is also a valid user previously linked to `domaina` via the identity provider. -For example, if `domaina` is a {project_name} realm, the following configuration is available to use Token Exchange to obtain the JWT assertion: - -. Create a client that represents `domainb`. This client can be the same client configured in `domainb` for the identity provider access. - * **Client ID**: http://localhost:8080/realms/domainb (issuer for `domainb`). - * **Name**: domainb -+ -.Client that represents domainb in domaina -image::jwt-authorization-grant-oidc-client-domaina.png[Client that represents domainb in domaina] -. Create a client scope `access-domainb` to include the correct audience for the token when this scope is requested. An audience mapper for `domainb` will be added. - * **Name**: access-domainb - * **Type**: None - * Only enable **Include in token scope**. -+ -.Client scope to include domainb as audience -image::jwt-authorization-grant-oidc-client-scope-domaina.png[Client scope to include domainb as audience] - * In the client scope add a mapper: - ** **Type**: Audience - ** **Name**: domainb-audience - ** **Included Client Audience**: http://localhost:8080/realms/domainb - ** **Add to access token**: On -+ -.Client scope mapper for domainb audience -image::jwt-authorization-grant-oidc-client-scope-mapper.png[Client scope mapper for domainb audience] -. In the client used to do the token exchange assign the previous `access-domainb` client scope as optional. - -NOTE: This example allows any user to request that client scope. Roles can be used to restrict the scope of the client scope. This way only users with a specific role would be allowed to add the `domainb` audience. - -With the previous configuration, the client in `domaina` can request a token exchange including scope `access-domainb` and restricting the audience to `http://localhost:8080/realms/domainb` (issuer of `domainb`). - -[source,bash] ----- -POST /realms/domaina/protocol/openid-connect/token -Content-Type: application/x-www-form-urlencoded -Accept: application/json - -client_id=clienta& -client_secret=XXXXX& -grant_type=urn:ietf:params:oauth:grant-type:token-exchange& -subject_token_type=urn:ietf:params:oauth:token-type:access_token& -requested_token_type=urn:ietf:params:oauth:token-type:access_token& -scope=access-domainb& -audience=http://localhost:8080/realms/domainb& -subject_token=$SUBJECT_TOKEN ----- - -The resulting token will be a valid token for JWT Authorization Grant in `domainb`. So another client defined for `domainb` can send a JWT Authorization Grant with that assertion. - -[source,bash] ----- -POST /realms/domainb/protocol/openid-connect/token -Content-Type: application/x-www-form-urlencoded -Accept: application/json - -client_id=clientb& -client_secret=YYYYYY& -grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer& -scope=scope1 scope2 -assertion=$ASSERTION_TOKEN ----- +See <@links.securingapps id="oauth-identity-authorization-chaining-across-domains" /> for a detailed configuration to perform authorization chaining across two {project_name} realms. == Client policies and JWT Authorization Grant diff --git a/docs/guides/securing-apps/oauth-identity-authorization-chaining-across-domains.adoc b/docs/guides/securing-apps/oauth-identity-authorization-chaining-across-domains.adoc new file mode 100644 index 00000000000..553547e6ce4 --- /dev/null +++ b/docs/guides/securing-apps/oauth-identity-authorization-chaining-across-domains.adoc @@ -0,0 +1,187 @@ +<#import "/templates/guide.adoc" as tmpl> +<#import "/templates/links.adoc" as links> +<#import "/templates/features.adoc" as features> + +<@tmpl.guide +title="OAuth Identity and Authorization Chaining Across Domains" +priority=140 +summary="Guide for the draft about OAuth Identity and Authorization Chaining Across Domains."> + +Applications can require access to resources that are distributed across multiple trust domains where each trust domain has its own OAuth 2.0 authorization server. A request may transverse multiple resource servers in multiple trust domains before completing. The link:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-identity-chaining/[OAuth Identity and Authorization Chaining Across Domains] is a draft specification that refers to this scenario as **chaining**. It defines a common pattern for combining link:https://datatracker.ietf.org/doc/html/rfc8693[OAuth 2.0 Token Exchange (RFC8693)] and the link:https://datatracker.ietf.org/doc/html/rfc7523[JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants (RFC7523)] to access resources across multiple trust domains while preserving identity and authorization information. + +The following diagram illustrates the steps that the client in trust domain A needs to perform to access a protected resource in trust domain B. + +.Identity and Authorization Chaining Flow +image::identity-authorization-chaining.dio.svg[Identity and Authorization Chaining Flow] + +. The client in trust domain A discovers the location of the authorization server of trust domain B. +. The client in trust domain A exchanges a token it has in its possession with the authorization server in trust domain A for a JWT authorization grant that can be used at the authorization server in trust domain B. +. The authorization server of trust domain A processes the request and returns a JWT authorization grant that the client can use with the authorization server of trust domain B. +. The client in trust domain A presents the authorization grant to the authorization server of trust domain B. +. Authorization server of trust domain B validates the JWT authorization grant and returns an access token. +. The client in trust domain A uses the access token received from the authorization server in trust domain B to access the protected resource in trust domain B. + +{project_name} currently provides standard Token Exchange (see <@links.securingapps id="token-exchange" anchor="_standard-token-exchange" />) as a supported feature and JWT Authorization Grant (see <@links.securingapps id="jwt-authorization-grant" />) as technology preview. This way, {project_name} can implement OAuth Identity and Authorization Chaining Across Domains between two different realms or servers. For domain A, domain B is an audience that can be restricted via token exchange. For domain B, domain A is an Identity Provider that is used to validate the assertion. + +WARNING: OAuth Identity and Authorization Chaining Across Domains is still in draft, it is not yet a definitive standard. + +== Configuring Token Exchange in `domaina` for chaining + +In this sample configuration two realms, `domaina` and `domainb`, are used to represent the domains involved in the chaining diagram. This first chapter describes the steps done in `domaina`. With them, a client will be able to request a Token Exchange for `domainb`, and the resulting access token will be a valid assertion to be used for the JWT Authorization grant. + +For more information about Standard Token Exchange, see <@links.securingapps id="token-exchange" anchor="_standard-token-exchange" />. + +=== Create a client that represents `domainb` + +This client will also be the client configured in `domainb` for the identity provider access. Go to **Clients** and click **Create Client**. + +* **Client ID**: http://localhost:8080/realms/domainb (issuer for `domainb`). +* **Name**: domainb +* Enable **Client authentication**. The credential will be used to configure the Identity Provider in `domainb`. +* **Valid redirect URIs**: http://localhost:8080/realms/domainb/broker/domaina/endpoint/* (IdP endpoint in `domainb`) +* **Valid post logout redirect URIs**: `+` + +.Client that represents domainb in domaina +image::jwt-authorization-grant-oidc-client-domaina.png[Client that represents domainb in domaina] + +=== Create a client scope to grant access to `domainb` + +Create a client scope `access-domainb` to include the correct audience for the token when this scope is requested. An audience mapper for `domainb` will be added. In **Client scopes**, click **Create client scope**. + +* **Name**: access-domainb +* **Type**: None +* Only enable **Include in token scope** (disable **Display on consent screen** and **Include in OpenID Provider Metadata**). + +.Client scope to include domainb as audience +image::jwt-authorization-grant-oidc-client-scope-domaina.png[Client scope to include domainb as audience] + +In the **Mappers** tab, click **Configure a new mapper** and select **Audience**: + +* **Mapper type**: Audience +* **Name**: domainb-audience +* **Included Client Audience**: http://localhost:8080/realms/domainb +* **Add to access token**: On + +.Client scope mapper for domainb audience +image::jwt-authorization-grant-oidc-client-scope-mapper.png[Client scope mapper for domainb audience] + +NOTE: This example allows any user to request that client scope. Roles can be used to restrict the scope of the client scope. This way only users with a specific role would be allowed to add the `domainb` audience. + +=== Create a client to perform the Token Exchange + +Create a confidential OpenID Connect client `clienta` with **Standard flow**, **Direct access grants** and **Standard token exchange** capability enabled. + +* **Client ID**: clienta +* **Name**: clienta +* Enable **Client authentication**. +* Enable capabilities **Standard flow**, **Direct access grants** and **Standard token exchange**. + +.Client for token exchange +image::jwt-authorization-grant-oidc-clienta.png[Client for token exchange] + +In the tab **Client scopes**, assign the previous `access-domainb` scope as optional to `clienta`. Click **Add client scope**, select `access-domainb` and **Add** as **Optional**. + +.Add client scope as optional +image::jwt-authorization-grant-oidc-add-scope.png[Add client scope as optional] + +=== Create a sample user + +Finally create a sample user in `domaina` with username `testuser`. Set a password to the account. + +[[_example_token_exchange]] +=== Example request for Token Exchange + +Normally `clienta` will possess an initial token issued by `domaina`, obtained via normal authorization flow, or just because the client is a service endpoint that receives the token as a bearer. In this example, a direct access grant for `testuser` is requested to get `token1`. + +[source,bash] +---- +curl -s -X POST \ + --location http://localhost:8080/realms/domaina/protocol/openid-connect/token \ + --header "Content-Type: application/x-www-form-urlencoded" \ + --data-urlencode "client_id=clienta" \ + --data-urlencode "client_secret=XXXXXX" \ + --data-urlencode "grant_type=password" \ + --data-urlencode "username=testuser" \ + --data-urlencode "password=YYYYYY" +---- + +Now `clienta` can exchange the token, including scope `access-domainb`, and restricting the audience to `http://localhost:8080/realms/domainb` (issuer of `domainb`). + +[source,bash] +---- +curl -s -X POST \ + --location http://localhost:8080/realms/domaina/protocol/openid-connect/token \ + --header "Content-Type: application/x-www-form-urlencoded" \ + --data-urlencode "client_id=clienta" \ + --data-urlencode "client_secret=XXXXXX" \ + --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \ + --data-urlencode "subject_token_type=urn:ietf:params:oauth:token-type:access_token" \ + --data-urlencode "scope=access-domainb" \ + --data-urlencode "audience=http://localhost:8080/realms/domainb" \ + --data-urlencode "subject_token=$token1" +---- + +The resulting access token `token2` will be a valid assertion for JWT Authorization Grant in `domainb`. + +== Configuring JWT Authorization grant in `domainb` for chaining + +The next steps configure `domainb` to accept a JWT authorization grant using the assertion obtained via Token Exchange in `domaina` (see previous chapter). The resulting access token will be valid for `domainb`. + +For more information about JWT Authorization Grant, see <@links.securingapps id="jwt-authorization-grant" />. + +=== Create an OpenID Connect Identity provider for `domaina` + +Create a Identity Provider to establish the trust relationship with `domaina`. In **Identity providers**, click the **OpenID Connect v1.0** type. + +* **Alias**: domaina +* **Discovery endpoint**: http://localhost:8080/realms/domaina/.well-known/openid-configuration (load OpenID metadata from the discovery endpoint of `domaina`) +* **Client ID**: http://localhost:8080/realms/domainb (client created in `domaina` that represents `domainb`) +* **Client Secret**: + +.Identity Provider for domaina +image::jwt-authorization-grant-oidc-idp.png[Identity Provider for domaina] + +After creation, enable the **JWT Authorization Grant** option. + +=== Create a client to perform the JWT authorization grant + +Create a confidential OpenID Connect client `clientb` with **JWT Authorization Grant** capability enabled. In the option **Allowed Identity Providers for JWT Authorization Grant** add the `domaina` Identity Provider. + +* **Client ID**: clientb +* **Name**: clientb +* Enable **Client authentication**. +* Enable **JWT Authorization Grant** capability. +* **Allowed Identity Providers for JWT Authorization Grant**: domaina + +.Client for JWT authorization grant +image::jwt-authorization-grant-oidc-clientb.png[Client for JWT authorization grant] + +=== Link the sample user in `domainb` + +To test the JWT Authorization Grant, the sample user created in `domaina` should be linked in `domainb`. You can just access to the account page in `domainb`: + +* In a browser go to the account page in `domainb`: http://localhost:8080/realms/domainb/account +* Click `domaina` button to use the Identity Provider to login. +* The browser is redirected to login page in `domaina`. +* Log in using the test user and the password assigned previously. +* Check in **Account security** -> **Linked accounts** that the user is correctly linked to `domaina`. + +=== Example request for JWT authorization grant + +The `token2` obtained in <<_example_token_exchange,Example request for Token Exchange>> will be a valid assertion for `domainb`. So, the `clientb` defined in `domainb` can send a JWT Authorization Grant with that token. + +[source,bash] +---- +curl -s -X POST \ + --location http://localhost:8080/realms/domainb/protocol/openid-connect/token \ + --header "Content-Type: application/x-www-form-urlencoded" \ + --data-urlencode "client_id=clientb" \ + --data-urlencode "client_secret=ZZZZZZ" \ + --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer" \ + --data-urlencode "scope=profile" \ + --data-urlencode "assertion=$token2" +---- + +The response will contain a new access token issued by `domainb`. + + \ No newline at end of file diff --git a/docs/guides/securing-apps/specifications.adoc b/docs/guides/securing-apps/specifications.adoc index 9ea8a8f1a34..7163987ce01 100644 --- a/docs/guides/securing-apps/specifications.adoc +++ b/docs/guides/securing-apps/specifications.adoc @@ -3,7 +3,7 @@ <@tmpl.guide title="Specifications implemented" -priority=140 +priority=160 summary="List of specifications and standards implemented by {project_name}."> This {section} presents a list of specifications and standards that {project_name} currently implements. The standards are separated in different sections and, in each one, a table is shown with the following four columns: