JeromeDevome / GRR

GRR Officiel - Copyright Team DEVOME
https://grr.devome.com
GNU General Public License v2.0
81 stars 51 forks source link

SSO OIDC ou SAML agnostique / keycloak #292

Closed remyd1 closed 9 months ago

remyd1 commented 10 months ago

Bonjour,

Nous avons un serveur SSO de type keycloak. Keycloak permet soit de lier un SP (app client) de type OIDC ou SAML. J'ai vu, par ailleurs, qu'il y avait déjà des fonctionnalités qui commençaient à apparaître pour connecter un serveur CAS. Est-il prévu d'implémenter et/ou de documenter la connexion vers un serveur tiers avec mapping des attributs ?

J'imagine que le code s'apparente à celui déjà utilisé pour le serveur CAS ?

Merci

ynaessens commented 10 months ago

Bonjour, il est vraisemblable que le protocole SAML permette de faire l'authentification et de récupérer des attributs de l'utilisateur à la connexion. Auriez-vous une autre application open source pour laquelle le SSO sur votre serveur Keycloak fonctionne ? Savez-vous sous quelle forme les attributs sont diffusés ? Enfin, votre intention est-elle de faire tourner GRR en v3.5.1 (moins de 20MO de scripts) ou en v4.1.1 (plus lourd à cause de twig)? Cordialement, YN

remyd1 commented 10 months ago

Bonjour,

Nous sommes toujours en version 3.X, donc l'idée serait de rester sur cette branche.

L'extension nextcloud "SSO & SAML" permet déjà faire de l'authentification SSO avec SAML.

Les attributs sont encapsulés dans l'échange d'information SAML au travers d'un tunnel chiffré avec un certificat signé généré pour l'occasion.

Cordialement,

ynaessens commented 10 months ago

Si j'ai bien compris, Nextcloud fournit un cadre pour gérer l'authentification et servir de SSO pour les applications du portail. Vous souhaitez vraisemblablement intégrer votre GRR dans le portail Nextcloud. Si vous avez une autre application open source intégrée au portail, ce serait une aide au cas où l'authentification ne se ferait pas du premier coup avec phpCAS. Enfin, pour utiliser SAML, il faudrait installer la dernière version 3.5.1a et essayer de paramétrer l'authentification par SSO. À suivre.

remyd1 commented 10 months ago

Bonjour,

Non, ce n'est pas ce que je dis / souhaite faire. L'IdP resterait Keycloak (même rôle qu'un serveur CAS), et GRR serait un SP (client), au même titre que nextcloud. Je n'ai pas cherché mais il doit exister des librairies php pour fournir ce qu'il faut.

Les autres applications OpenSource qui sont également client keycloak que j'ai connecté sont Zammad et Hedgedoc, mais elles ne sont pas en PHP. Pour hedgedoc, j'utilise OIDC au lieu de SAML, peut-être une autre piste ?

ynaessens commented 10 months ago

Si on utilise ce que sait faire phpCAS, on reste sur SAML. J'ai regardé du côté de Nextcloud, mais outre le fait qu'ils réservent leur documentation aux utilisateurs enregistrés, je pense qu'ils ont développé leur propre librairie d'authentification. Il faudrait donc essayer de paramétrer la page SSO de GRR 3.5.1a et tester.

remyd1 commented 10 months ago

N'y a t'il pas un docker pour tester rapidement ? J'aimerai éviter d'impacter le serveur...

ynaessens commented 10 months ago

Non, pas de Docker à jour. Mais l'authentification par CAS est optionnelle, ainsi l'accès à GRR sur la base de données n'est pas impacté. Vous pouvez donc faire des essais sans craindre de tout casser.