代码之家  ›  专栏  ›  技术社区  ›  Daniel Lenz

通过SAML SSO进行Git CLI验证

  •  0
  • Daniel Lenz  · 技术社区  · 4 年前

    我正在尝试连接到一个自我管理的Gitlab服务器,该服务器运行在公司网络中的一台机器上 从这个网络之外

    发行

    问题在于使用gitcli与git服务器交互(push、pull等)。重定向到SSO会触发以下错误:

    > git push origin master
    fatal: unable to update url base from redirection:
      asked for: https://gitserver.companyurl.com/user/repo.git/info/refs?service=git-receive-pack
       redirect: https://login.microsoftonline.com/<azure_tenant_id>/saml2?SAMLRequest=<base64encoding of SSO portal>
    

    问题

    具体来说,以下是理想的:

    • 用户执行 git push
    • 请求“进入”公司网络
    • 理想的 :重复使用相同的令牌对git服务器进行身份验证。但是,使用用户:pwd组合或者访问令牌也可以。
    • 这个 请求已成功完成

    enter image description here

    0 回复  |  直到 4 年前
        1
  •  1
  •   bk2204    4 年前

    你所要求的是不可能的。Git没有办法生成浏览器(因为甚至不需要安装浏览器),即使安装了,也没有办法从生成的浏览器中提取任何令牌或凭据。

    http.cookiefile 以Netscape格式读取Cookie。您还可以使用 http_proxy 环境变量和用户的凭据,但请注意代理正确地说HTTP/1.1,并且不执行任何筛选,因为损坏的代理以各种微妙的方式破坏Git。

    我应该指出,一般来说,在Git主机前面使用反向代理来限制这样的访问会破坏自动化。您可能希望允许SSH密钥或其他方法来防止SAML SSO破坏与任何用户都没有关联的自动化进程。