GitLab
Casdoor 可以使用 OIDC 协议链接到私有部署的 GitLab,该文档将向您展示如何处理相关问题。
以下是配置中的一些专有名词:
CASDOOR_HOSTNAME
:私有部署的Casdoor域名或IP。 例如:https://door.casbin.com
.
GITLAB_HOSTNAME
: 部署 GitLab 的域名或 IP。 例如:https://gitlab.com
.
第 1 步: 部署 Casdoor 和 GitLab
成功部署后,您需要确保:
- Casdoor 可以正常登录使用。
- 将 Casdoor 的
origin
值 (conf/app.conf) 设置为CASDOOR_HOSTNAME
。
第 2 步: 配置 Casdoor 应用程序
- 创建或使用现有的 Casdoor 应用程序。
- 添加重定向网址:
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback
。 - 添加您想要的提供商并补充其他设置。
不出意外的话,您会在应用程序设置页面看到:
Client ID
和 Client secret
就像上面的图片一样。 我们将在下一步中使用它们。
打开你喜欢的浏览器,访问:http://CASDOOR_HOSTNAME
/.well-known/openid-configuration,你会看到 Casdoor 的 OIDC 配置。
第 3 步: 配置 GitLab
Y您可以按照以下步骤进行设置,或根据 这个文档 进行自定义设置(例如,您正在使用源代码而不是 Omnibus 安装 GitLab)。
在 GitLab 服务器上,打开配置文件。
sudo editor /etc/gitlab/gitlab.rb
添加提供商配置。 (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"
}
}
}
]重新启动 GitLab 服务器。
每个注册用户都可以打开
GITLAB_HOSTNAME
/-/profile/account,连接 Casdoor 账号。完成! 现在,您可以通过 casdoor 登录您自己的 GitLab。