MeterSphere MeterSphere 和 GitLab 单点登录认证集成

MeterSphere · October 27, 2022 · 3489 hits

在上一篇和 GitLab 集成的教程《GitLab CI/CD 集成 MeterSphere 自动化测试》中,我们详细分享了 GitLab CI/CD 集成 MeterSphere 一站式开源持续测试平台的具体操作。通过该教程,用户可以通过 GitLab 触发 MeterSphere 中的自动化测试用例,从而更好地推动测试左移等效果落地。

但上述文章只分享了如何在流水线上进行集成,而在实际的使用过程中,很多用户不仅仅需要考虑 DevOps 方面的集成,还要考虑如何仅用一套账号登录所有的 DevOps 体系中的系统(SSO),从而保证登录的安全性与便捷性。本文将分享 MeterSphere 一站式开源持续测试平台和 GitLab 单点登录认证集成的具体操作。

一、何为单点登录?

单点登录 SSO(Single Sign On)简单来说是指在同一账号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的系统。常见的单点登录协议有: OIDC、OAuth2.0、SAML2.0、CAS 等。关于单点登录原理和协议有兴趣的小伙伴可以自行了解,这边就不再赘述了。

二、具体操作与配置

  1. 资料查询

通过 GitLab 官网查询(https://docs.gitlab.comGitLab 支持多种登录方式,例如 LDAP、SAML、OIDC、OAuth 等。),

本文主要以 OpenID Connect Identity 进行单点登录认证。基于文档描述,我们可以发现,Gitlab 内置了 OpenID Connect Identity Provider。并且从下文得知,可以在已经部署的 GitLab 上通过 URL 直接查询相应的信息。
If your client allows importing OIDC settings from a discovery URL, you can use the following URL to automatically find the correct settings for GitLab.com:
https://gitlab.com/.well-known/openid-configuration
Similar URLs can be used for other GitLab instances.

  1. 具体的对接配置

① 按照 GitLab 官方文档说明,打开本地已经部署的 GitLab 平台,上述的地址如下图:

② 基于第一步信息,使用 Admin 权限账号登录部署的 MeterSphere 平台,选择 “系统参数设置”→“认证设置”,进行 OIDC 配置的创建。我们发现除了上述信息之外,还需要 Client ID 和 Secret 信息;

而这些信息在 GitLab 官网文档也给出了提示:

“Refer to the OAuth guide(https://docs.gitlab.com/ee/integration/oauth_provider.html)for basic information on how to set up OAuth applications in GitLab. To enable OIDC for an application, all you have to do is select the openid scope in the application settings.”

③ 因此,我们还需要使用 Admin 账号登录 GitLab。在 “应用设置” 中创建一个 MeterSphere 应用,填写回调地址,选择 “openid”、“profile”、“email” 等信息授权,如下图所示:

创建完成后,可以在详细页面查询应用的 Client ID 和 Secret 信息;

④ 基于第一步和第三步我们所获取的信息,在 MeterSphere 的 “认证设置” 页面中配置如下:

  1. 效果验证

① 在 GitLab 上创建一个普通人员账号,具体如下:

② 打开 MeterSphere 登录界面,选择 OIDC 登录,可自动跳转至 GitLab 登录界面;

③ 在 GitLab 登录页面输入第一步的用户名和密码,登录成功后,自动回调登录到 MeterSphere 平台中(初次登录需要 MeterSphere 管理员划分项目与权限);

④ 同理,如果普通用户已经登录了 GitLab 平台,在同一个浏览器中打开 MeterSphere 登录页面并选择 OIDC 登录,可以直接进入 MeterSphere 平台,无需再次输入账号和密码。

No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up