安当ASP针对Gitlab进行SSO单点登录集成
ASP官方支持Gitlab第三方登录
在 应用 中点击创建第三方应用
在列表中选择Gitlab,点击创建应用
在弹窗中输入应用名称,点击确认
新创建的Gitlab应用需要进行配置,在 应用中选择刚才创建的Gitlab应用
在应用配置Gitlab地址,点击保存
对接ASP需要修改Gitlab的配置文件,以下为docker-compose方式部署Gitlab的参考
services:
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'localhost'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://localhost:8001' #Gitlab地址
gitlab_rails['omniauth_block_auto_created_users'] = false #是否创建新用户
gitlab_rails['omniauth_allow_single_sign_on'] = ['openid_connect']
gitlab_rails['omniauth_auto_link_user'] = [ "openid_connect"]
gitlab_rails['omniauth_providers'] = [{
name: 'openid_connect',
label: 'ASP', #Gitlab登录页面显示的登录方式名称
args: {
name: 'openid_connect',
scope: ['openid','profile','email','phone'],
response_type: 'code',
issuer: "https://sso.andang.cn",
discovery: false,
uid_field: 'sub',
client_options: {
'port': 443, #ASP服务端口
'scheme': 'https', #ASP服务协议
'host': 'sso.andang.cn', #ASP服务地址,此处为公有云地址
'authorization_endpoint':'/', #ASP服务登录地址路由
'token_endpoint':'/token', #ASP服务获取token接口地址路由
'identifier' => '451887a8-6ef4-45c6-8467-1974f3ae31ba', #应用ID
'secret' => 'BG6L3jUXh4f2qCPqx5bZWOK+XOqYWJ1vXc2megDD9fb25ZGhP5', #应用密钥
'redirect_uri' => 'http://192.168.0.122:8001/users/auth/openid_connect/callback' #Gitlab回调地址
}
}
}]
ports:
- '8001:8001'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
参考: Gitlab文档
在Gitlab的登录界面中选择ASP用户源进行登录,跳转到ASP
在ASP输入账号登录,跳转回Gitlab
完成登录
请先导入许可证后再创建应用