git - 配置 GitLab 以将 SAML OmniAuth 与 Active Directory IdP 结合使用

标签 git ldap gitlab omniauth saml

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

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

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

这个单独的密码配置似乎是必要的,因为我以某种方式错误配置了 SAML 集成。所以,我的问题是,无论是否使用 SAMLLDAP,我是否错误地期望对 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/

相关文章:

git - 你如何管理大型 git 存储库?

git - 结构脚本/bash : how to detect git file changed

c# - PrincipalContext LDAPS 自签名证书

ldap - inetOrgPerson 与member 或memberOf?

gitlab - 使用 .gitlab-ci.yaml 文件在 gitlab 中安排管道

Docker Push --all-tags 在管道中不起作用

ruby-on-rails - 如何在 Gitlab 上调试电子邮件发送?

git - 当在同一位置添加不同的方法(等)时,如何避免 merge 冲突?

git - 为什么 GitHub 不是 Azure Web App 部署的选项?

c# - IIS 提示使用 LDAP 身份验证的身份模拟