omn​​iauth-saml作为gitlab中的提供者

时间:2013-10-23 17:09:03

标签: omniauth saml gitlab

我正在尝试配置omniauth-saml,但我不完全确定我需要在app_id和app_secret中添加此配置。

我正在使用这个宝石:https://github.com/PracticallyGreen/omniauth-saml

如果我将这些字段留空,我当然得到:

收到的参数数量错误。 [无,无]

gitlab.yml文件中的文档链接到有关gitlab和omniauth的更多文档,但该文档不再存在(重定向到旧的README)。

任何帮助都将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:0)

https://github.com/gitlabhq/gitlab-public-wiki/wiki/Working-Custom-Omniauth-Provider-Configurations#working-cas-configuration

工作CAS配置向您展示如何跳过使用标准配置,并使用devise.rb直接将选项传递给提供程序。这就是我如何配置omniauth-saml。

答案 1 :(得分:0)

我能够让SAML使用Gitlab 6.2.4,但它不是最优雅的解决方案。我使用Okta作为IdP,但我相信配置足够通用,可以应用于任何SAML IdP。

omniauth-saml添加到Gemfile并运行bundle

bundle install --without development test postgres --path vendor/bundle --no-deployment

创建GITLAB/config/initializers/omniauth.rb

 Devise.setup do |config|
   config.omniauth :saml,
     idp_cert_fingerprint: "your IdP certificate fingerprint",
     idp_sso_target_url: "your IdP SAML end point"
 end

修改GITLAB/app/controllers/omniauth_callbacks_controller.rb(在ldap的定义后添加此内容)

def saml
  handle_omniauth
end

我必须手动添加SAML的回调,因为当我尝试在gitlab.yml中正确定义SAML作为提供程序时,我得到了与原始海报相同的错误。这是我可以通过SAML启动和验证Gitlab的唯一方法。这感觉非常hacky,所以可能有一种更优雅的方式来实现它;但是,我无法在任何地方找到一个例子。

答案 2 :(得分:0)

https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations#working-saml-configuration

我设法让它工作,所以我在GitLab wiki上记录了这个程序。

编辑It seems like SAML is now supported officially.还没有单一退出,但是......这似乎是一个omniauth限制。