如何将HTTP单点登录用户映射到LDAP组?
可以将LDAP组映射到单点登录用户Artifactory用户插件.使用这个插件的完整过程如下:
<设置LDAP & LDAP组>
设置并启用ArtifactoryLDAP和LDAP组使用这个解决方案(需要Jfrog支持门户登录)。导入LDAP组。
<修改用户插件> .
- 下载的SynchornizeLDAPGroups'用户插件,并把它放在你的$ARTIFACTORY_HOME/etc/plugins(或$CLUSTER_HOME/etc/plugins如果你使用Artifactory 4。高可用性x)
- 取代“Il-users”与LDAP组SETTING的名称(不是导入的组)
- 在“myrelms”内部,添加以下一行到插件中,仅用于调试:log.debug“用户”+用户名+“有以下组”+组
- 将以下日志添加到$ARTIFACTORY_HOME/etc/logback.xml文件中(不需要重新启动):
. - 添加用户插件后运行插件重载rest API或重新启动Artifactory。
<使用实例验证同步>
- 为了检查单点登录用户是否在LDAP组中获得了正确的组,需要一个名为“shayy”的现有用户。你可以看到这个用户在Artifactory中不存在:
- 我已经导入了LDAP组,我希望用户获得其权限。在本例中,和在插件中一样,我们使用了' il-users '。我已经导入了两个组,它们是“il-users”的一部分。
- 在Artifactory中有了这些组之后,我就创建了一个简单的SSO配置,这样就可以对用户进行身份验证并同步该用户拥有的LDAP组。这意味着一旦我使用这个SSO用户登录,插件就会给它这个用户在LDAP上拥有的组。
- 执行如下rest命令:curl -i -H "REMOTE_USER:shayy"https://localhost:8081/artifactory/api/system/ping
如您所见,这将为SSO提供它所期望的头,以便对用户进行身份验证。 - 这样做之后,就创建了具有默认权限的用户。
- 如果您访问artificial。log,您将能够看到,尽管UI没有显示它,但我们添加的调试行将向您显示用户是组的一部分,就像他在LDAP服务器上一样。看到ArtifactoryLogAfterSSO.png。这是因为插件会在每个会话中添加权限,而不是作为一个固定的groupsper用户。
- 如果您尝试使用这个用户在LDAP服务器上拥有的权限,它将成功,因为插件将这些组权限附加到这个用户。
