Yandex OAuth GitLab 用户身份验证

Posted

技术标签:

【中文标题】Yandex OAuth GitLab 用户身份验证【英文标题】:Yandex OAuth GitLab user authentication 【发布时间】:2018-09-25 23:02:06 【问题描述】:

我想通过Yandex.OAuth 对 gitlab 用户进行身份验证。我正在尝试使用oauth2_generic 策略,但我无法获取用户信息。有人知道怎么配置吗?

【问题讨论】:

【参考方案1】:

终于,我得到了解决方案:

gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['Yandex']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
  
    "name" => "oauth2_generic",
    "app_id" => "your-app-id",
    "app_secret" => "your-app-secret",
    "args" => 
      client_options: 
        "site" => "https://oauth.yandex.ru",
        "authorize_url" => "/authorize",
        "token_url" => "/token",
        "user_info_url" => "https://login.yandex.ru/info",
      ,
      user_response_structure: 
        attributes: 
          name: 'login',
          email: 'default_email',
          first_name: 'first_name',
          last_name: 'last_name'
        
      ,
      redirect_url: 'http://your-gitlab-host/users/auth/Yandex/callback',
      name: 'Yandex',
      strategy_class: "OmniAuth::Strategies::OAuth2Generic"
    
  
]

您需要注册一个具有Yandex.Passport API(登录)权限的新客户端,例如:访问用户名、访问电子邮件地址等。

然后将app_idapp_secret填入gitlab配置。就是这样!

【讨论】:

以上是关于Yandex OAuth GitLab 用户身份验证的主要内容,如果未能解决你的问题,请参考以下文章

OAuth2用户详细信息未在春季安全(SpringBoot)中更新

禁用 cookie 时如何验证用户身份?

LDAP 到 gitlab 用户同步 oauth 令牌

无法导入私有 gitlab 存储库 [重复]

通过 gitlab oauth 使用最重要的 api 作为具有用户名和密码的最终用户(无 client_secret)

GitLab 配置 OAuth2 实现第三方登录,简直太方便了!