哪些角色允许 Keycloak 领域中的用户使用 Admin-REST-API?
Posted
技术标签:
【中文标题】哪些角色允许 Keycloak 领域中的用户使用 Admin-REST-API?【英文标题】:Which roles enable a user in a Keycloak Realm to use the Admin-REST-API? 【发布时间】:2021-12-12 19:09:49 【问题描述】:非主域中的用户需要哪些角色/配置才能有效使用 Keycloak 15 Admin REST API?
我们已成功使用在领域管理客户端中分配了领域管理员角色的帐户来获取 admin-cli 客户端的令牌。
这仍然有效。
我不记得有多久了,但是在从 KC 14 迁移到 KC 15 之后,我们现在在尝试调用管理 cli 端点时遇到 403 错误,例如:
/auth/admin/realms/$realm/users/$userID/role-mappings/clients/$appClientUUID
/auth/admin/realms/$realm/users/$userid
等等
如果它会抛出 401,我会知道这至少是一个凭证问题,但令牌端点确实推出了一个访问令牌:
"alg": "RS256",
"typ": "JWT",
"kid": "kid"
.
"exp": 1635328475,
"iat": 1635328175,
"jti": "b621421d-ad69-4ddf-bedb-2c0d5da360cd",
"iss": "keycloak URL",
"sub": "subvalue",
"typ": "Bearer",
"azp": "admin-cli",
"session_state": "uuid",
"acr": "1",
"scope": "openid email profile",
"sid": "986dce48-2ef2-49e5-9152-4e54396ff2a4",
"email_verified": true,
"name": "-",
"preferred_username": "-",
"given_name": "-",
"family_name": "-",
"email": "-"
.[Signature]
令我惊讶的是令牌中似乎没有包含任何角色。
有没有人知道关于 Admin Rest API 的 KC 15 可能出了什么问题/配置错误?
【问题讨论】:
请仔细检查您的用户在您尝试通过 REST API 访问的领域中是否确实具有realm-management
客户端的realm-admin
角色。我只是加倍检查了 15.0.2 版一切正常。 Keycloak 知道用户从其数据库中拥有哪些角色。在这种情况下,无需将它们编码到令牌中。
我再次检查了一遍,我们尝试验证的用户确实具有分配给它的realm-admin
角色。
doh 感谢您的帮助。我应该仔细检查我使用的协议。有时会发生这些错误......
【参考方案1】:
原来这里唯一的问题是我在发出请求时指定的协议。有时会发生小学生错误。
对于那些在谷歌上搜索相同内容的人:检查您的用户是否在分配的客户端realm-management
中具有realm-admin
的角色。其他一切都由 Keycloak 在内部处理。
【讨论】:
以上是关于哪些角色允许 Keycloak 领域中的用户使用 Admin-REST-API?的主要内容,如果未能解决你的问题,请参考以下文章