【问题标题】:Get ID token of a user using custom Admin REST API in Keycloak使用 Keycloak 中的自定义 Admin REST API 获取用户的 ID 令牌
【发布时间】:2021-01-20 07:50:43
【问题描述】:

在我现在正在开发的系统中,我想使用 Keycloak 的 admin REST API 在我的 Keycloak 服务器中获取用户的 ID 令牌,而不知道用户的密码(即,仅使用管理员的密码)用户)。

也就是说,我想要一个管理 API GET /{realm}/users/{id}/id-token.

有可能实现这一点吗?

(Keycloak 的文档说可以实现自定义 API 端点 (https://www.keycloak.org/docs/latest/server_development/index.html#_extensions_rest), 但我不确定是否可以添加我想要的功能。)

【问题讨论】:

  • 可能不适合您的用例,但您可能需要检查服务帐户(客户端凭据流)功能。您可以为服务帐户赋予角色(您需要为客户启用它,并且它必须是机密类型)。然后在您的后端,您可以使用客户端 ID 和客户端密码检索服务帐户的凭据,而不是模拟用户,然后使用这些凭据(令牌),您可以执行所需的调用。这样,进行数据操作的是服务,而不是模拟用户。

标签: keycloak keycloak-rest-api


【解决方案1】:

这听起来像是一个非常危险的功能(IDP 管理员可以伪装成他的 IDP 用户池中的任何用户)。但是您仍然缺少一个输入-客户端。每个客户端可能会生成不同的令牌。

我会说你可能需要:

1.) 访问令牌功能示例(不是 ID 令牌!)

检查GET /{realm}/clients/{id}/evaluate-scopes/generate-example-access-token端点

https://www.keycloak.org/docs-api/11.0/rest-api/index.html

2.) 模拟功能

https://www.keycloak.org/docs/latest/server_admin/#impersonation

3.) 您可以在 Keycloak 中自行实现它,因此它完全符合您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-08
    • 2021-04-19
    • 1970-01-01
    • 2020-12-08
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多