Registro de gitlab autohospedado con una cuenta de Google

Registro de gitlab autohospedado con una cuenta de Google

Estoy configurando una instancia de GitLab EE y me gustaría habilitar el proceso de registro solo con una cuenta de Google. Seguí la documentación aquí:https://docs.gitlab.com/ce/integration/google.htmly aquí:https://docs.gitlab.com/ce/integration/omniauth.html.

La integración con Google funciona bien cuando intenté vincular una cuenta existente a una de Google y fue perfecta.

El problema es que cuando intento registrarme usando Google sin una cuenta existente, aparece un error:

No se permite iniciar sesión con su cuenta de Google sin una cuenta de GitLab preexistente.

Mi /etc/gitlab/gitlab.rbconfiguración actual es la siguiente:

### 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" => "" }
   }
]

¿Qué estoy haciendo mal? ¿GitLab puede siquiera registrarse usando Google?

Respuesta1

Después de algunos ajustes con las configuraciones, logré encontrar una configuración que funciona:

### 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" => "" }
   }
]

Respuesta2

Tengo una pregunta sobre la configuración: ¿el usuario existente será un problema? ¿Se sincroniza bien si el correo electrónico es el mismo tanto en gitlab local como en Google Workspace?

¿Necesito descomentar el:

gitlab_rails['omniauth_sync_email_from_provider'] = 'google_oauth2'

Y no tengo esta línea, ¿es ese un problema?

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

¡Lo pregunto porque no quiero estropear todos los comentarios, usuarios, etc. existentes!

Atentamente

información relacionada