在 Keycloak 中使用自定义 Admin REST API 获取用户的 ID 令牌
Get ID token of a user using custom Admin REST API in Keycloak
在我现在正在开发的系统中,我想使用 Keycloak 的管理员 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),
但我不确定我是否可以添加我想要的功能。)
这听起来像是一个非常危险的功能(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 中自行实现,因此它完全符合您的需求。
在我现在正在开发的系统中,我想使用 Keycloak 的管理员 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), 但我不确定我是否可以添加我想要的功能。)
这听起来像是一个非常危险的功能(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 中自行实现,因此它完全符合您的需求。