Перейти до основного вмісту

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.

Після успішного розгортання вам потрібно забезпечити:

  1. Casdoor можна ввійти та використовувати в звичайному режимі.
  2. Встановіть значення origin для Casdoor (conf/app.conf) на CASDOOR_HOSTNAME. Конфігурація Casdoor

Крок 2: Налаштування додатку Casdoor

  1. Створіть або використовуйте існуючий додаток Casdoor.
  2. Додайте URL перенаправлення: http://GITLAB_HOSTNAME/users/auth/openid_connect/callback.
  3. Додайте провайдера, якого ви хочете, та доповніть інші налаштування.

Налаштування додатку Зокрема, ви можете отримати два значення на сторінці налаштувань додатку: Client ID та Client secret (дивіться зображення вище), і ми використаємо їх на наступному кроці.

Відкрийте ваш улюблений браузер і відвідайте: http://CASDOOR_HOSTNAME/.well-known/openid-configuration, де ви побачите OIDC конфігурацію Casdoor.

Крок 3: Налаштування GitLab

Ви можете слідувати нижченаведеним крокам, щоб налаштувати це, або зробити власні зміни відповідно до цього документа (наприклад, якщо ви встановлюєте GitLab за допомогою вихідного коду, а не Omnibus).

  1. На вашому сервері GitLab відкрийте файл конфігурації.

    sudo editor /etc/gitlab/gitlab.rb
  2. Додайте конфігурацію провайдера. (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"
    }
    }
    }
    ]
  3. Перезавантажте ваш сервер GitLab.

  4. Кожен зареєстрований користувач може відкрити GITLAB_HOSTNAME/-/profile/account та підключити обліковий запис Casdoor. З&#39;єднання GitLab

  5. Завершено. Тепер ви можете увійти до свого власного GitLab, використовуючи Casdoor. Вхід в GitLab