Gitlab auto-hospedado, inscreva-se com conta do Google

Gitlab auto-hospedado, inscreva-se com conta do Google

Estou configurando uma instância do GitLab EE e gostaria de ativar o processo de inscrição apenas com uma conta do Google. Eu segui a documentação aqui:https://docs.gitlab.com/ce/integration/google.htmle aqui:https://docs.gitlab.com/ce/integration/omniauth.html.

A integração com o Google funciona bem quando tentei vincular uma conta existente a uma do Google, mas não houve falhas.

O problema é quando tento me inscrever usando o Google sem uma conta existente, é quando ocorre um erro:

Não é permitido fazer login usando sua conta do Google sem uma conta GitLab pré-existente.

Minha /etc/gitlab/gitlab.rbconfiguração atual é a seguinte:

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

O que estou fazendo de errado? O GitLab consegue se inscrever usando o Google?

Responder1

Depois de alguns ajustes nas configurações, consegui encontrar uma configuração 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" => "" }
   }
]

Responder2

Tenho uma pergunta sobre a configuração. O usuário existente será um problema. Ele sincronizará bem se os e-mails forem iguais no gitlab local e no Google Workspace?

Preciso descomentar o:

gitlab_rails['omniauth_sync_email_from_provider'] = 'google_oauth2'

E eu não tenho essa linha, isso é um problema:

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

Estou perguntando porque não quero bagunçar todos os comentários, usuários, etc. existentes!

Atenciosamente

informação relacionada