GitLab oauth2.0 第三方登录 单点登录

不废话,直接上代码


## Oauth2.0配置
gitlab_rails['omniauth_enabled'] = true
## 与显示的name保持一致
gitlab_rails['omniauth_allow_single_sign_on'] = ['ssdlc']
## true时,创建的用户会被封锁
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
  {
    'name' => 'ssdlc',
	# 图标base64
    'icon': 'data:image/png;base64,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',
    'app_id' => 'gitlab',
    'app_secret' => 'gitlab',
    'args' => {
      client_options: {
        'site' => 'http://10.0.1.100:84', # including port if necessary
        'user_info_url' => '/user/info',
		 'authorize_url': '/oauth/authorize', # The authorization endpoint for your OAuth server
         'token_url': '/oauth/token' # The token request endpoint for your OAuth server

      },
      user_response_structure: {
        root_path: [], # i.e. if attributes are returned in JsonAPI format (in a 'user' node nested under a 'data' node)
		id_path: 'uuid',
		#/user/info返回对象对应的属性
        attributes: { 
		name: 'fullName',
		username: 'username',
		public_email: 'email',
		email: 'email',
		commit_email: 'email'
		} # if the nickname attribute of a user is called 'username'
      },
      # optionally, you can add the following two lines to "white label" the display name
      # of this strategy (appears in urls and Gitlab login buttons)
      # If you do this, you must also replace oauth2_generic, everywhere it appears above, with the new name. 
      name: 'ssdlc', # display name for this strategy
      strategy_class: "OmniAuth::Strategies::OAuth2Generic", # Devise-specific config option Gitlab uses to find renamed strategy
	  ## */ssdlc/*与显示的name保持一致
      redirect_url: "http://10.0.1.104:9980/users/auth/ssdlc/callback" 
	}
  }
]

#>>>>>>系统邮箱配置.start
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.office365.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xieshaoping@***.cn"
gitlab_rails['smtp_password'] = "******"
gitlab_rails['smtp_domain'] = "smtp.office365.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
## 要设置为false,否则SSL容易报错
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = 'xieshaoping@***.cn' 
##<<<<<<系统邮箱配置.end

## docker端口-p 9980:9980,-p 9980:80会打不开
# 域名配置
external_url 'http://10.0.1.104:9980' 
gitlab_rails['gitlab_ssh_host'] = "10.0.1.104"
gitlab_rails['gitlab_shell_ssh_port'] = 9922

如有其他问题可联系作者:

手机、微信:15385125253

QQ:987319557

公司名称:开源互联网安全技术有限公司

原创作者:谢少评
原创不易,一分也是爱:

微信:

在这里插入图片描述

支付宝:
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐