2015-09-17 155 views
11

我正在修改现有的GitLab安装以使用SAML而不是LDAP进行身份验证。配置GitLab将SAML OmniAuth与Active Directory一起使用IdP

此时,用户可以使用'使用Saml登录'按钮成功登录Web应用程序。然而,我不清楚LDAP和SAML方法之间有什么区别:通过LDAP登录创建帐户的用户可以使用他们的LDAP用户名访问Git存储库(例如使用克隆,推送等)和密码,但通过SAML登录创建帐户的用户不能。

通过实验发现,如果用户使用GitLab UI在初始SAML交互期间创建的帐户上设置单独的GitLab帐户密码,那么他们可以访问Git存储库。我在一个新的用户帐户下创建一个项目后,通过GitLab消息指出了这个方向:'在您为帐户设置密码之前,您将无法通过HTTPS提取或推送项目代码'。

似乎有可能这个单独的密码配置是必要的,因为我以某种方式错误地配置了SAML集成。所以,我的问题是,如果我认为对使用GitLab托管的Git存储库进行身份验证的访问权限是否可以正常工作,而不管使用SAML还是LDAP都是错误的?如果没有,是否有人知道我应该查看的相关SAML配置设置?

万一感兴趣:我发布了一个类似的问题到GitLab Google组,但我还没有收到任何答复。

回答

1

这是一个古老的问题,但我无论如何都在回应,希望它能帮助别人在这个问题上磕磕绊绊。

LDAP和SAML之间的一个重要区别是SAML是一种基于Web的单点登录技术。部分SAML登录过程直接发生在用户的客户端(浏览器)和SAML服务器之间,然后GitLab在后端验证该信息。相反,当给定用户的LDAP密码时,GitLab可以直接连接到LDAP服务器并验证身份。

许多GitLab用户使用LDAP和SAML的组合。 SAML为网络端提供了无缝的单一登录,而LDAP则允许Git通过HTTPS接受密码,并为企业版中的LDAP组同步等高级功能打开了大门。