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 lui-même n'écoute que sur le port 8000 par défaut via HTTP et n'a aucune fonctionnalité liée à HTTPS.
Voici quelques-uns des noms mentionnés dans la configuration :
CASDOOR_HOSTNAME : Le nom de domaine ou l'IP où le serveur Casdoor est déployé, par exemple, https://door.casbin.com.
GITLAB_HOSTNAME : Le nom de domaine ou l'IP où GitLab est déployé, par exemple, https://gitlab.com.
Étape 1 : Déployer Casdoor et GitLab
Deploy Casdoor and GitLab. After deployment, ensure:
- Casdoor peut être connecté et utilisé normalement.
- Définissez la valeur
originde Casdoor (conf/app.conf) surCASDOOR_HOSTNAME.
Étape 2 : Configurer l'application Casdoor
- Créez ou utilisez une application Casdoor existante.
- Ajoutez une URL de redirection :
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback. - Ajoutez le fournisseur que vous souhaitez et complétez les autres paramètres.
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.
Étape 3 : Configurer GitLab
Follow the steps below, or adapt from GitLab OIDC docs (e.g. for source installs).
-
Sur votre serveur GitLab, ouvrez le fichier de configuration.
sudo editor /etc/gitlab/gitlab.rb -
Ajoutez la configuration du fournisseur. (L'URL HOSTNAME doit inclure http ou 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"
}
}
}
] -
Redémarrez votre serveur GitLab.
-
Chaque utilisateur enregistré peut ouvrir
GITLAB_HOSTNAME/-/profile/account et connecter le compte Casdoor.
-
Terminé. You can now log in to your GitLab instance via Casdoor.
