Keycloak 无法使用KeyClope REST API创建角色

Keycloak 无法使用KeyClope REST API创建角色,keycloak,keycloak-rest-api,Keycloak,Keycloak Rest Api,我正试图在Key斗篷中为我的领域添加一个角色,但它给了我一个错误的请求响应。我的步骤: 使用以下命令获取令牌: 使用以下命令获取客户端ID: 尝试使用[文档][1]添加角色: 当我发出最后一个命令时,我得到了错误的请求响应。我做错了什么?多谢各位 你看起来很接近 我能够通过以下REST API创建领域级角色: 这与您的呼叫之间的区别在于,您正在尝试创建一个客户端级别的角色。您是否对客户级角色有特定要求,或者您只是在尝试 如果领域级角色满足您的需求,您可以使用上述API 还要检查以确保您正确地按照

我正试图在Key斗篷中为我的领域添加一个角色,但它给了我一个错误的请求响应。我的步骤:

使用以下命令获取令牌: 使用以下命令获取客户端ID: 尝试使用[文档][1]添加角色: 当我发出最后一个命令时,我得到了错误的请求响应。我做错了什么?多谢各位


你看起来很接近

我能够通过以下REST API创建领域级角色:

这与您的呼叫之间的区别在于,您正在尝试创建一个客户端级别的角色。您是否对客户级角色有特定要求,或者您只是在尝试

如果领域级角色满足您的需求,您可以使用上述API


还要检查以确保您正确地按照步骤设置了AdminRESTAPI。

您似乎已经非常接近了

我能够通过以下REST API创建领域级角色:

这与您的呼叫之间的区别在于,您正在尝试创建一个客户端级别的角色。您是否对客户级角色有特定要求,或者您只是在尝试

如果领域级角色满足您的需求,您可以使用上述API


还要检查以确保您正确地按照步骤设置了admin Rest API。

您应该从要访问的客户端获取带有客户端密码的令牌

token=$(
  curl -X POST "http://localhost:8180/auth/realms/master/protocol/openid-connect/token" \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'username=[USER]&password=[PASSWORD]&grant_type=password&client_id=admin-cli&client_secret=[CLIENT_SECRET]' \
  | jq -r '.access_token'
)

clientID=$(
  curl -X GET "http://localhost:8180/auth/admin/realms/vertical/clients?clientId=[CLIENT_NAME]" \
  -H "Authorization: Bearer "${token} \
  -H 'cache-control: no-cache' | jq -r '.[].id'
)
尝试使用application/json而不是application.json。 来自授权标头的引号应包括令牌

不要忘记上一个curl命令中的-X POST:

curl -X POST "http://localhost:8180/auth/admin/realms/[REALM]/clients/${clientID}/roles" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer ${token}" \
 -d '{"name": "test-role"}'

您应该从要访问的客户端获取带有客户端密码的令牌

token=$(
  curl -X POST "http://localhost:8180/auth/realms/master/protocol/openid-connect/token" \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'username=[USER]&password=[PASSWORD]&grant_type=password&client_id=admin-cli&client_secret=[CLIENT_SECRET]' \
  | jq -r '.access_token'
)

clientID=$(
  curl -X GET "http://localhost:8180/auth/admin/realms/vertical/clients?clientId=[CLIENT_NAME]" \
  -H "Authorization: Bearer "${token} \
  -H 'cache-control: no-cache' | jq -r '.[].id'
)
尝试使用application/json而不是application.json。 来自授权标头的引号应包括令牌

不要忘记上一个curl命令中的-X POST:

curl -X POST "http://localhost:8180/auth/admin/realms/[REALM]/clients/${clientID}/roles" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer ${token}" \
 -d '{"name": "test-role"}'
curl -X POST "http://localhost:8180/auth/admin/realms/[REALM]/clients/${clientID}/roles" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer ${token}" \
 -d '{"name": "test-role"}'