GitLab
Casdoor puede utilizar el protocolo OIDC para enlazar a un servidor GitLab auto-desplegado, y este documento te mostrará cómo hacerlo.
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:
- Casdoor puede ser iniciado sesión y utilizado normalmente.
- Establece el valor de
origin
de Casdoor (conf/app.conf) enCASDOOR_HOSTNAME
.
Paso 2: Configurar aplicación Casdoor
- Crea o utiliza una aplicación Casdoor existente.
- Añade una URL de redirección:
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback
. - Añade el proveedor que desees y complementa otros ajustes.
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).
En tu servidor GitLab, abre el archivo de configuración.
sudo editor /etc/gitlab/gitlab.rb
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"
}
}
}
]Reinicia tu servidor GitLab.
Cada usuario registrado puede abrir
GITLAB_HOSTNAME
/-/profile/account y conectar la cuenta Casdoor.Finalizar. Ahora, puedes iniciar sesión en tu propio GitLab usando Casdoor.