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

标签 keycloak openid-connect

我已通过 OpenID Connect 将 Azure AD 连接到 Keycloak。我想做以下事情:

  • 如果用户“Romeo”是 AD 中“Montague”组的成员,则他在 Keycloak 中应该具有“情人”角色
  • 我不想导入所有 AD 组和用户,用户会在首次登录时导入
  • Keycloak 中定义了“情人”角色
  • 这应该适用于领域级别,并且对于不同的客户端也同样适用

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

最佳答案

这非常困难,但也是可能的。方法如下:

  • 默认情况下,Azure Active Directory 不返回组成员身份。要激活它:
    • 转到您的应用注册
    • 转至“管理”>“ list ”
    • 将“groupMembershipClaims”键的值设置为“All”,以使该行如下所示:"groupMembershipClaims": "All",
    • 保存
  • Keycloak 默认情况下不请求groups 范围。去做这个:
    • 在 Keycloak 管理 UI 中,转到“配置”>“客户端范围”
    • 点击“创建”
    • 输入名称:“群组”
    • 启用“包含在 token 范围内”
    • 启用“在同意屏幕上显示”
    • 保存
    • 然后,将groups范围添加到“默认客户端范围”
  • 仍在 Keycloak 中,请转到您的身份提供商
    • 创建一个新的映射器
    • 映射器类型:“声明角色”
    • 声明:“团体”
    • 声明值:输入对象 ID不是您希望用作角色分配触发器的 AD 组的名称
    • 角色:选择所需的角色
    • 保存

关于keycloak - 使用 OIDC 时将组映射到 Keycloak 中的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70974442/

相关文章:

java - 没有找到 kid Keycloak 的公钥?

oauth-2.0 - 支持 "Personal Access Tokens"或 "API keys"

openid-connect - Keycloak,openId-connect userInfo

Keycloak - 如何在使用 Keycloak 的 Admin REST API 发送电子邮件时选择电子邮件验证模板?

active-directory - Keycloak AD FS 交互

javascript - 如何确定用户是否仍在使用 PingFederate OpenID Connect 隐式客户端流登录?

jwt - .net core web api jwtbearer 中间件如何使用身份验证提供程序验证 OpenID Connect token

openid-connect - OpenID Connect session 管理中的 session 状态

asp.net-core - Blazor Web 程序集、FIDO2 和身份服务器

java - 用于保护 AngularJS 前端 + Java Web 服务的 Keycloak