使用 OIDC 时将组映射到 Keycloak 中的角色

Map groups to roles in Keycloak when using OIDC

我通过 OpenID Connect 将 Azure AD 连接到 Keycloak。我想执行以下操作:

我能找到的所有示例仅解释了如何使用 LDAP 执行此操作。

这出奇地困难,但有可能。方法如下:

  • Azure Active Directory 默认不 return 组成员身份。要激活它:
    • 转到您的应用程序注册
    • 转到“管理”>“清单”
    • 将“groupMembershipClaims”键的值设置为“All”,使该行看起来像这样:"groupMembershipClaims": "All",
    • 保存
  • Keycloak 默认不请求 groups 范围。去做这个:
    • 在 Keycloak Admin UI 中,转到配置 > 客户端范围
    • 点击“创建”
    • 输入名称:“组”
    • 启用“包含在令牌范围内”
    • 启用“在同意屏幕上显示”
    • 保存
    • 然后,将 groups 范围添加到“默认客户端范围”
  • 仍在 Keycloak 中,转到您的身份提供者
    • 创建一个新的映射器
    • 映射器类型:“声明角色”
    • 声明:“群组”
    • 声明值:输入对象 ID不是您希望用作角色触发器的 AD 组的名称作业
    • 角色:select所需的角色
    • 保存