使用 Auth0 身份验证的 Gitlab

使用 Auth0 身份验证的 Gitlab

我在设置 Gitlab 的 Auth0 身份验证时遇到了问题。我按照此教程操作https://gitlab.com/help/integration/auth0.md。当我尝试使用 Auth0 登录时,我被重定向回 Gitlab,但出现一条错误消息“不允许在没有预先存在的 GitLab 帐户的情况下使用您的 Auth0 帐户登录。”我关注了这篇文章https://stackoverflow.com/questions/33024270/connect-a-gitlab-account-with-saml但这并没有帮助。

当我尝试使用 Auth0 连接现有用户时,连接被存储,但由于某种原因,帐户中的“标识符”为空。我没有找到任何如何配置标识符密钥或类似内容的选项。

我的配置如下:

gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['oauth2_generic']
gitlab_rails['omniauth_auto_link_ldap_user'] = true
gitlab_rails['auto_link_saml_user'] = true
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['sync_profile_attributes'] = ['name', 'email', 'location']
gitlab_rails['omniauth_providers'] = [
  {
    'name' => 'auth0',
    'args' => {
      client_id: 'xxxxx',
      client_secret: 'xxxxx',
      namespace: 'xxx.eu.auth0.com'
    }
  }
]

知道问题可能出在哪里吗?GitLab 有标准登录、LDAP,现在已启用 Auth0。

日志文件中没有什么有趣的内容。

答案1

您尚未设置要使用的 Auth0 提供程序。

设置好gitlab_rails['omniauth_allow_single_sign_on'] = ['auth0']之后它就可以工作了。

此外,注意帖子的最近程度,您还需要将其添加scope到您的配置中。

例子:

gitlab_rails['omniauth_providers'] = [
        { "name" => "auth0",
          "args" => { client_id: '...',
                      client_secret: '...',
                      namespace: '....auth0.com',
                      scope: 'openid profile email'
                    }
        }
] 

参考:https://gitlab.com/gitlab-org/gitlab-ce/issues/38945

相关内容