Saltar al contenido principal

GitLab

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

precaución

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 por sí mismo solo escucha en el puerto 8000 por defecto a través de HTTP y no tiene funcionalidad relacionada con HTTPS.

Los siguientes son algunos de los nombres mencionados en la configuración:

CASDOOR_HOSTNAME: El nombre de dominio o IP donde se despliega el servidor Casdoor, por ejemplo, https://door.casbin.com.

GITLAB_HOSTNAME: El nombre de dominio o IP donde se despliega GitLab, por ejemplo, https://gitlab.com.

Paso 1: Desplegar Casdoor y GitLab

Deploy Casdoor and GitLab. After deployment, ensure:

  1. Casdoor puede ser iniciado sesión y utilizado normalmente.
  2. Establece el valor de origin de Casdoor (conf/app.conf) en CASDOOR_HOSTNAME. Configuración de Casdoor

Paso 2: Configurar aplicación Casdoor

  1. Crea o utiliza una aplicación Casdoor existente.
  2. Añade una URL de redirección: http://GITLAB_HOSTNAME/users/auth/openid_connect/callback.
  3. Añade el proveedor que desees y complementa otros ajustes.

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.

Paso 3: Configurar GitLab

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

  1. En tu servidor GitLab, abre el archivo de configuración.

    sudo editor /etc/gitlab/gitlab.rb
  2. Añade la configuración del proveedor. (La URL de HOSTNAME debe incluir http o 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. Reinicia tu servidor GitLab.

  4. Cada usuario registrado puede abrir GITLAB_HOSTNAME/-/profile/account y conectar la cuenta Casdoor. Conexión GitLab

  5. Finalizar. You can now log in to your GitLab instance via Casdoor. Inicio de sesión GitLab