跳到主内容

GitLab

Casdoor 可以使用 OIDC 协议链接到私有部署的 GitLab,该文档将向您展示如何处理相关问题。

以下是配置中的一些专有名词:

CASDOOR_HOSTNAME:私有部署的Casdoor域名或IP。 例如:https://door.casbin.com.

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

第 1 步: 部署 Casdoor 和 GitLab

首先,CasdoorGitLab 应该部署完毕。

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

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

第 2 步: 配置 Casdoor 应用程序

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

应用设置 不出所料,您可以在应用程序设置页面上获得两个值:Client IDClient secret 如上图,我们将在下一步使用它们。

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

第 3 步: 配置 GitLab

Y您可以按照以下步骤进行设置,或根据 这个文档 进行自定义设置(例如,您正在使用源代码而不是 Omnibus 安装 GitLab)。

  1. 在 GitLab 服务器上,打开配置文件。
    sudo editor /etc/gitlab/gitlab.rb
  2. 添加提供商配置。 (HOSTNAME 链接应包括 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: "<你的 CLIENT ID>",
    secret: "<你的 CLIENT SECRET>",
    redirect_uri: "<GITLAB_HOSTNAME>/users/auth/openid_connect/callback"
    }
    }
    }
    ]
  3. 重新启动 GitLab 服务器。
  4. 每个注册用户都可以打开GITLAB_HOSTNAME/-/profile/account,连接 Casdoor 账号。 GitLab 连接
  5. 完成! 现在,您可以通过 casdoor 登录您自己的 GitLab。 GitLab 登录