我在设置 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'
}
}
]