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 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:
- Casdoor puede ser iniciado sesión y utilizado normalmente.
- Establece el valor de
originde 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.
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).
-
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. You can now log in to your GitLab instance via Casdoor.
