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

GitLab

This guide configures a self-hosted GitLab instance to use Casdoor as the OIDC provider.

обережно

As the GitLab docs state, GitLab only works with OpenID providers that use HTTPS, deploy Casdoor over HTTPS (e.g. behind an NGINX reverse proxy with SSL). Casdoor за замовчуванням слухає лише порт 8000 через HTTP і не має функціональності, пов'язаної з HTTPS.

Нижче наведено деякі з імен, згаданих у конфігурації:

CASDOOR_HOSTNAME: Доменне ім'я або IP, де розгорнуто сервер Casdoor, наприклад, https://door.casbin.com.

GITLAB_HOSTNAME: Доменне ім'я або IP, де розгорнуто GitLab, наприклад, https://gitlab.com.

Крок 1: Розгортання Casdoor та GitLab

Deploy Casdoor and GitLab. After deployment, ensure:

  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. Додайте провайдера, якого ви хочете, та доповніть інші налаштування.

Application Setting On the application settings page, note Client ID and Client secret (see the picture above); use them in the next step.

OIDC discovery: http://<CASDOOR_HOSTNAME>/.well-known/openid-configuration.

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

Follow the steps below, or adapt from GitLab OIDC docs (e.g. for source installs).

  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. Завершено. You can now log in to your GitLab instance via Casdoor. Вхід в GitLab