企业微信客服
“一对一”解答

安当ASP针对Gitlab进行SSO单点登录集成

安当ASP针对Gitlab进行SSO单点登录集成

创建人:五台 最近更改时间:2023-08-11 11:05:58
126

概述

ASP官方支持Gitlab第三方登录

创建应用

  1. 应用 中点击创建第三方应用

  2. 在列表中选择Gitlab,点击创建应用

  3. 在弹窗中输入应用名称,点击确认

  4. 新创建的Gitlab应用需要进行配置,在 应用中选择刚才创建的Gitlab应用

  5. 在应用配置Gitlab地址,点击保存

Gitlab对接ASP

对接ASP需要修改Gitlab的配置文件,以下为docker-compose方式部署Gitlab的参考

  1. 修改docker-compose.yml配置文件
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文档

  1. 在Gitlab的登录界面中选择ASP用户源进行登录,跳转到ASP

  2. 在ASP输入账号登录,跳转回Gitlab

  3. 完成登录

问题

  1. 创建应用时提示“系统未激活”
请先导入许可证后再创建应用