开发者社区> 问答> 正文

关于GitLab,请教是如何配置第三方帐号登录的呢?:报错

最近公司要搞git了,关于服务器的配置,我也是个门外汉啊,请大家有经验指点一下啊

情况是这样的

公司已经一台CentOS了,里面是那个wdcp+nginx+Discuz论坛,这个已经有两年多了。用户上万。

现在要新加一台CentOS,只装GitLab。要让原来在Discuz论坛的用户能直接上这个GitLab。要求就这样。

(我一开始是想这个GitLab直接就装在原来的CentOS,不知道这样行不行得通?这个大家可以说说)

现在这个GitLab吧,所为配置第三方帐号登录,

究竟是用“LDAP”呢?

还是“oauth2”呢?

还是“omniauth”呢?

还是“CAS”呢?GitLab8支持CAS

这四个东西都是不同的吗?按我们现在的服务器配置来,是不是除了加GitLab的服务器,还要再加一台配置第三方帐号登录认证的服务器呢?可以配置在原有的(就是wdcp那一台)机子上面吗?

有经验的来说说啊


展开
收起
kun坤 2020-06-14 11:44:44 1500 0
1 条回答
写回答
取消 提交回答
  • 你的难点在于Discuz是否可以向外开放用户认证接口,以及接口规范是啥。

    这两个基础都没有,也就谈不到Gitlab接入的问题。

    ######回复 @DuLerWeil : 现在一个网站用的是PHP,一个是Ruby,虽然都是用Nginx,能共存吗?######回复 @maya8maya85 : 程序咋部署无所谓,哪怕你把所有东西都装一台笔记本上。######回复 @DuLerWeil : 如果GitLab开放注册,那GitLab注册的帐号又要同步到Dz上,也是一大难题,现在简单点,单向同步,只把Dz的帐号同步过去,先搞定这个吧。你说这个oauth2服务器是又要开一个新的CentOS,还是放在旧的服务器上?######回复 @maya8maya85 : Gitlab可以开放注册啊。 关于Dz和Gitlab对接的问题,估计你是找不到现成的解决方案了。 鉴于OAuth2协议本身很简单,你可以研究Dz的用户表结构(特别是密码加盐算法之类的),然后基于表结构单独写个OAuth2服务器供Gitlab对接用。######GitLab不接受注册,只能在Dz注册再使用GitLab。我觉得这个好难,而且它们不在同一个服务器上,语言什么都不一样。有什么方法或者方向让我知道,我一步该怎么处理呢?######

    Discuz应该是有个UCenter类似单点登录的,但很明显gitlab不会支持UCenter的协议。

    楼主需要研究两个东西

    1. UCenter的协议
    2. ruby rails

    然后参考我这篇文章:http://leo108.com/pid-2138.asp

    ######回复 @leo108 : 还有clone下来的omniauth如何安装?######回复 @leo108 : 这是通过套装安装的Gitlab######回复 @leo108 : 3,omniauth_allow_single_sign_on = true?默认是这”['saml']“,是bool值吗?######回复 @leo108 : 2,gitlab的config/initializers/devise.rb同样没有找到,/var,/opt都没有找到。######回复 @leo108 : 1,写好的mystrategy.rb放在哪里?根据你的指引一篇老外文章是放在"lib/strategies/mystrategy.rb",但根本没有"lib/strategies"这个目录。请问具体放在哪里?######这个要自己搞吧 没搞过 帮不上忙######

    @maya8maya85 

    strategy.rb放/opt/gitlab/embedded/service/gitlab-rails/lib/omni_auth/strategies/

    config/initializers/devise.rb在/opt/gitlab/embedded/service/gitlab-rails/config/initializers/devise.rb

    至于omniauth_allow_single_sign_on,using an array, e.g. ["saml", "twitter"], or as true/false to allow all providers or none.

    clone安装的我没试过,不清楚

    ######回复 @leo108 : C,最后一个就是这个strategy.rb这文件的文件名,好像除了写文件的时候出现了一下,其它地方从来都没看到它的名字,名字没关系吗?成功引用了吗?######回复 @leo108 : B,你那文章中的指明加载路径那段代码,是加在文件config/initializers/devise.rb那里,我加在最后,现在我不知道对不对?反正现在是502,是有个地方错了。######回复 @leo108 : A,这lib/omni_auth目录是没有strategies文件夹的,你的意思是新建文件夹放rb进去吗?######回复 @leo108 : 还有三个地方想请你指导一下。######回复 @maya8maya85 : gitlab本身已经集成了omniauth了,不需要你再装啊######

    @leo108

    ######

    A. 新建文件夹

    B.是真正的最后,在原本最下面的end那行下面

    C.其实就是B里面的最后一个,也就是uco.rb

    ######回复 @leo108 : 调了几天都没成功,一错就是502,也不提示说有什么错误,不好调。。你那文章是没有发布gem的处理,如果是发布的gem,你会装吗?像安装个douban或者weibo什么的,能帮我装一下吗?大神,我按gitlab的文档也没成功######回复 @leo108 : 我比你更生手呢######回复 @maya8maya85 : 我对ruby也不熟,502的话应该是有ror的报错,具体日志路径在哪忘记了,你可以看看问题出在哪里######如果方便的话,我提供服务器相关密码,请你帮助一下,只要能调试到能重定向百度就ok.######特意抽出时间写了一天,按照你的文章指示,由于对语法不了解,我逐行调试,重编译,发现新写的uco.rb文件只要出现module就会502,不解。我安装的是8.10. devise.rb更是一加就502。不解,你的gitlab是什么版本?
    2020-06-14 11:44:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
安全机制与User账户身份验证实战 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载