Saltar al contenido principal

GitLab

Casdoor puede utilizar el protocolo OIDC para enlazar a un servidor GitLab auto-desplegado, y este documento te mostrará cómo hacerlo.

precaución

Como indican los documentos de GitLab, GitLab solo funciona con proveedores de OpenID que usen HTTPS, por lo que necesitas desplegar Casdoor con HTTPS, como poner Casdoor detrás de un proxy inverso NGINX con una configuración de certificado 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

Primero, se deben desplegar Casdoor y GitLab.

Después de un despliegue exitoso, necesitas asegurarte:

  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.

Configuración de la Aplicación Notablemente, puedes obtener dos valores en la página de configuración de la aplicación: Client ID y Client secret (ver la imagen arriba), y los usaremos en el siguiente paso.

Abre tu navegador favorito y visita: http://CASDOOR_HOSTNAME/.well-known/openid-configuration, donde verás la configuración OIDC de Casdoor.

Paso 3: Configurar GitLab

Puedes seguir los pasos a continuación para configurarlo, o hacer cambios personalizados de acuerdo a este documento (por ejemplo, si estás instalando GitLab usando código fuente en lugar del Omnibus).

  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. Ahora, puedes iniciar sesión en tu propio GitLab usando Casdoor. Inicio de sesión GitLab