是否有任何方法可以使用HTTP SSO随意从LDAP同步所有用户组到Artifactory ?
尽管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”被添加到用户的现有组列表中。
