我能夠讓SAML與Gitlab 6.2.4一起工作,但它不是最優雅的解決方案。我使用Okta作爲IdP,但我相信該配置足夠通用,可以應用於任何SAML IdP。
添加omniauth-saml
到Gemfile中跑束
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啓動和驗證的唯一方法。這感覺很不方便,所以可能有更優雅的方式來實現這一點;然而,我無法在任何地方找到一個例子。