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

返回列表 发布新帖

GitLab集成Okta-02

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

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

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

×

2.4 功能验证

<!-- 如何验证成功集成、步骤描述+截图。如果涉及的 CI/CD,最好可以提供简单的运行示例 -->

  1. 登录极狐GitLab

    image-20230713105811551

  2. 选择 Okta 登录

    image-20230713105832845

  3. 账户验证成功后会自动跳转回 GitLab Your work 页面,否则需要验证 Okta 用户后跳转。

  4. 查看账户设置

    • Okta Active已集成

    image-20230713110002180

3. 常见问题

3.1 Troubleshooting SAML

3.2 Geo Secondary login by SAML redirect to Primary Site

注意:Geo 环境中 SSO 配置仅配置在主站点,从站点配置无效。

  • 现象/日志:

    <!-- 请文字描述 or 截图 -->

    Geo 从站点通过 SAML 登录后自动跳转到主站点。默认 SAML 配置的 callback url都是跳转到主站点,所以从站点登录后也会跳转到主站点。

  • 解决方案:

    <!-- 请阐述发生此问题的原因,然后追加解决方案 -->

    操作步骤如下:

    1. 调整主站点配置如下

      gitlab_rails['omniauth_providers'] = [
       {
         name: "saml",
         label: "Okta",
         args: {
           # assertion_consumer_service_url - 删除此参数
           idp_cert_fingerprint: "<SHA1 (formatted) fingerprint>",
           idp_sso_target_url: "https://xxx/sso/saml",
           issuer: "https://<gitlab external url>",
           name_identifier_format: "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
         }
       }
      ]
    2. 刷新配置

      sudo gitlab-ctl reconfigure
    3. 调整 Okta 配置

      1. 转到 Okta 管理员页面
      2. 侧边栏选择 Applications > Applications
      3. 选择新创建的Application(点击程序名)
      4. 跳转到 Application 页面后,点击 General
      5. 转到 SAML Settings,点击 Edit
      6. 点击 Next,展开 Show Advanced Settings
      7. 转到 Other Requestable SSO URLs,点击 Add Another
        • URL: https://\<geo secondary external url>/users/auth/saml/callback
        • Index: 2
      8. 点击 Next
      9. 点击 Finish
    4. 验证从站点登录

3.3 Configure GitLab to use multiple SAML IdPs

参考配置如下:

gitlab_rails['omniauth_allow_single_sign_on'] = ['saml', 'saml_2'] # 需要配置的 SSO idPs 的合集
gitlab_rails['omniauth_providers'] = [
 {
   name: "saml", # omniauth_allow_single_sign_on 参数列表中需要指定此名称
   label: "Okta_Main",
   args: {
     name: 'saml' # 此名称需要和上一级的 name 相同
     strategy_class: 'OmniAuth::Strategies::SAML', # 必须要指定这个参数,否则无法识别SAML登录
     assertion_consumer_service_url: "https://<gitlab external url>/users/auth/saml/callback", 
     idp_cert_fingerprint: "<SHA1 (formatted) fingerprint>",
     idp_sso_target_url: "https://xxx/sso/saml",
     issuer: "https://<gitlab external url>",
     name_identifier_format: "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
   }
 },
  {
   name: "saml_2", # omniauth_allow_single_sign_on 参数列表中需要指定此名称
   label: "Okta_Slave",
   args: {
     name: 'saml_2'  # 此名称需要和上一级的 name 相同
     strategy_class: 'OmniAuth::Strategies::SAML', # 必须要指定这个参数,否则无法识别SAML登录
     assertion_consumer_service_url: "https://<gitlab external url>/users/auth/saml_2/callback",  # saml_2 需要和 name 保持一致
     idp_cert_fingerprint: "<SHA1 (formatted) fingerprint>",
     idp_sso_target_url: "https://xxx/sso/saml",
     issuer: "https://<gitlab external url>",
     name_identifier_format: "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
   }
 }
]

# 所有 idPs 的 issuer 必须保持一致,assertion_consumer_service_url 的域名保持一致

4. 推荐阅读

回复

使用道具 举报

意见建议

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