GitLab
Casdoor peut utiliser le protocole OIDC pour se lier à un serveur GitLab auto-déployé, et ce document vous montrera comment faire.
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 :
- Casdoor peut être connecté et utilisé normalement.
- Définissez la valeur
origin
de 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.
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).
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é. Maintenant, vous pouvez vous connecter à votre propre GitLab en utilisant Casdoor.