Magazine Gadgets

Comment configurer l’authentification unique entre FusionAuth et Joomla

Publié le 12 septembre 2021 par Mycamer

Lorsque vous gérez un grand nombre de sites Web, il peut être difficile de garder une trace de toutes les connexions d’administrateur requises. De plus, cela peut entraîner des failles de sécurité si vous perdez constamment et devez réinitialiser votre mot de passe, ou pire, le garder écrit quelque part.

La configuration de l’authentification unique (SSO) pour votre site permet aux utilisateurs autorisés d’accéder plus facilement au site Web, tout en garantissant qu’ils le font avec une sécurité accrue. FusionAuth SSO rationalise le processus de connexion à plusieurs sites sans avoir besoin de mémoriser ou de stocker plusieurs mots de passe.

Joomla est l’un des plus grands systèmes de gestion de contenu basés sur PHP, et heureusement, le processus d’intégration de FusionAuth est assez simple. Dans ce didacticiel, vous apprendrez à implémenter OAuth SSO pour les utilisateurs de Joomla.

Qu’est-ce que l’authentification unique ?

L’authentification unique permet à vos utilisateurs d’accéder à deux applications ou plus avec un seul ensemble d’informations d’identification. Correctement mis en œuvre, il facilite la vie de vos utilisateurs ; ils se connectent une seule fois et n’ont pas à se connecter lorsqu’ils passent d’une application à l’autre.

Vous avez peut-être utilisé l’authentification unique sans le savoir lors du basculement entre les applications Google, de la connexion à divers services avec Facebook ou même de la connexion à diverses parties du réseau de sites d’Amazon.

Je gère plus de 100 sites Web dans Joomla et WordPress pour les clients, ce sont donc 100 connexions d’administrateur dont je dois garder une trace en cours de route. Le passage à l’authentification unique signifie que j’ai juste besoin de configurer le client OAuth sur chaque site, puis je peux me connecter avec l’authentification unique à chacun en utilisant une seule plate-forme d’autorisation.

Qu’est-ce que FusionAuth ?

FusionAuth est un outil complet de gestion des identités et des accès qui permet à votre équipe d’économiser du temps et des ressources. Il vous permet de mettre en œuvre des normes complexes telles que OAuth, OpenID Connect et SAML et de créer des fonctionnalités de connexion supplémentaires pour répondre aux exigences de conformité.

Avant que tu commences

Il y a quelques choses que vous devez avoir en place avant de commencer :

  • Vous devez disposer d’un compte FusionAuth Cloud ou installer leur version auto-hébergée, disponible gratuitement. Suivre la Guide de configuration FusionAuth en 5 minutes pour commencer votre installation.
  • Vous avez besoin d’une installation Joomla pour ensuite installer le plugin afin de pouvoir configurer SSO. Si vous avez besoin d’aide pour créer une installation Joomla, visitez www.joomla.org pour en savoir plus.
  • Vous devez télécharger et installer un plugin OAuth pour Joomla. Ce didacticiel montre le processus en utilisant le Client miniOrange Joomla OAuth. Vous pouvez installer l’extension en allant dans “Extensions” puis “Installer” sur votre site Joomla.

Une fois que vous avez installé tous les ingrédients requis ci-dessus, connectez-vous à votre instance FusionAuth pour commencer à configurer votre SSO sur votre site.

Configurer une application dans FusionAuth

Dans l’interface utilisateur administrative FusionAuth, accédez à Applications. Cliquez sur le vert + bouton pour ajouter une nouvelle application à votre instance FusionAuth. Suivez ces étapes pour créer votre application OAuth à utiliser avec votre site Joomla :

  • Ajoutez un nom à votre application. Vous en aurez besoin lorsque vous configurerez le plugin Joomla.
  • Laissez la plupart des paramètres à leurs valeurs par défaut.
  • Vous devrez ajouter votre URL à la fois au champ URL de redirection autorisées et aux champs URL d’origine de la demande autorisée

Voici à quoi pourrait ressembler votre configuration :

Configuration de la configuration de l'application FusionAuth Joomla SSO.

Enregistrez l’application via l’icône en haut de la page de l’application.

Vous serez maintenant renvoyé à votre liste de candidatures. Cliquez sur Éditer pour revenir aux paramètres de l’application où vous pouvez maintenant voir l’ID et le secret générés. Vous en aurez besoin pour configurer le client OAuth dans Joomla à l’étape suivante.

Obtenir l'identifiant et le secret du client de l'application FusionAuth Joomla SSO.

Configuration de FusionAuth à l’aide de Kickstart

Au lieu de configurer manuellement FusionAuth à l’aide de l’interface utilisateur d’administration, vous pouvez également utiliser Kickstart. Cela vous permet de démarrer rapidement si vous avez une nouvelle installation de FusionAuth. En savoir plus sur l’utilisation Démarrage. Voici un exemple Fichier de démarrage qui configure FusionAuth pour ce didacticiel.

Vous devrez modifier ce fichier Kickstart et mettre à jour le nom de l’application et les URL de redirection.

Configuration des utilisateurs

Lorsqu’un utilisateur se connecte à un site avec SSO, il se connecte d’abord à FusionAuth. Ensuite, FursionAuth transmet ses informations d’autorisation au site Web Joomla pour autoriser l’accès.

Pour faciliter les tests, les détails de votre compte administrateur FusionAuth doivent également être les détails de l’utilisateur Super Admin pour votre site Joomla.

Lors de la configuration d’utilisateurs supplémentaires, vous devez configurer deux comptes d’utilisateurs : un dans FusionAuth, puis le second sur votre site Web Joomla pour qu’il corresponde et soit autorisé. Le compte Joomla déterminera quel accès le compte utilisateur a sur le site.

La création automatique d’utilisateurs est une fonctionnalité qui nécessite la version enregistrée du plugin miniOrange.

Configuration du client OAuth dans Joomla

Connectez-vous à votre espace administrateur Joomla, et si vous ne l’avez pas déjà fait dans l’étape de préparation ci-dessus, installez le Client miniOrange Joomla OAuth.

Une fois installé, vous devez maintenant configurer le client OAuth afin qu’il puisse se connecter à FusionAuth.

  • Naviguez jusqu’à « Composants », puis « miniOrange OAuth Client », puis choisissez « Configurer OAuth ».

Configurez le client OAuth.

  • Faites éventuellement le tour du plugin, ou cliquez sur « Ignorer la visite » si vous ne faites que suivre ce didacticiel. Tous les paramètres que vous devez configurer pour la version standard (gratuite) du plug-in se trouvent dans l’onglet Configurer OAuth.
  • Pour configurer OAuth à l’aide de FusionAuth, choisissez “Custom OAuth”, qui se trouve en bas de l’écran.

Configurez les options OAuth.

Vous devez copier plusieurs éléments à partir des paramètres de votre application FusionAuth, puis les coller dans les différents champs de l’application Configure OAuth :

  • Custom App Name: le nom de votre application FusionAuth
  • Client Id: l’application FusionAuth Client Id valeur
  • Client Secret: l’application FusionAuth Client Secret valeur

Ensuite, il y a quatre champs qui doivent être remplis avec des valeurs qui indiquent au plugin certaines variables nécessaires pour parler à votre instance FusionAuth.

  • Scope: Entrer openid comme valeur
  • Authorize Endpoint: Entrer http(s)://<your FusionAuth URL>/oauth2/authorize
  • Access Token Endpoint: Entrer http(s)://<your FusionAuth URL>/oauth2/token
  • Get User Info Endpoint: Entrer http(s)://<your FusionAuth URL>/oauth2/userinfo

Enfin, vous pouvez éventuellement définir les cases à cocher pour spécifier l’apparence de votre lien SSO. Cocher “Afficher le lien sur la page de connexion” insérera un lien sur votre formulaire de connexion qui a “Cliquez ici pour SSO”. Décochez cette case si vous souhaitez avoir un bouton différent pour votre connexion SSO, qui est décrit dans la section suivante.

Paramètres de configuration Joomla OAuth personnalisés.

Une fois que vous avez terminé toute cette partie de la configuration, cliquez sur « Enregistrer les paramètres ». Pour confirmer si toutes les informations sont correctes, cliquez sur « Tester la configuration ». Cela ouvrira une nouvelle fenêtre avec un message Test réussi :

Écran de résultat du test Joomla OAuth.

En parcourant cette page, vous verrez divers attributs et les valeurs renvoyées par FusionAuth que le client OAuth traite ensuite pour le SSO.

Vous devrez identifier deux attributs dans la liste afin de remplir les champs de mappage d’attributs au bas de l’écran Configurer l’application OAuth.

  • Pour l’attribut d’e-mail renvoyé par FusionAuth, utilisez le nom de l’attribut email.
  • Pour l’attribut de nom d’utilisateur renvoyé par FusionAuth, utilisez le nom d’attribut preferred_username.

Paramètres de mappage d'attributs Joomla.

Cliquez sur « Enregistrer le mappage d’attributs » pour enregistrer ces valeurs.

Votre site Joomla devrait maintenant être correctement configuré pour vous permettre d’utiliser FusionAuth SSO pour vous connecter au site Web.

Ajout d’un bouton SSO frontal

Pour pouvoir utiliser la fonctionnalité OAuth SSO, vous devez vous assurer que les utilisateurs ont un moyen de se connecter au site et à leur tour de se connecter en un seul clic. Si vous n’avez pas publié de module de connexion ou configuré un élément de menu pour charger le composant de connexion, configurez-le d’abord sur votre site.

La flèche rouge ci-dessous montre la façon dont le plugin miniOrange ajoute par défaut un lien « Cliquez ici pour l’authentification unique » au module de connexion. De même, sur l’option de page de connexion, il place un lien juste en dessous du bouton de connexion. Décocher la case comme indiqué précédemment dans le tutoriel masquera cette version du lien.

La flèche verte pointe vers un bouton personnalisé pour l’option SSO. Vous pouvez personnaliser ce bouton pour qu’il corresponde au style de votre site. Le code de l’exemple ressemble à ceci :

<a class="btn btn-primary" href="?morequest=oauthredirect&app_name=other">FusionAuth SSO</a>

Vous pouvez coller ce code à divers endroits sur votre site Web Joomla pour faire apparaître le bouton de connexion SSO sur le site. Les exemples comprennent:

  • Champ de pré-texte pour le module de connexion Joomla.
  • Champ Post-texte dans le module de connexion Joomla pour qu’il apparaisse sous la boîte de connexion.
  • Placez le code dans un module HTML personnalisé que vous pourrez ensuite positionner à d’autres endroits du site.

Options de connexion Joomla SSO.

Ajout d’un bouton SSO à votre écran de connexion administrateur

Il existe deux manières de fournir un accès administrateur à votre site via SSO.

Connexion administrateur

Le plugin client miniOrange OAuth n’ajoute actuellement pas de bouton pour la page de connexion administrateur pour Joomla. Mais vous pouvez facilement ajouter votre propre bouton en créant un module HTML personnalisé d’administrateur.

  • Dans le backend du site, allez dans “Extensions” puis “Modules”.
  • Changer le filtre de Site à Administrator.
  • Créez un nouveau module, en sélectionnant Custom HTML comme type de module.
  • Passez en mode code et collez le code suivant dans l’éditeur :
<a class="btn btn-primary btn-block btn-large login-button" href="?morequest=oauthredirect&amp;app_name=other">FusionAuth SSO</a>`
  • Réglez la position du module sur Login.
  • Enregistrez et fermez le module.

Lorsque vous vous déconnectez, vous devriez maintenant voir le bouton FusionAuth SSO sur votre écran de connexion :

Connexion administrateur avec le bouton de connexion FusionAuth SSO.

Séances partagées

L’autre option consiste à activer les sessions partagées. Joomla a une fonctionnalité où vous pouvez partager des sessions entre l’avant et l’arrière du site Web. L’activation de cette fonctionnalité signifie que pour accéder à votre backend, il vous suffit de vous connecter d’abord à votre frontend et vice versa.

Pour activer cette fonctionnalité, dans le backend de votre site Web, accédez à « Système », puis « Configuration globale », puis à l’onglet Système. Faites ensuite défiler jusqu’à « Paramètres de session » et définissez « Sessions partagées » sur Yes. Enfin, enregistrez votre configuration globale.

Test de votre connexion SSO

Visitez votre front-end Joomla et vous devriez maintenant voir votre formulaire de connexion avec un bouton FusionAuth SSO (ou un bouton avec le libellé que vous avez mis dessus pour votre site).

Exemple de connexion frontale.

En cliquant sur le bouton FusionAuth SSO, vous devriez vous connecter directement au site Web.

Exemple de déconnexion frontale.

En cliquant sur Déconnexion, vous vous déconnecterez du site et vous verrez à nouveau le formulaire de connexion.

Dépannage

FusionAuth a rendu le dépannage facile. Si vous avez manqué un paramètre dans votre configuration OAuth, vous verrez très probablement un message d’erreur vous indiquer ce que vous avez manqué. Vérifiez les paramètres ci-dessus pour vous assurer que vous avez copié les informations correctes à partir de FusionAuth et que vous avez enregistré à la fois les paramètres OAuth ainsi que le mappage d’attributs dans le client miniOrange OAuth.

Vous constaterez peut-être qu’après un redémarrage ou une longue période entre les connexions, votre instance FusionAuth se déconnectera. Lorsque cela se produit, cliquer sur le bouton FusionAuth SSO de votre formulaire de connexion ajoutera une étape supplémentaire pour vous permettre de vous reconnecter à votre instance FusionAuth afin qu’elle puisse accéder aux informations d’identification SSO. Une fois connecté, le service SSO revient en un seul clic pour autoriser votre accès la prochaine fois que vous souhaitez vous connecter en utilisant le SSO.

Le plugin miniOrange utilise cURL pour traiter l’autorisation OAuth. Ainsi, vous ne pourrez pas connecter FusionAuth à des sites distants à l’aide de FusionAuth exécuté localement, par exemple sur http://localhost:9011. Si vous exécutez un serveur FusionAuth local et que vous cherchez à l’utiliser pour autoriser les connexions pour un site Web distant, utilisez le routage NAT pour configurer votre serveur local afin qu’il soit accessible à Internet ou à un service comme ngrok.

Conclusion

Qu’il s’agisse d’accélérer l’accès aux sites que vous gérez, de créer une communauté d’utilisateurs et de leur accorder l’accès à l’aide de l’authentification unique à plusieurs sites, il existe de nombreux avantages à envisager d’activer l’authentification unique pour les sites Web Joomla.

OAuth n’est qu’une fonctionnalité de FusionAuth, mais vous pouvez voir avec quelle facilité vous pouvez le configurer pour simplifier votre processus de connexion. Les développeurs de sites Joomla peuvent examiner davantage les fonctionnalités avancées de FusionAuth en tant que solution de gestion des utilisateurs et d’amélioration des capacités de contrôle d’accès de Joomla, ainsi que fournir des moyens d’interagir de manière transparente avec d’autres applications partageant l’authentification unique via votre instance FusionAuth.

*** Ceci est un blog syndiqué Security Bloggers Network de Le blog FusionAuth Rédigé par Le blog FusionAuth. Lire le message original sur : https://fusionauth.io/blog/2021/09/09/how-to-set-up-single-sign-on-between-fusionauth-joomla/

— to securityboulevard.com


Retour à La Une de Logo Paperblog

A propos de l’auteur


Mycamer Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazines