Error 500 when "omniauth_auto_sign_in_with_provider" set

Summary

I have my GitLab server setup to allow SSO from an oauth provider, but when I try to enable auo sign-in I will get an error 500 on the /users/sign_in page. However, regular login using SSO works just fine (when auto sign-in is turned off), but not automatically when redirected from the SSO site.

Steps to reproduce

(Please provide the steps to reproduce the issue)

Configuration used

gitlab_rails['omniauth_allow_single_sign_on'] = ['sso']
gitlab_rails['omniauth_auto_sign_in_with_provider'] = ['sso']
gitlab_rails['omniauth_providers'] = [
     {
       'name' => 'Sso',
       'app_id' => 'ID',
       'app_secret' => 'SECRET',
       'args' => {
          client_options: {
            'site' => 'https://sso.domain.com',
            'user_info_url' => '/sso/api/...',
            'authorize_url' => '/sso/api/...',
            'token_url' => '/sso/api/..'
          },
          user_response_structure: {
            root_path: [],
            attributes: { nickname: 'login', name: 'name', email: [ 'profile', 'email', 'email' ], avatar: [ 'profile' , 'avatar', 'url' ] }
          },
          name: 'sso',
          strategy_class: 'OmniAuth::Strategies::OAuth2Generic'
       }
     }
]

Current behavior

Error 500 when redirected to GitLab instance from SSO site.

Expected behavior

To be redirected from SSO site and automatically logged in.

Versions

  • Platform:
    • Self-hosted: Omnibus on Ubuntu, instance updated on 20/05-19

Relevant logs

==> /var/log/gitlab/gitlab-rails/production.log <==
Completed 500 Internal Server Error in 100ms (ActiveRecord: 4.1ms | Elasticsearch: 0.0ms)

NoMethodError (undefined method `user_["sso"]_omniauth_authorize_path' for #<ActionDispatch::Routing::RoutesProxy:0x00007f97b7c65920>):

app/controllers/sessions_controller.rb:185:in `auto_sign_in_with_provider'
lib/gitlab/i18n.rb:55:in `with_locale'
lib/gitlab/i18n.rb:61:in `with_user_locale'
app/controllers/application_controller.rb:434:in `set_locale'
lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
lib/gitlab/metrics/transaction.rb:57:in `run'
lib/gitlab/metrics/rack_middleware.rb:17:in `call'
lib/gitlab/middleware/multipart.rb:103:in `call'
lib/gitlab/request_profiler/middleware.rb:16:in `call'
ee/lib/gitlab/jira/middleware.rb:17:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:13:in `call'
lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
lib/gitlab/correlation_id.rb:15:in `use_id'
lib/gitlab/middleware/correlation_id.rb:15:in `call'
lib/gitlab/middleware/read_only/controller.rb:42:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/request_context.rb:26:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:29:in `call'
lib
/gitlab/middleware/release_env.rb:13:in `call'
Edited by Frederik Madsen