Keycloak 如何在KeyClope中从自定义客户端获取角色?

Keycloak 如何在KeyClope中从自定义客户端获取角色?,keycloak,keycloak-rest-api,Keycloak,Keycloak Rest Api,要在自定义客户端中获取角色,我知道我需要执行两个API。一个是获取访问令牌,另一个是获取角色。我的疑问是,我应该通过在标题中发送admin CLI详细信息来获取accessToken,还是因为我需要创建的自定义客户端的角色?因为,我在尝试获取角色时遇到未知错误 要获取accessToken,请执行以下操作: curl -X POST \ http://localhost:8080/auth/realms/test-keycloak-example/protocol/openid-connec

要在自定义客户端中获取角色,我知道我需要执行两个API。一个是获取访问令牌,另一个是获取角色。我的疑问是,我应该通过在标题中发送admin CLI详细信息来获取accessToken,还是因为我需要创建的自定义客户端的角色?因为,我在尝试获取角色时遇到未知错误

要获取accessToken,请执行以下操作:

curl -X POST \
  http://localhost:8080/auth/realms/test-keycloak-example/protocol/openid-connect/token \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&client_id=test-keycloak-example&client_secret=shhh'
要获取角色,请执行以下操作:

curl -X GET \
  http://localhost:8080/auth/admin/realms/test-keycloak-example/clients/cb11fd17-46df-419a-9c67-4a69d1be66ae/roles \
  -H 'authorization: Bearer <token received from previous call> \
  -H 'cache-control: no-cache' \
  -H 'postman-token: 248fef6b-9c24-3aa3-91ae-a6f11e01e55c'

使用邮递员和三个条件应该支持它。 #1“测试用户”需要“查看客户端”角色。它来自“领域管理”客户端。

#2使用“admin cli”客户端,将访问类型更改为“机密”,并打开“授权启用”即“打开”

#3使用“admin cli”的密码进行邮递员令牌呼叫。

#4使用#3的秘密和#1的用户凭证(用户名和密码)获取令牌

  • 令牌“expires_in”非常短,您需要通过UI创建更长的令牌。 这是admin cli的高级设置(仅用于测试目的)
#5您需要保存用于调用客户端/角色API的令牌

  • 这与邮递员的测试选项卡上的#4 API相同。
#6带有#5令牌的调用列表客户端/角色API。

#7从#6中查找“自定义客户端”id

#8使用#7 id调用自定义角色API。 它应该与UI的角色相匹配。


祝你好运

测试密钥斗篷示例客户端是否有足够的管理权限来管理域?是。
{
   "error": "unknown_error"
}