我正在尝试配置omniauth-saml,但我不完全确定我需要在app_id和app_secret中添加此配置。
我正在使用这个宝石:https://github.com/PracticallyGreen/omniauth-saml
如果我将这些字段留空,我当然得到:
收到的参数数量错误。 [无,无]
gitlab.yml文件中的文档链接到有关gitlab和omniauth的更多文档,但该文档不再存在(重定向到旧的README)。
任何帮助都将不胜感激,谢谢!
答案 0 :(得分:0)
工作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)
我设法让它工作,所以我在GitLab wiki上记录了这个程序。
编辑:It seems like SAML is now supported officially.还没有单一退出,但是......这似乎是一个omniauth限制。