是否有任何方法可以使用HTTP SSO随意从LDAP同步所有用户组到Artifactory ?

JFrog支持
2023-01-22 11

尽管Artifactory和HTTP SSO没有内置此功能,但可以使用User Plugin实现此功能。

此解决方案假定在用户登录之前在Artifactory中定义了Active Directory组。

您应该创建一个用户插件文件

$ARTIFACTORY_HOMEetcplugins,它使用了领域“functionallity

进口org.artifactory.security.RealmPolicy;

进口org.artifactory.security.groups.LdapGroupsSettings;

领域{

myrealm([autoCreateUsers: false, realmPolicy: realmPolicy . additive]) {

验证{用户名,凭据->

Log.info ('before user. info ')组:+ user.groups)

Log.info ('before groups: ' + groups)

def settings = new LdapGroupsSettings()

设置。ldapGroupSettingsName = 'LDAPTest'

groups += security.getCurrentUserGroupNames(settings)

Log.info ('after user. info ')组:+ user.groups)

Log.info ('after groups: ' + groups)

还真

}

}

}

请将'LDAPTest'更改为相应的ldap组设置名称Artifactory。

重新启动Artifactory以加载插件。

在那之后,

一旦用户连接到artifactory,他的ldap组将在登录时自动分配给他。

你可以用这个命令测试这个功能:

curl -H "REMOTE_USER: LdapUser" http://localhost:8081/artifactory/api/system/ping

这模拟了HTTP单点登录(注意REMOTE_USER头)。执行该命令后,i如果一切正常,这就是你在日志中看到的内容:

2016-04-18 18:04:02,657 [http-nio-8081- exex -2] [INFO] (samplePlugin_v4:7) - before user。组(读者):

2016-04-18 18:04:02,657 [http-nio-8081- exex -2] [INFO] (samplePlugin_v4:8) - before groups: [readers]

2016-04-18 18:04:04 . 939 [http-nio-8081- exex -2] [INFO] (samplePlugin_v4:12) - after user。分组:[读者、支持团队]

2016-04-18 18:04:04 . 939 [http-nio-8081- exec2] [INFO] (samplePlugin_v4:13) - after groups: [readers, support-team]

注意,ldap组“support-team”被添加到用户的现有组列表中。