Перейти к основному содержанию

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. Подключение GitLab

  5. Завершение. Теперь вы можете войти в свой собственный GitLab, используя Casdoor. Вход в GitLab