Passer au contenu principal

GitLab

Casdoor peut utiliser le protocole OIDC pour se lier à un serveur GitLab auto-déployé, et ce document vous montrera comment faire.

prudence

Comme le stipulent les documents GitLab, GitLab ne fonctionne qu'avec les fournisseurs OpenID qui utilisent HTTPS, donc vous devez déployer Casdoor avec HTTPS, comme le mettre derrière un proxy inverse NGINX avec une configuration de certificat 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

Tout d'abord, Casdoor et GitLab doivent être déployés.

Après un déploiement réussi, vous devez vous assurer :

  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.

Paramètre d'application Notamment, vous pouvez obtenir deux valeurs sur la page des paramètres de l'application : Client ID et Client secret (voir l'image ci-dessus), et nous les utiliserons à l'étape suivante.

Ouvrez votre navigateur préféré et visitez : http://CASDOOR_HOSTNAME/.well-known/openid-configuration, où vous verrez la configuration OIDC de Casdoor.

Étape 3 : Configurer GitLab

Vous pouvez suivre les étapes ci-dessous pour configurer cela, ou apporter des modifications personnalisées selon ce document (par exemple, si vous installez GitLab à l'aide du code source plutôt que de l'Omnibus).

  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é. Maintenant, vous pouvez vous connecter à votre propre GitLab en utilisant Casdoor. Login GitLab