Keycloak v25 - 启用交换令牌

问题描述 投票:0回答:1

我正在使用 Keycloak 25。 我正在使用 python keycloak 来使用 keycloak API。

我已成功从 Web 界面启用模拟,但我需要使用令牌交换通过 api 模拟用户。

官方页面有不同的屏幕截图,我找不到启用 token_exchange 的部分。

https://www.keycloak.org/docs/latest/securing_apps/index.html#_token-exchange

这是KeycloakOpenID中的方法标志

def exchange_token(
        self,
        token: str,
        audience: Optional[str] = None,
        subject: Optional[str] = None,
        subject_token_type: Optional[str] = None,
        subject_issuer: Optional[str] = None,
        requested_issuer: Optional[str] = None,
        requested_token_type: str = "urn:ietf:params:oauth:token-type:refresh_token",
        scope: str = "openid",
    ) -> dict:
        """Exchange user token.

        Use a token to obtain an entirely different token. See
        https://www.keycloak.org/docs/latest/securing_apps/index.html#_token-exchange

这是我得到的错误:

keycloak.exceptions.KeycloakPostError: 400: b'{"error":"unsupported_grant_type","error_description":"Unsupported grant_type"}'
keycloak
1个回答
0
投票

我也有同样的问题,你可以检查一下:

https://www.keycloak.org/server/features#:~:text=Multi%2Dsite%20support-,Preview%20features,-Preview%20features%20are

我只需重新启动我的 keycloak 环境并添加 KC_FEATURES=token-exchange 即可启用该功能。

(我使用chart helm来部署)

containers:
 - name: my_container_name    
   image: "quay.io/keycloak/keycloak:{{ .Values.KC_version }}"
      command:
        - /opt/keycloak/bin/kc.sh
        - start
      env:
        ....
        - name: KC_FEATURES
          value: token-exchange
© www.soinside.com 2019 - 2024. All rights reserved.