未实现密钥掩蔽模拟API [英] Keycloak impersonation API not implemented
本文介绍了未实现密钥掩蔽模拟API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在尝试使用Keyloak模拟API(半最近添加的)来获取另一个用户的访问令牌。我已经基于docs和另一个StackOverflow question创建了一个半成功的cURL请求。cURL请求(下面的)返回501 Not Implemented
,我正在尝试解决这个问题。如果这是另一个错误,我会认为我做错了什么,但这似乎至少是部分正确的。
curl --verbose -X POST "http://localhost:8081/auth/realms/master/protocol/openid-connect/token"
-H "Content-Type: application/x-www-form-urlencoded"
--data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange"
-d "client_id=admin-cli"
-d "requested_subject={TARGET_USER_ID}"
-d "subject_token={USER_MANAGER_TOKEN}"
到目前为止,我的工作流程是获取密钥罩主域"admin"用户的访问令牌(成功),并在模拟请求中使用该令牌以及目标用户的密钥罩ID。我是否做错了什么或错过了某个步骤?
我没有更改任何密钥罩权限,这是必需的吗?
根据我的理解和文档,Keycloak v5 - Sever Installation目前支持并默认启用模拟。然而,另一篇文章(Keycloak v5 - Token Exchange)似乎表明该功能在默认情况下是禁用的;这会是我收到501 Not Implemented
的原因吗?
edit:@qdition提到需要启用令牌交换才能正常工作。但是,我们使用的是jboss/keycloak
Docker映像,我想知道应该在哪里添加profile.properties
文件才能启用此功能?
推荐答案
默认情况下启用模拟,Token Exchange
不启用。
要启用,请使用文档中提到的-Dkeycloak.profile=preview
或-Dkeycloak.profile.feature.token_exchange=enabled
启动服务器
https://www.keycloak.org/docs/latest/securing_apps/index.html#_token-exchange
这篇关于未实现密钥掩蔽模拟API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文