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.