Skip to main content

ProxmoxVE - Configuration SSO Oauth avec keycloak

image.png

Difficulté : Confirmé


Notions : Authentification, Gestion de droits, SSO



I. Introduction

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.


II. Côté Keycloak

2.1 Créer le client

Se connecter au keycloak et sélectionner le realm sur lequel ajouter le client proxmox.

image.png

Cliquer sur 'Create client

image.png

Sélectionner le type 'OpenID Connect'

Générer ou définir un 'clientID'.

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.

Best Practice : 32 caractères avec minuscules, majuscules et chiffres.

Choisir un nom parlant.

Puis faire 'Next'.

image.png

Sur la page suivante, activer 'Client authentication' et 'Authorization'.

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

Puis faire 'Next'.

image.png

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

Puis faire 'Save'.

image.png

2.2 Préparer la synchro des groupes

Afin de pouvoir gérer les droits depuis le keycloak et synchroniser les groupes, aller dans l'onglet 'Client scope'.

Choisir le client scope au nom du client suivi de '-dedicated'.

image.png

Faire 'Add Mapper' puis 'By Configuration'.

image.png

Choisir 'Group Membership'.

image.png

Définir le nom du mapper en 'groups'.

Définir le Token claim name en 'groups'.

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

Puis faire 'Save'.

image.png

2.3 Récupérer les URL

Pour récupérer les URL, sélectionner le realm et faire 'Realm settings' puis cliquer sur 'OpenID Endpoint Configuration'.

image.png

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

image.png


III. Côté Proxmox

3.1 Créer le Realm

Sur 'Datacenter' dans le sous-menu, sélectionner 'Permissions --> Realms' puis faire 'Add'

image.png

Sélectionner 'OpenID Connect server'.

image.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

3.2 Créer les groupes

Aller dans 'Permissions --> Groups'.

Créer les groupes tels que définis dans le realm et ajouter le suffixe '-<nomdurealm>'

image.png

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.

Il ne restera plus qu'a définir les permissions pour chaque groupe dans 'Permissions'.