
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.rb
configuració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