À partir de la version 2.8.92, Semaphore prend en charge l'authentification via OpenID. Dans cet article, nous explorerons comment configurer Ansible Semaphore pour authentifier les utilisateurs via GitLab.

La configuration de l'authentification via OpenID commence par la mise en place du fournisseur lui-même, dans notre cas, GitLab.

1. Créer une application dans GitLab

Pour activer l'authentification via GitLab, vous devez créer une application dans les paramètres de votre compte GitLab.

  1. Allez dans la section Applications des paramètres de votre compte GitLab : https://gitlab.com/-/profile/applications
  2. Remplissez les champs requis :
    • URL de redirection : http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Scopes : openid, profile, email.

    création d'application gitlab

  3. Après avoir cliqué sur Enregistrer l'application, vous verrez l'écran suivant :
  4. configuration de l'application gitlab
  5. Copiez et sauvegardez la clé secrète quelque part (elle sera nécessaire pour configurer Semaphore) et cliquez sur Continuer.
  6. Application prête.
  7. liste d'applications gitlab

2. Ajouter les paramètres OpenID au fichier de configuration de Semaphore

Comme vous le savez, les paramètres de Semaphore sont stockés dans le fichier de configuration (généralement config.json) au format JSON.

Nous devons ajouter les paramètres suivants de sorte que Semaphore sache comment utiliser GitLab comme fournisseur OpenID :

"oidc_providers": {
   "gitlab": {
       "display_name": "GitLab",
       "provider_url": "https://gitlab.com",
       "client_id": "ID de l'application",
       "client_secret": "Secret",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

3. Démarrer Semaphore avec l'authentification OpenID/GitLab

Après avoir enregistré les modifications dans le fichier de configuration, démarrez ou redémarrez Semaphore avec les nouveaux paramètres.

Vous trouverez un nouveau bouton "GitLab" sur la page de connexion de Semaphore.

écran de connexion semaphore