Passer au contenu principal

GitLab

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

prudence

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:

  1. Casdoor peut être connecté et utilisé normalement.
  2. Définissez la valeur origin de Casdoor (conf/app.conf) sur CASDOOR_HOSTNAME. Configuration de Casdoor

Étape 2 : Configurer l'application Casdoor

  1. Créez ou utilisez une application Casdoor existante.
  2. Ajoutez une URL de redirection : http://GITLAB_HOSTNAME/users/auth/openid_connect/callback.
  3. Ajoutez le fournisseur que vous souhaitez et complétez les autres paramètres.

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.

Étape 3 : Configurer GitLab

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

  1. Sur votre serveur GitLab, ouvrez le fichier de configuration.

    sudo editor /etc/gitlab/gitlab.rb
  2. 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"
    }
    }
    }
    ]
  3. Redémarrez votre serveur GitLab.

  4. Chaque utilisateur enregistré peut ouvrir GITLAB_HOSTNAME/-/profile/account et connecter le compte Casdoor. Connexion GitLab

  5. Terminé. You can now log in to your GitLab instance via Casdoor. Login GitLab