# ProxmoxVE - 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-/gdRconfirme-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/gdRconfirme-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Confirmé

Notions : Authentification, Gestion de droits, 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 la mise en place de l'authentification et de la gestion de droits sur les environnements Proxmox à travers le SSO fourni par Keycloack.

---

### <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 sélectionner le realm sur lequel ajouter le client proxmox.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4Duimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4Duimage-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-/Ux9image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ux9image-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-/FD0image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/FD0image-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-/ospimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ospimage-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-/3Tdimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/3Tdimage-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-/Hpoimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Hpoimage-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-/n25image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/n25image-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-/34Timage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/34Timage-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-/PSrimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PSrimage-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-/hBLimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/hBLimage-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-/43timage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/43timage-png.png)

---

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

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

Sur '<span style="color: rgb(132,63,161);">***Datacenter***</span>' dans le sous-menu, sélectionner '<span style="color: rgb(132,63,161);">***Permissions --&gt; Realms***</span>' puis faire '<span style="color: rgb(132,63,161);">***Add***</span>'

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

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

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

Remplir les éléments suivants :

- **Issuer URL** : l'url Issuer du realm
- **Nom du realm** : Nom du realm
- **Client ID** : ID du client sur keycloak
- **Client Key** : Secret du client
- Cocher '**Default**'
- Cocher '**Autocreate Users**'
- **Username Claim** : email (attribut qui servira à authentifier le user)
- Décocher '**Autocreate Groups**' (les groupes seront créés à part)
- **Group Claim** : groups (attribut contenant les groupes de l'utilisateur)
- Décocher **Overwrite Groups**
- Mettre en commentaire la description du realm

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

#### <span style="color: rgb(35,111,161);">**3.2 Créer les groupes**</span>

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

Créer les groupes tels que définis dans le realm et ajouter le suffixe '<span style="color: rgb(132,63,161);">***-&lt;nomdurealm&gt;***</span>'

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

<p class="callout success">**Astuce** : Il est aussi possible de cocher la case de création automatique, placer un utilisateur dans tous les groupes nécessaires, se connecter, puis aller décocher la case de synchronisation des groupes et supprimer les groupes créés en trop.</p>

Il ne restera plus qu'a définir les permissions pour chaque groupe dans '<span style="color: rgb(132,63,161);">***Permissions***</span>'.