GitLab
Casdoor может использовать протокол OIDC для подключения к самостоятельно развернутому серверу GitLab, и этот документ покажет вам, как это сделать.
Как указано в документации GitLab, GitLab работает только с провайдерами OpenID, использующими HTTPS, поэтому вам нужно развернуть Casdoor с HTTPS, например, поместив Casdoor за обратным прокси NGINX с настроенным SSL-сертификатом. Casdoor по умолчанию слушает только порт 8000 через HTTP и не имеет функциональности, связанной с HTTPS.
Ниже приведены некоторые из имен, упомянутых в конфигурации:
CASDOOR_HOSTNAME
: Доменное имя или IP, где развернут сервер Casdoor, например, https://door.casbin.com
.
GITLAB_HOSTNAME
: Доменное имя или IP, где развернут GitLab, например, https://gitlab.com
.
Шаг 1: Развертывание Casdoor и GitLab
Во-первых, Casdoor и GitLab должны быть развернуты.
После успешного развертывания вам необходимо убедиться:
- Casdoor может быть входом и использоваться нормально.
- Установите значение
origin
для Casdoor (conf/app.conf) вCASDOOR_HOSTNAME
.
Шаг 2: Настройка приложения Casdoor
- Создайте или используйте существующее приложение Casdoor.
- Добавьте URL перенаправления:
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback
. - Добавьте провайдера, который вы хотите, и дополните другие настройки.
Важно, что вы можете получить два значения на странице настроек приложения: Client ID
и Client secret
(см. изображение выше), и мы будем использовать их на следующем шаге.
Откройте ваш любимый браузер и посетите: http://CASDOOR_HOSTNAME
/.well-known/openid-configuration, где вы увидите конфигурацию OIDC Casdoor.
Шаг 3: Настройка GitLab
Вы можете следовать приведенным ниже шагам для настройки или внести собственные изменения в соответствии с этим документом (например, если вы устанавливаете GitLab с помощью исходного кода, а не Omnibus).
На вашем сервере GitLab откройте файл конфигурации.
sudo editor /etc/gitlab/gitlab.rb
Добавьте конфигурацию провайдера. (URL HOSTNAME должен включать http или https)
gitlab_rails['omniauth_providers'] = [
{
name: "openid_connect",
label: "Casdoor", # optional label for the login button, defaults to "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"
}
}
}
]Перезагрузите ваш сервер GitLab.
Каждый зарегистрированный пользователь может открыть
GITLAB_HOSTNAME
/-/profile/account и подключить аккаунт Casdoor.Завершение. Теперь вы можете войти в свой собственный GitLab, используя Casdoor.