因此,我使用 Keycloak 对我的项目的名为 QMS 的微服务进行身份验证和授权。 我目前有 3 个角色:
default-roles-qms
- 自动创建,无法删除或编辑manager
developer
manager
和 developer
是微不足道的,是我创建的。
我有 2 个用户:Tom(
manager
) 和 Dick(developer
)。
现在我有两个问题和一个担忧:
问题1:这到底是什么
default-roles-qms
?为什么我不能将另一个角色设置为默认角色或编辑此角色?为什么我需要这个预定义的默认角色而不需要其他角色?
问题 2:如果我删除用户的
default-roles-qms
映射,他们的 OIDC 令牌不会带来 aud: account
属性以及我授权所需的 resource_access
对象。
获取 OIDC 令牌的 URL => "http://{host}:{port}/auth/realms/QMS/protocol/openid-connect/token"
问题:在添加用户时,一个非默认角色(即管理员)会间歇性地被继承,这并不是有意的,并且会出现在开发人员的角色映射中,如图所示。 附:在这张图片中,我特意添加了经理角色以显示它出现的位置,因为该事件是间歇性的。
有人可以帮忙解决这些吗?
我尝试的所有步骤都如上。
我的期望: 我应该能够将角色设置为默认角色,即
developer
。但这并不是一个令人担忧的问题。
主要关注的是,除了默认角色之外,新用户不应继承其他角色。
我很乐意提供更多详细信息以防万一。
问题 1:这个 default-roles-qms 到底是什么?为什么我不能将另一个角色设置为默认角色或编辑此角色?为什么我需要这个预定义的默认角色而不需要其他角色?
Keycloak 使用“default-roles-{realm_name}”来管理领域中的默认角色。它是一个复合角色,因此您可以为其分配其他角色。默认情况下,组成“default-roles-qms”的所有角色都会分配给每个领域用户。
将某些角色设为默认:
问题 2:如果我删除用户的 default-roles-qms 映射,他们的 OIDC 令牌不会带来 aud: account 属性以及我授权所需的 resources_access 对象。获取 OIDC 令牌的 URL => "http://{host}:{port}/auth/realms/QMS/protocol/openid-connect/token"
当你打开“default-roles-qms”时,你会发现它附加了一些角色。这些角色由 Keycloak 本身使用,以便正常运行。因此,当您删除映射时,您就禁用了一些 Keycloak 功能。