极狐GitLab 正式推出面向 GitLab 老旧版本(12.x、13.x、14.x、15.x 等)免费用户的专业升级服务,点击查看详情

返回列表 发布新帖

GitLab集成Okta-01

835 0
发表于 2024-4-11 15:54:16 | 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

1. 环境说明

1.1 背景

<!-- 说明集成的目的,所集成软件的优势,用于取代 GitLab 的哪部分功能 -->

Okta 是一家提供身份验证和访问管理解决方案的公司。它为企业提供了一个统一的身份验证平台,用于管理用户身份、访问权限和多个应用程序的单一登录。

1.2 资源清单

类型 版本 运行方式 备注
操作系统 Ubuntu 20.04 LTS 云服务器
GitLab 16.1.0-jh Omnibus <!-- <version-release> -->
Okta Uknonw SaaS https://www.okta.com/

1.3 前置条件

  • GitLab 实例正常运行并可以通过 HTTPS 访问
  • 已注册 Okta 管理员账户并可正常登录

1.4 风险提示

  • 软件集成过程会修改 GitLab 服务端配置文件,请提前做好配置备份。
  • 集成过程中会执行重新配置等导致服务中断的风险性操作。
  • 软件集成后可能会影响原有功能的使用方式。
  • 正式应用于生产环境前,请在测试环境中做好充分测试。

1.5 免责声明

2. 配置集成

  • 提示:以下操作会引起系统服务终端 1~2 分钟,请谨慎操作!<!-- 在任何有风险性的章节前需要添加提示 -->

<!-- 配置顺序根据实际进行调整 -->

2.1 集成功能说明

<!-- 描述集成后的功能优势、劣势以及使用场景等 -->

Okta 配置集成后即可通过 SSO 的方式更快捷的登录极狐GitLab.

2.2 Okta配置

<!-- 可以添加仅试用于本章节的参考 或者 提示 -->

2.2.1 Applications配置

  1. 登录 Okta,转到 管理员 页面操作

  2. 侧边栏点击 Applications > Applications

  3. 选择 Create App Integration, 选择 SAML 2.0

  4. 输入App name,使用\<Domain>即可(也可自定义)

  5. 点击 Next

  6. 设置 SAML Settings

    General

    • Single sign-on URL: https://\<domain>/users/auth/saml/callback
    • Audience URI (SP Entity ID): https://\<domain>
    • Default RelayState: \<NO VALUE>
    • Name ID format: Transient
    • Application username: Okta username
    • Update application username on: Create and update

    Attribute Statements (optional)

    Name Name Format Value (通过下拉列表选择)
    first_name Basic user.firstName
    last_name Basic user.lastName
    email Basic user.email

    Group Attribute Statements (optional)

    Name Name Format Filter
    Groups Unspecified Starts with: Regexp:.*
  7. 点击 Next

  8. Are you a customer or partner?,选择I'm an Okta customer adding an internal app

  9. App type,选择 This is an internal app that we have created

  10. 点击 Finish

2.2.2 Assignments配置

  1. 基于以上页面,选择 Assignments
  2. 选择 Assign,选择 Assign to People
  3. 选择列表中的用户,点击 Assign > Save and Go Back > Done
  4. 再次选择 Assign,选择 Assign to Groups
  5. 选择列表中的群组,点击 Assign > Save and Go Back > Done

2.3 GitLab配置

<!-- 可以添加仅试用于本章节的参考 或者 提示 -->

  1. 确认实例已经配置 HTTPS 访问

  2. 配置文件 /etc/gitlab/gitlab.rb中添加如下配置:

    # 如果参数值包含其他,直接追加 'saml' 即可
    gitlab_rails['omniauth_enabled'] = true  # 开启 SSO 集成
    gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']  # 添加 SAML LDP
    gitlab_rails['omniauth_block_auto_created_users'] = true  # 开启用户自动创建审核
    gitlab_rails['omniauth_auto_link_saml_user'] = true  # 开启用户关联(通过 email 关联)
  3. 获取 Omniauth_providers相关参数值

    1. 转到 Okta 管理员页面
    2. 侧边栏选择 Applications > Applications
    3. 选择新创建的Application(点击程序名)
    4. 跳转到 Application 页面后,点击 General
    5. 查看 SAML Settings
      • Single Sign On URL as assertion_consumer_service_url
    6. 在 Application 页面,点击 Sign On
    7. 展开 Settings > Sign on methods > SAML 2.0
    8. 展开 More details
      • Sign on URL as idp_sso_target_url
    9. 展开 Certificate finterprint
      • SHA1(formatted) as idp_cert_fingerprint
  4. 配置文件 /etc/gitlab/gitlab.rb中添加提供商

    gitlab_rails['omniauth_providers'] = [
     {
       name: "saml",  # 这里值需要在参数 omniauth_allow_single_sign_on 列表中
       label: "Okta", # 名字任意
       args: {
         # 回调 url, eg: https://<gitlab domain>/users/auth/saml/callback
         assertion_consumer_service_url: "General - <Single Sign On URL>", 
         # 格式化的(冒号分隔) SHA1 指纹,不区分大小写, eg: 1a:3c:4d:....
         idp_cert_fingerprint: "Sign On - <SHA1(formatted)>", 
         # 通常以 sso/saml 结尾, eg: https://xxx.okta.com/app/xxx/sso/saml
         idp_sso_target_url: "Sign On - <Sign on URL>", 
         # gitlab external_url using https
         issuer: "https://<gitlab external url>", 
         # 此参数保持默认
         name_identifier_format: "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
       }
     }
    ]
  5. 刷新配置

    sudo gitlab-ctl reconfigure
回复

使用道具 举报

意见建议

Email:forum@gitlab.cn
  • 关注公众号
  • 添加专业顾问
Copyright © 2001-2024 极狐GitLab论坛 版权所有 All Rights Reserved. 鄂ICP备2021008419号-1|鄂公网安备42018502006137号
关灯 快速发帖
扫一扫添加专业顾问
返回顶部
快速回复 返回顶部 返回列表