Imprimer
Catégorie : Technique Informatique
Affichages : 184

Côté Joomla il y a peut-être de multiples façons de configurer le SSO.

Je n'ai pas cherché toutes le solutions et me suis arrêté à la première ayant fonctionné, c'est à dire en fait la première que j'ai testée :-)

Il n'y a pas dans la documentaiton officielle de lemonldap NG d'information pour Joomla, Joomla n'est pas listé dans la liste des applications supportées par LLNG : https://lemonldap-ng.org/documentation/latest/applications.html .

Et de même il n'y a pas dans joomla de mention de Lemonldap NG. Mais il y a un plugin SAML et c"est suffisant.

Côté Joomla je recherche plugin pour le support d'un SP (Fournisseur de service) SAML, puisque l'IDp (Fournisseur d'identité) sera Lemonldap::NG.

La documentation Joomla  https://docs.joomla.org/SAML_Service_Provider_SSO_(SP) semble pointer vers un plugin réalisé par miniOrange.

Le plugin est donc https://extensions.joomla.org/extension/saml-sso-for-joomla/ .

Pour le récupérer le plus simple est de copier l'url dur zip sous le bouton Download.

L'ajout d'un plugin fait une utilisant l'url du zip du plugin  dans les plugin via la console web administrator de joomla et de l'installer.

La surprise vient sur la suite où l'on doit accepter de fournir le mail administrateur de joomla, ici choisissez un mail dédié, il ne devrait pas être utilisé par des tiers, mais on n'est jamais trop prudent.

Dans lemonldap ng j'avais déjà activé le service SAML 2 pour Nextcloud, l'important est donc de récupérer les metadata de description de ce fournisseur d'identité.

On le trouve sous Identifiant d'entité : #PORTAL#/saml/metadata c'est à dire l'url du portal suivie de /saml/metadata. Cette url pour les métadata est suffisante pour configurer le plugin côté Joomla.

Une fois les metadatas de l'Idp LLNG récupérée côté plugin joomla, il faut créer le service SAML sous LLNG en fournissant les metdadas du service SSO à LLNG.

A nouveau il y a une url qui commence par l'url bu blog joomla suivie de plugins/authentication/miniorangesaml .

Le plugin par défaut de minorange est limité, il est indiqué comme GPLv2, mais une fois installé il ressemble plus à plugin propriétaire avec demande de contact et enregistrement. Mais il fonctionne cependant bien sans s'enregistrer, seulement la requète SAML SSO faite par le plugin ne sera pas signée.

Ceci se voit dans le metdata

    SPSSODescriptor AuthnRequestsSigned="false"

Il faut désactiver la vérification de la signature de la requète SSO dans LLNG., Pour avoir la version qui accepte un certificat il faut la version entreprise qui n'est pas gratuite.

Je me suis connecté avec mon utilisateur en utilisant l'url pour le SSO qui est l'url du blog suivie de ?morequest=sso . L'uitlisateur a été créé automatiquement avec son adresse mail comme identifiant. Il n'appartient au seul groupe 'Registred' et il faut éditer l'utilisateur via la console d'administration joomla pour lui donner des droits additionnels en l'ajoutant à d'autres groupes.

C'est avec cet utilisateur que j'ai composé ce billet.

Le sso ne semble pas fonctionner pour la console d'administration, il est possible que cela soit une limitation du plugin quand il n'est pas en mode entreprise.

Il reste des améliorations à réaliser.

La signature des requètes serait tout de même mieux, mais je ne compte pas acheter une version entreprise pour cela...

J'ai ajouté l'url de SSO au portail LLNG, mais en l'utilisant depuis le portail cela ne fonctionne pas, je suis redirigé sur le portail. En copiant/collant l'url dans un nouvel onglet de mon navigateur cela fonctionne.Ceci est probablement en lien avec la page d'origine qui est vérifié par le plugin joomla SSO ou bien par le portal LLNG.

Comme je poste rarement des billets, il est probable que celui ci reste dans cet état dans les cinq prochaines années... ( on est le 2 juillet 2023 ).