我们如何配置 Artifactory 以将 OAuth 用户自动分配到 LDAP 组?

How can we configure Artifactory to auto-assign OAuth users to LDAP groups?

我已将 Artifactory 设置为允许通过 Keycloak 中的 OIDC 客户端进行 SSO。 Keycloak 在后台与 Active Directory 对话。我还在 Artifactory 中配置了相同的 Active Directory。我还配置了 Keycloak 以在 userinfo 结构中提供用户组。

我想做的是让 OAuth 用户自动添加到 Artifactory 中导入的 LDAP 组。我不介意这是通过userinfo 结构或在用户登录时通过单独的 LDAP 查找。但是我似乎无法弄清楚如何实现这一点。

我知道Artifactory提供了一个叫做synchronizeLdapGroups.groovy的插件,貌似是在宣传做我需要的,但是好像这个插件并没有真正生效。也就是说,用户最终不会获得 LDAP 组中的权限。

我试图自己编写一个插件来完成我需要的事情,但是当我调用 API 将组添加到用户时,插件崩溃了。目前尚不清楚原因。

似乎其他人已经将 Artifactory 中的 SCIM 功能用于类似的东西(虽然主要是通过 SAML 而不是 OIDC),但是 Keycloak 不支持开箱即用的 SCIM 和我试过的 SCIM 插件使用同样没有给我任何结果。

有没有人做过类似的事情,并且有我可以遵循的可行解决方案?

如果它是一个您希望所有用户都在的特定组,您可以尝试:

  • 在安全 - OAuth SSO 设置选项卡下 - 选中“自动创建用户”
  • 在身份和访问 - 组 - select 特定组下,选中“自动将新用户加入组”

我猜您想在 Keycloak 和 Artifactory 之间自动同步用户组关联。 SCIM 是您正在寻找的,但是 Keycloak SCIM 插件存在一个已知问题。 我们正在研究 Keycloak 的 SCIM 插件(无法在特定时间线上提交修复,但应该在本季度的某个时候)。

如果您只需要 UI 中的关联,您可以尝试设置“自动关联群组”的 SAML。它不会为 APIKey/Token 调用应用组关联,但它适用于 UI.


编辑: 经过进一步调查 github.com/Captain-P-Goldfish/scim-for-keycloak 与此处无关 - 它使 keycloak 成为 SCIM 客户端,而不是 SCIM 服务器。 keycloak 中没有对 SCIM 的官方支持,请参阅 issues.redhat.com/browse/KEYCLOAK-2537 。并且没有用于 keycloak 的工作插件使其成为我能找到的 SCIM 服务器(尝试了一些,都坏了)。目前 Artifactory 无法使用 Keycloak

支持 SCIM