Сбой интеграции Gitlab OpenID Connect с ошибкой проверки сертификата - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь интегрировать Gitlab (развернутый из образа докера gitlab/gitlab-ce) с нашим внутренним поставщиком OpenID и получаю ошибку 500 и следующее сообщение в журналах при попытке аутентификации

OpenIDConnect::Discovery::DiscoveryFailed (SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)):
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'
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/middleware/correlation_id.rb:15:in `call'
lib/gitlab/middleware/read_only/controller.rb:40: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:12:in `call'

Наш поставщик OpenIDиспользует сертификаты TLS, подписанные внутренним центром сертификации.Я установил сертификаты CA, используя стандартный Debian update-ca-certificates в контейнере Gitlab, а также поместил их в /etc/gitlab/trusted-certs и переконфигурировал / перезапустил все безуспешно.

У меня gitlab.rb настроен для OIDC согласно это доку .

1 Ответ

1 голос
/ 11 июля 2019

Обновлен мой конфиг в соответствии с другим примером

    gitlab_rails['omniauth_providers'] = [
      {
        'name' => 'oauth2_generic',
        'label' => 'IDP',
        'app_id' => 'my-app-id',
        'app_secret' => 'xxx',
        'args' => {
          client_options: {
            'site' => 'https://idp.example.com/auth/realms/example.com/protocol/openid-connect/',
            'authorize_url' => 'auth',
            'user_info_url' => 'userinfo',
            'token_url' => 'token'
          },
          user_response_structure: {
            id_path: 'preferred_username',
            attributes: { nickname: 'preferred_username' }
          },
          name: 'oauth2_generic',
          strategy_class: 'OmniAuth::Strategies::OAuth2Generic'
        },
      }
    ]

и все работает!

Но не знаю, почему любое из изменений должно быть связано с проверкой сертификата: (

...