使用 SAML 连接 GitLab 帐户

Posted

技术标签:

【中文标题】使用 SAML 连接 GitLab 帐户【英文标题】:Connect a GitLab account with SAML 【发布时间】:2016-01-06 13:49:45 【问题描述】:

我正在尝试将 SAML 身份验证与 GitLab 一起使用。在我指定的 gitlab.rb 中

gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = false
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
    
      "name" => "saml",
       args: 
assertion_consumer_service_url: 'https://git.mycompany.com/users/auth/saml/callback',
               idp_cert_fingerprint: 'XX:YY:ZZ',
               idp_sso_target_url: 'https://myidentity.com/SAAS/auth/federation/sso',
               issuer: 'https://git.mycompany.com',
               name_identifier_format: 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress'
             
    
  ]

现在当我尝试使用 SAML 登录时出现错误

不允许在没有预先存在的 GitLab 帐户的情况下使用您的 Saml 帐户登录。首先创建一个 GitLab 帐户,然后将其连接到您的 Saml 帐户。

我已经创建了一个名为 user1@mycompany.com 的 Git 用户

我该如何解决这个错误?

【问题讨论】:

【参考方案1】:

只有参数gitlab_rails['omniauth_allow_single_sign_on'] 中的true 有帮助。 指定的提供商列表对我不起作用。 尝试设置true,而不是['saml','google','bitbucket','gitlab','etc']

在 GitLab 12.3 上测试

【讨论】:

【参考方案2】:

更改这些参数可以解决问题。

gitlab_rails['omniauth_allow_single_sign_on'] = true
gitlab_rails['omniauth_block_auto_created_users'] = false

【讨论】:

格式可以具体:gitlab_rails['omniauth_allow_single_sign_on'] = ['saml','google','bitbucket','gitlab','etc']

以上是关于使用 SAML 连接 GitLab 帐户的主要内容,如果未能解决你的问题,请参考以下文章

Spring SAML 凭证和平台帐户

Azure SAML2登录系统问题

如何为同一主机的多个 gitlab 帐户使用多个 ssh 密钥[重复]

尝试在 openSUSE Leap 15 下的 GitAhead 中添加远程 GitLab 帐户时 SSL 握手失败

我正在尝试使用谷歌服务帐户在 GitLab 中自动化邮递员收集。如何验证服务帐户并发送请求?

Gitlab 使用 Docker 测试:'您已成功注册。但是,我们无法让您登录,因为您的帐户正在等待批准……”