跳到主内容

GitLab

Casdoor可以使用OIDC协议链接到自部署的GitLab服务器,本文档将向您展示如何操作。

注意事项

正如GitLab文档所述,GitLab只能与使用HTTPS的OpenID提供商一起工作,因此你需要使用HTTPS部署Casdoor,例如将Casdoor放在配置了SSL证书的NGINX反向代理后面。 Casdoor本身默认只通过HTTP在8000端口监听,没有HTTPS相关功能。

以下是在配置中提到的一些名称:

CASDOOR_HOSTNAME:部署Casdoor服务器的域名或IP,例如,https://door.casbin.com

GITLAB_HOSTNAME:部署GitLab的域名或IP,例如,https://gitlab.com

步骤1:部署Casdoor和GitLab

首先,应部署Casdoor和GitLab。

成功部署后,您需要确保:

  1. Casdoor可以正常登录和使用。
  2. 将 Casdoor 的 origin 值 (conf/app.conf) 设置为 CASDOOR_HOSTNAMECasdoor 配置

步骤2:配置Casdoor应用程序

  1. 创建或使用现有的 Casdoor 应用程序。
  2. 添加一个重定向URL:http://GITLAB_HOSTNAME/users/auth/openid_connect/callback
  3. 添加您想要的提供者并补充其他设置。

应用程序设置 值得注意的是,您可以在应用设置页面上获取两个值:Client IDClient secret(参见上图),我们将在下一步中使用它们。

打开你最喜欢的浏览器并访问:http://CASDOOR_HOSTNAME/.well-known/openid-configuration,在那里你将看到Casdoor的OIDC配置。

步骤3:配置GitLab

You can follow the steps below to set this up, or make custom changes according to this document (e.g., if you are installing GitLab using source code rather than the Omnibus).

  1. 在 GitLab 服务器上,打开配置文件。

    sudo editor /etc/gitlab/gitlab.rb
  2. 添加提供商配置。 (HOSTNAME URL应包含http或https)

    gitlab_rails['omniauth_providers'] = [
    {
    name: "openid_connect",
    label: "Casdoor", # 可选的登录按钮标签,默认为 "Openid Connect"
    args: {
    name: "openid_connect",
    scope: ["openid", "profile", "email"],
    response_type: "code",
    issuer: "<CASDOOR_HOSTNAME>",
    client_auth_method: "query",
    discovery: true,
    uid_field: "preferred_username",
    client_options: {
    identifier: "<YOUR CLIENT ID>",
    secret: "<YOUR CLIENT SECRET>",
    redirect_uri: "<GITLAB_HOSTNAME>/users/auth/openid_connect/callback"
    }
    }
    }
    ]
  3. 重新启动 GitLab 服务器。

  4. 每个已注册用户都可以打开GITLAB_HOSTNAME/-/profile/account并连接Casdoor账户。 GitLab 连接

  5. 完成! 现在,您可以使用Casdoor登录到您自己的GitLab。 GitLab 登录