mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-27 09:42:16 +00:00
feat(oauth/oidc): move token exchange from beta to GA (#11475)
# Which Problems Are Solved This PR marks the OAuth2 Token Exchange as general available (GA). # How the Problems Are Solved - API: - deprecated the feature toggle (to prevent breaking changes) in v2beta and v2 API - removed all related event logic and updated the projection interation - removed the toggle usage for token exchange - removed related translations - Management Console: - removed the feature toggle and its translations - Docs: - removed all beta labels and feature toggle notes # Additional Changes - removed unused `Errors.WebKey.FeatureDisabled` translations # Additional Context - closes #11114 --------- Co-authored-by: Marco A. <[email protected]>
This commit is contained in:
@@ -106,7 +106,6 @@ no additional parameters required
|
||||
|
||||
#### Response modes
|
||||
|
||||
ZITADEL supports the following `response_mode` values. When no response mode is requested, the response mode is chosen based on the configured Response Type of the application.
|
||||
ZITADEL supports the following `response_mode` values. When no response mode is requested, the response mode is chosen based on the configured Response Type of the application.
|
||||
As per [OpenID Connect Core 1.0, Section 3.1.2.1](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest):
|
||||
|
||||
@@ -391,10 +390,6 @@ curl --request POST \
|
||||
|
||||
The Token Exchange grant implements [RFC 8693, OAuth 2.0 Token Exchange](https://www.rfc-editor.org/rfc/rfc8693) and can be used to exchange tokens to a different scope, audience or subject. Changing the subject of an authenticated token is called impersonation or delegation. ZITADEL also provides a [token exchange guide](/guides/integrate/token-exchange) with more details on using the Token Exchange Grant.
|
||||
|
||||
<Callout>
|
||||
Token Exchange is currently an experimental [beta](https://help.zitadel.com/zitadel-software-release-cycle#beta) feature. Be sure to enable it on the [feature API](/guides/integrate/token-exchange#feature-api) before using it.
|
||||
</Callout>
|
||||
|
||||
#### Request parameters
|
||||
|
||||
<TokenExchangeRequest components={props.components} />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Impersonation and delegation using Token Exchange
|
||||
sidebar_label: Token Exchange [Beta]
|
||||
sidebar_label: Token Exchange
|
||||
---
|
||||
|
||||
import TokenExchangeTypes from "../../apis/openidoauth/_token_exchange_types.mdx";
|
||||
@@ -9,12 +9,6 @@ import TokenExchangeResponse from "../../apis/openidoauth/_token_exchange_respon
|
||||
|
||||
The Token Exchange grant implements [RFC 8693, OAuth 2.0 Token Exchange](https://www.rfc-editor.org/rfc/rfc8693) and can be used to exchange tokens to a different scope, audience or subject. Changing the subject of an authenticated token is called impersonation or delegation. This guide will explain how token exchange is implemented inside ZITADEL and gives some usage examples.
|
||||
|
||||
<Callout type="info">
|
||||
Token Exchange is currently an [experimental beta](https://help.zitadel.com/zitadel-software-release-cycle#beta) feature. Be sure to enable it on the [feature API](#feature-api) before using it.
|
||||
|
||||
Test the feature and add improvement or bug reports directly to the [github repository](https://github.com/zitadel/zitadel) or let us know your general feedback in the [discord thread](https://discord.com/channels/927474939156643850/1333448892083208262)!
|
||||
</Callout>
|
||||
|
||||
In this guide we assume that the application performing the token exchange is already in possession of tokens. You should already have a good understanding on the following topics before starting with this guide:
|
||||
|
||||
- Integrate your app with the [OIDC flow](/guides/integrate/login/oidc/login-users) to obtain tokens
|
||||
@@ -184,22 +178,6 @@ First we will cover "simple" Token Exchange which only involves exchanging the `
|
||||
|
||||
These preparation steps are needed for all Token Exchange interaction, including impersonation.
|
||||
|
||||
#### Feature API
|
||||
|
||||
As Token Exchange is still a beta feature, the feature needs to be enabled for your instance by an `IAM_OWNER` first:
|
||||
|
||||
```bash
|
||||
curl -L -X PUT 'https://${CUSTOM_DOMAIN}/v2/features/instance' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H 'Accept: application/json' \
|
||||
-H 'Authorization: Bearer <IAM_OWNER_TOKEN>' \
|
||||
--data-raw '{
|
||||
"oidcTokenExchange": true
|
||||
}'
|
||||
```
|
||||
|
||||
If you are self-hosting, you can also enable the feature for the complete system (all instances) using the [set system level features](/reference/api/feature/zitadel.feature.v2.FeatureService.SetSystemFeatures) endpoint.
|
||||
|
||||
#### Application
|
||||
|
||||
Next we need to select an application that is allowed to perform Token Exchange. As with the other grant types, we need to enable the `urn:ietf:params:oauth:grant-type:token-exchange` grant type.
|
||||
|
||||
Reference in New Issue
Block a user