配置GitLab以将SAML OmniAuth与Active Directory IdP一起使用

时间:2015-09-17 15:51:17

标签: git ldap gitlab omniauth saml

我正在更改现有的GitLab安装,以使用SAML而不是LDAP进行身份验证。

此时,用户可以使用“使用Saml登录”按钮成功登录Web应用程序。但是,我不清楚LDAP和SAML方法之间的区别是什么:通过LDAP登录创建帐户的用户可以使用他们的LDAP用户名访问Git存储库(例如使用clone,push,...)和密码,但通过SAML登录创建帐户的用户不能。

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

这个单独的密码配置似乎是必要的,因为我错误地配置了SAML集成。所以,我的问题是,无论是否使用SAMLLDAP,我是否错误地认为对GitLab托管的Git存储库的身份验证访问是否会起作用?如果没有,是否有人知道我应该检查的相关SAML配置设置?

如果感兴趣:我已向GitLab Google小组发布了类似问题,但我尚未收到任何回复。

1 个答案:

答案 0 :(得分:3)

这是一个古老的问题,但无论如何我都会做出回应,希望它可以帮助那些偶然发现这个问题的人。

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

许多GitLab用户使用LDAP和SAML的组合。 SAML为Web端提供无缝单点登录,而LDAP允许Git over HTTPS接受密码,同时也为企业版中的LDAP Group Sync等高级功能打开了大门。