我正在尝试配置omniauth-saml,但我不完全确定我需要为此配置在app_id 和app_secret 中添加什么。
我正在使用这个宝石:https ://github.com/PracticalGreen/omniauth-saml
如果我将这些字段留空,我当然会得到:
收到错误数量的参数。[无,无]
gitlab.yml 文件中的文档链接到更多关于 gitlab 和 omniauth 的文档,但该文档不再存在(重定向到旧的 README)。
任何帮助将不胜感激,谢谢!
我正在尝试配置omniauth-saml,但我不完全确定我需要为此配置在app_id 和app_secret 中添加什么。
我正在使用这个宝石:https ://github.com/PracticalGreen/omniauth-saml
如果我将这些字段留空,我当然会得到:
收到错误数量的参数。[无,无]
gitlab.yml 文件中的文档链接到更多关于 gitlab 和 omniauth 的文档,但该文档不再存在(重定向到旧的 README)。
任何帮助将不胜感激,谢谢!
我设法让它工作,所以我在 GitLab wiki 上记录了这个过程。
编辑:现在似乎正式支持 SAML。不过,还没有单次注销……这似乎是一个omniauth限制。
工作 CAS 配置向您展示了如何跳过使用标准配置并使用 devise.rb 将选项直接传递给提供者。这也是我配置omniauth-saml 的方式。
我能够让 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 的回调,因为当我尝试将 SAML 正确定义为gitlab.yml
. 这是我可以让 Gitlab 启动并通过 SAML 进行身份验证的唯一方法。这感觉很 hacky,所以可能有一种更优雅的方式来实现它;但是,我在任何地方都找不到示例。