# Portainer - Configuration SSO Oauth avec keycloak

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/M0iconfirme-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/M0iconfirme-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Confirmé

Notions : Authentification, SSO

</td></tr></tbody></table>

---

### <span style="color: rgb(52, 73, 94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Cette procédure à pour but d'expliquer le paramétrage de l'authentification SSO de portainer avec Keycloak.

---

### <span style="color: rgb(52, 73, 94);">**<span style="text-decoration: underline;">II. Côté Keycloak</span>**</span>

#### **<span style="color: rgb(35, 111, 161);">2.1 Créer le client</span>** 

Se connecter au keycloak et choisir le realm sur lequel ajouter le client portainer.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/tk7image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/tk7image-png.png)

Cliquer sur '<span style="color: rgb(132,63,161);">***Create client***</span>'

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4Vtimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4Vtimage-png.png)

Sélectionner le type '<span style="color: rgb(132,63,161);">***OpenID Connect***</span>'

Générer ou définir un '<span style="color: rgb(132,63,161);">***clientID***</span>'.

<p class="callout info">*Il est possible d'utiliser un générateur afin de générer un e chaîne de 32 caractères. Par exemple : [ici](https://wtools.io/generate-random-password-online).*</p>

<p class="callout success">**Best Practice** *: 32 caractères avec minuscules, majuscules et chiffres.*</p>

Choisir un nom parlant.

Puis faire '<span style="color: rgb(132,63,161);">***Next***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/vkhimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/vkhimage-png.png)

Sur la page suivante, activer '<span style="color: rgb(132,63,161);">***Client authentication***</span>' et '<span style="color: rgb(132,63,161);">***Authorization***</span>'.

Vérifier que les cases suivantes sont cochées.

Puis faire '<span style="color: rgb(132,63,161);">***Next***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/8Primage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/8Primage-png.png)

Entrer les URL au format suivant (en modifiant les FQND).

Puis faire '<span style="color: rgb(132,63,161);">***Save***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Inlimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Inlimage-png.png)

#### **<span style="color: rgb(35, 111, 161);">2.2 Préparer la synchro des groupes</span>** 

Afin de pouvoir gérer les droits depuis le keycloak et synchroniser les groupes, aller dans l'onglet '<span style="color: rgb(132,63,161);">***Client scope***</span>'.

Choisir le client scope au nom du client suivi de '<span style="color: rgb(132,63,161);">***-dedicated***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/0fCimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/0fCimage-png.png)

Faire '<span style="color: rgb(132,63,161);">***Add Mapper***</span>' puis '<span style="color: rgb(132,63,161);">***By Configuration***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/CJ4image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/CJ4image-png.png)

Choisir '<span style="color: rgb(132,63,161);">***Group Membership***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/lUYimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/lUYimage-png.png)

Définir le nom du <span style="color: rgb(132,63,161);">***mapper***</span> en '<span style="color: rgb(132,63,161);">***groups***</span>'.

Définir le Token <span style="color: rgb(132,63,161);">***claim name***</span> en '<span style="color: rgb(132,63,161);">***groups***</span>'.

Vérifier que les fonctions suivantes soit activées / désactivées.

Puis faire '<span style="color: rgb(132,63,161);">***Save***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/YEzimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/YEzimage-png.png)

#### **<span style="color: rgb(35, 111, 161);">2.3 Récupérer les URL</span>** 

Pour récupérer les URL, sélectionner le realm et faire '<span style="color: rgb(132,63,161);">***Realm settings***</span>' puis cliquer sur '<span style="color: rgb(132,63,161);">***OpenID Endpoint Configuration***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4Kbimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4Kbimage-png.png)

Une page s'affiche et permet de récupérer les URL.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/5KVimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/5KVimage-png.png)

---

### <span style="color: rgb(35, 111, 161);">**<span style="text-decoration: underline;">II. Côté Portainer</span>**</span>

Se connecter au Portainer.

Aller dans '<span style="color: rgb(132,63,161);">***Settings --&gt; Authentication***</span>'

Sélectionner '<span style="color: rgb(132,63,161);">***Oauth***</span>'

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DJ7image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DJ7image-png.png)

Activer '<span style="color: rgb(132,63,161);">***Use SSO***</span>' et '<span style="color: rgb(132,63,161);">***Automatic user provisioning***</span>'.

Laisser la <span style="color: rgb(132,63,161);">***Default Team***</span> en '<span style="color: rgb(132,63,161);">***No Team***</span>'.

<p class="callout info">**Note** : Activer 'Hide internal authentication prompt' forcera la page de login SSO et désactivera l'authentification interne. Il sera toutefois possible d'y accéder en ajoutant ***/#!/internal-auth*** à la suite de l'url.</p>

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Wldimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Wldimage-png.png)

Activer '<span style="color: rgb(132,63,161);">***Use SSO***</span>' et '<span style="color: rgb(132,63,161);">***Automatic Team membership***</span>'.

Définir les nom des groupes Keycloak à synchroniser et les associer aux groupes du portainer

Définir le groupe administrateur.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jpmimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jpmimage-png.png)

Définir les url de configuration comme suit en remplaçant, puis faire '<span style="color: rgb(132,63,161);">***Save***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/kbKimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/kbKimage-png.png)

Tout est prêt et la nouvelle page de connexion inclut désormais l'option d'authentification.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/sZCimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/sZCimage-png.png)