我正在更改现有的 GitLab
安装以使用 SAML
而不是 LDAP
进行身份验证。
此时,用户可以使用“使用 Saml 登录”按钮成功登录 Web 应用程序。然而,我不清楚 LDAP 和 SAML 方法之间似乎有什么区别:拥有通过 LDAP 登录创建的帐户的用户可以使用他们的 LDAP 用户名访问 Git 存储库(例如使用克隆、推送等)和密码,但拥有通过 SAML 登录创建的帐户的用户不能。
通过实验,我发现如果用户使用 GitLab UI 在初始 SAML
交互期间创建的帐户上设置单独的 GitLab 帐户密码,则他们可以访问 Git 存储库。在一个新用户帐户下创建项目后出现的一条 GitLab 消息将我指向了这个方向:“在您为帐户设置密码之前,您将无法通过 HTTPS pull 或推送项目代码”。
这个单独的密码配置似乎是必要的,因为我以某种方式错误配置了 SAML 集成。所以,我的问题是,无论是否使用 SAML
或 LDAP
,我是否错误地期望对 GitLab 托管的 Git 存储库的身份验证访问会起作用?如果没有,有人知道我应该查看的相关 SAML 配置设置吗?
如果有兴趣:我已经向 GitLab Google
组发布了一个类似的问题,但我还没有收到任何回复。
最佳答案
这是一个老问题,但我还是要回答,希望它能帮助其他偶然发现这个问题的人。
LDAP 和 SAML 之间的一个重要区别是 SAML 是一种基于 Web 的单点登录技术。 SAML 登录过程的一部分直接发生在用户的客户端(浏览器)和 SAML 服务器之间,然后 GitLab 在后端验证该信息。相反,当给定用户的 LDAP 密码时,GitLab 可以直接连接到 LDAP 服务器并验证身份。
许多 GitLab 用户结合使用 LDAP 和 SAML。 SAML 为 Web 端提供无缝的单点登录,而 LDAP 允许 Git 通过 HTTPS 接受密码,并且还为企业版中的 LDAP Group Sync 等高级功能打开了大门。
关于git - 配置 GitLab 以将 SAML OmniAuth 与 Active Directory IdP 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32634772/