相关疑难解决方法(0)

通过 Keycloak API 添加用户时忽略“realmRoles”参数

我正在尝试通过 Keycloak API 创建用户,并且我想在首次添加时为其分配领域级角色。但是,它似乎不像文档所说的那样工作。

我知道我可以在初始创建用户 API 请求之后简单地发出第二个 add-role-to-user API 请求,但是:

  • 文档表明我不需要这样做。
  • 第二个 API 请求可能会失败,使用户处于“未完成”状态。
  • 它会使我编写的代码比它需要的更复杂。

为了在 中进行测试irb,使用keycloak Ruby gem,我首先从 Keycloak 请求访问令牌:

require 'keycloak'
json = Keycloak::Client.get_token_by_client_credentials
access_token = JSON.parse(json)['access_token']
Run Code Online (Sandbox Code Playgroud)

以下所有内容在 Keycloak 中创建一个用户,但没有“所有者”角色:

Keycloak::Admin.generic_post('users', nil, { username: 'someone', realmRoles: ['owner'] }, access_token)
Keycloak::Admin.generic_post('users', nil, { username: 'someone', realmRoles: ['1fff5f5f-7357-4f73-b45d-65ccd01f3bc8'] }, access_token)
Keycloak::Admin.generic_post('users', nil, { username: 'someone', realmRoles: ['{"id":"1fff5f5f-7357-4f73-b45d-65ccd01f3bc8","name":"owner","description":"Indicates that a user is the owner of an organisation.","composite":false,"clientRole":false,"containerId":"MyRealmName"}'] }, access_token)
Run Code Online (Sandbox Code Playgroud)

尝试使用角色哈希而不是字符串会导致错误:

Keycloak::Admin.generic_post('users', nil, { username: 'someone', realmRoles: [{"id"=>"1fff5f5f-7357-4f73-b45d-65ccd01f3bc8", "name"=>"owner", …
Run Code Online (Sandbox Code Playgroud)

ruby keycloak

4
推荐指数
1
解决办法
1764
查看次数

标签 统计

keycloak ×1

ruby ×1