🧑‍🏫
liualexiang
  • Introduction
  • Azure
    • AKS Basic
    • AKS Spark
    • AZ ACR SYNC
    • Azure CMI SDWAN
    • Azure LB DeepDive
      • Azure LB DeepDive
    • Azure Service Principal Basic
    • Azure Internal VM Network Connectivity
      • Azure Internal VM Network Connectivity
    • Azure Cli Build
    • Azure Vm Memory Monitor
  • Blockchain
    • BTC
  • CRISPR
    • 使用Parallel_Cluster提升CRISPA效率
  • OpenSource
    • ElasticSearch
      • ES Get Started
      • ES Search Query
      • Kibana 可视化
      • Logstash配置
    • Ansible 基础
    • Infra As Code
      • Pulumi Get Started
      • Terraform Basic
    • ZooKeeper 基础
    • RPC与REST
    • 使用Python申请大量内存测试
    • 使用TPC_DS产生压测数据
    • Superset
      • Superset部署手册
    • 代码扫描
    • Git
      • Git Basic
      • Github Action Basic
      • Gitlab与AzureAD集成
      • Gitbook 基础教程
    • K8S
      • enter_node
      • K8s X509 Client Cert
      • K8s Basic
      • K8s Oidc
      • Docker 基础
      • helm基础
      • K8S_Secrets管理
      • 深入了解K8S
      • 混沌工程
      • Istio
      • 生态
      • CRD开发
      • k8s网络
    • Cloud_Custodian
    • Jenkins Basic
    • Nginx
    • ETCD
    • 正则
    • VictoriaMetrics
    • Kafka
  • MySQL
    • MySQL 调优
  • Linux
    • SSH Tunnel 上网
    • 内存管理
    • 在Linux系统中通过LUKS加密磁盘
    • 量子计算 Basic
    • IO多路复用
    • Iptables
    • tmux和screen
    • Systemd
    • OS 基础
    • jq基础
    • yum
    • neovim
  • Web
    • Html Css
    • Web部署
    • 缓存
  • Programming
    • 算法
      • 返回list中最大生序子序列长度
    • Python技巧
      • Python的语法糖
      • Python常用装饰器
      • AsyncIO基础
      • 自动化测试pytest
      • python中的下划线
      • 面向对象
      • Python的坑
      • Python配置文件管理
      • HTTP Stream Response
      • Python项目管理
    • 设计模式
      • 设计模式
      • 面向对象的思想
      • 编程概念
    • Go
      • Go 基础
      • Go常用功能
      • 结构体入门
    • 前端
    • Vue
    • NodeJS
  • Math
    • 多项式插值法
  • Security
    • HTTP常见攻击
    • 加密与签名
    • RSA
    • ECDSA
  • Solidity
    • Solidity基础
    • Blockchain Testnet Faucet
  • Tools
    • 视频处理ffmpeg
    • IDE配置
    • iTerm2美化
    • 密码管理
    • FRP配置
    • 工具集
由 GitBook 提供支持
在本页
  • 在Ubuntu 18.04系统下安装Gitlab
  • 设置与Azure集成
  1. OpenSource
  2. Git

Gitlab与AzureAD集成

在Ubuntu 18.04系统下安装Gitlab

  • 先更新一下系统和相关软件,使用curl一键更新gitlab-ce的repo,然后使用apt安装

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

参考文档:https://packages.gitlab.com/gitlab/gitlab-ce/install

安装完成之后,需要修改一下配置,在gitlab.rb中修改 external_url 为IP地址,如 'http://ip' 需要注意的是:如果要和Azure AD集成,必须在 external_url中输入域名,IP是无法通过的.

sudo vim /etc/gitlab/gitlab.rb
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

配置完成之后,在浏览器使用http://ip 就可以打开gitlab页面了,需要设置初始化密码,之后登录的用户名为root,密码即为刚才设置的。

设置与Azure集成

在Azure AD中,创建一个App registrations,注意不是Enterprise applications,Supported account types选择" Accounts in this organizational directory only (liuxianms only - Single tenant)"即可。Redirect URI要设置为gitlab的地址,注意一定要用https,无法使用http,不过证书可以是自己颁发的,可以不用受信任的第三方证书(使用上述方法创建出来的gitlab默认就是自己颁发的证书)。 创建好之后,在这个app的左侧Certificates & secretsz中,创建一个client secret,并将其记录下来,同时在Overview中记录下Client ID和tenantID.

之后需要编辑一下/etc/gitlab/gitlab.rb

gitlab_rails['omniauth_allow_single_sign_on'] = ['azure_oauth2']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'azure_oauth2'
gitlab_rails['omniauth_providers'] = [
          {
            "name" => "azure_oauth2",
            "args" => {
                "client_id" => CLIENTID,
                "client_secret" => CLIENTSECRET,
                "tenant_id" => TENANTID
                }
            }
]

创建好之后重启一下服务:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

之后打开Gitlab的登录界面,然后会发现自动跳转到了Global Azure上,输入Azure AD中的任意一个用户,即可实现登录。

上一页Github Action Basic下一页Gitbook 基础教程

最后更新于3年前