Самостоятельная регистрация gitlab с помощью учетной записи Google

Самостоятельная регистрация gitlab с помощью учетной записи Google

Я настраиваю экземпляр GitLab EE и хочу включить процесс регистрации только с помощью учетной записи Google. Я следовал документации здесь:https://docs.gitlab.com/ce/integration/google.htmlи здесь:https://docs.gitlab.com/ce/integration/omniauth.html.

Интеграция с Google работает отлично, когда я попытался привязать существующий аккаунт к аккаунту Google, все было безупречно.

Проблема в том, что когда я пытаюсь зарегистрироваться с помощью Google без существующей учетной записи, возникает ошибка:

Вход с использованием учетной записи Google без существующей учетной записи GitLab не допускается.

Моя текущая /etc/gitlab/gitlab.rbконфигурация следующая:

### OmniAuth Settings
###! Docs: https://docs.gitlab.com/ce/integration/omniauth.html
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']
gitlab_rails['omniauth_sync_email_from_provider'] = 'google_oauth2'
gitlab_rails['omniauth_sync_profile_from_provider'] = ['google_oauth2']
gitlab_rails['omniauth_sync_profile_attributes'] = ['email', 'name', 'location']
gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'google_oauth2'
gitlab_rails['omniauth_block_auto_created_users'] = false
# gitlab_rails['omniauth_auto_link_ldap_user'] = false
# gitlab_rails['omniauth_auto_link_saml_user'] = false
# gitlab_rails['omniauth_external_providers'] = ['google_oauth2']
gitlab_rails['omniauth_providers'] = [
   {
     "name" => "google_oauth2",
     "app_id" => "my-app-id",
     "app_secret" => "my-app-secret",
     "args" => { "access_type" => "offline", "approval_prompt" => "" }
   }
]

Что я делаю не так? GitLab вообще может регистрироваться через Google?

решение1

После некоторой настройки конфигурации мне удалось найти работающую настройку:

### OmniAuth Settings
###! Docs: https://docs.gitlab.com/ce/integration/omniauth.html
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']
# gitlab_rails['omniauth_sync_email_from_provider'] = 'google_oauth2'
gitlab_rails['omniauth_sync_profile_from_provider'] = ['google_oauth2']
# gitlab_rails['omniauth_sync_profile_attributes'] = ['email']
# gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'google_oauth2'
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_ldap_user'] = true
# gitlab_rails['omniauth_auto_link_saml_user'] = false
# gitlab_rails['omniauth_external_providers'] = ['google_oauth2']
gitlab_rails['omniauth_providers'] = [
   {
     "name" => "google_oauth2",
     "app_id" => "<APP_ID>",
     "app_secret" => "<APP_SECRET>",
     "args" => { "access_type" => "offline", "approval_prompt" => "" }
   }
]

решение2

У меня есть вопрос по поводу конфигурации: будет ли проблема с существующим пользователем? Будет ли синхронизация корректной, если адрес электронной почты одинаков и в локальном GitLab, и в Google Workspace?

Нужно ли мне раскомментировать:

gitlab_rails['omniauth_sync_email_from_provider'] = 'google_oauth2'

И у меня нет этой строки, это проблема:

gitlab_rails['omniauth_sync_profile_from_provider'] = ['google_oauth2']

Я спрашиваю, потому что не хочу портить все существующие комментарии, пользователей и т. д.!

С наилучшими пожеланиями

Связанный контент