Quelqu’un a-t-il configuré un SSO pour un site Townnews ?
Je ne connais aucun site utilisant Townnews ou BLOX CMS avec Discourse SSO. Savez-vous s’il est possible d’ajouter du code à un site utilisant ce service ? Si le code Discourse SSO peut être ajouté au site, il pourrait être possible de l’utiliser comme fournisseur d’authentification unique (SSO) pour Discourse.
Désolé, je suis débutant, mais c’est bien l’utilisation de townnews comme source SSO que je voulais dire. Quel code devrais-je ajouter au site ?
Cela signifie que TownNews agirait comme fournisseur d’authentification unique (SSO) pour votre site Discourse. Pour utiliser l’implémentation du SSO de Discourse, vous devez pouvoir ajouter du code au service qui fait office de fournisseur SSO. Ce code doit s’intégrer au processus de connexion du service. Vous trouverez les détails sur le code à ajouter ici : Authentification unique officielle pour Discourse (sso).
Pour un exemple de code fonctionnel, consultez la manière dont notre plugin WordPress implémente le SSO : wp-discourse/lib/sso-provider at main · discourse/wp-discourse · GitHub.
Il est également possible de connecter les utilisateurs à Discourse via TownNews avec OAuth2. Cela serait possible si TownNews peut fonctionner comme fournisseur OAuth2. Vous trouverez des détails sur la configuration des connexions OAuth2 avec Discourse ici : Prise en charge de base d’OAuth2. Avant d’y consacrer trop de temps, il serait bon de confirmer si TownNews peut fonctionner comme fournisseur OAuth2. Il devrait être possible de le vérifier dans leur documentation.
Je tente de régler un problème avec mon fournisseur de site, mais j’ai pensé partager cela avec vous pour voir si vous pouviez en tirer des informations utiles pour m’aider. Je vous remercie de prendre le temps de me lire.
Redirection vers le point de terminaison du fournisseur
Chaque site BLOX-CMS dispose d’un point de terminaison d’authentification fédérée disponible à l’URL réservée suivante :
https://www.example.com/tncms/auth/federated/
Le site consommateur initie l’authentification en redirigeant le navigateur de l’utilisateur vers cette URL. Le point de terminaison nécessite un paramètre return qui doit être défini sur l’URL du point de terminaison du site consommateur.
Exemple d’URL :
https://www.example.com/tncms/auth/federated/?return=http://vendor.com/login/
Le point de terminaison accepte également des paramètres supplémentaires :
-
source : Ce paramètre et sa valeur seront transmis à l’URL de connexion du site si une authentification de l’utilisateur est requise. Les modèles peuvent réagir à cette valeur pour personnaliser l’interface du formulaire de connexion. Par défaut, la valeur est « federated » si non spécifiée.
-
reauth : Définissez une valeur vraie pour forcer l’affichage de la page de connexion, indépendamment de l’état de connexion actuel de l’utilisateur.
Redirection vers le point de terminaison du consommateur
L’URL du point de terminaison du site consommateur est fournie au fournisseur via le paramètre return lorsque l’utilisateur est initialement redirigé vers le point de terminaison du fournisseur. Après une authentification réussie sur le site du fournisseur, l’utilisateur sera redirigé vers cette URL, accompagnée d’un paramètre code. La valeur de code doit être échangée contre les détails du compte de l’utilisateur lors d’un appel de service web immédiat, comme décrit ci-dessous.
L’URL du point de terminaison du consommateur peut contenir ses propres paramètres de requête. Le paramètre code sera fusionné avec eux sans écraser les autres valeurs.
Selon la manière dont les modèles du site du fournisseur sont écrits, il est possible que l’utilisateur arrive au point de terminaison du consommateur sans valeur pour code. Dans ce cas, l’utilisateur doit être traité comme s’il avait choisi d’annuler le processus d’authentification.
Exemple de réponse en cas de connexion réussie (basé sur l’exemple précédent) :
http://vendor.com/login/?code={code}
Où {code} est un identifiant unique à utiliser dans le service web de suivi.
Appel de service web de suivi
Lorsque l’utilisateur arrive au point de terminaison du consommateur avec un code valide, le site consommateur doit effectuer immédiatement un appel de service web vers le site du fournisseur pour l’échanger contre les informations du compte de l’utilisateur.
Le site consommateur accédera à l’action get du module user, en transmettant le paramètre code fourni par le fournisseur :
https://www.example.com/tncms/webservice/v1/user/get/?code={code}
La réponse sera un objet de données contenant les informations du compte de l’utilisateur, tel que décrit dans la documentation des services web. En cas de code invalide, une réponse nulle sera renvoyée.
Un code n’est utilisable qu’une seule fois. Après avoir été utilisé pour récupérer un compte utilisateur, il est immédiatement invalidé et les futures requêtes l’utilisant retourneront une réponse nulle.
Cela semble prometteur : https://help.bloxcms.com/knowledge-base/applications/settings/users/authentication_provider/article_fa0ce6ec-9824-11e4-b296-23bd78ef308a.html:
L’option Fournisseur d’authentification permet à votre site de fonctionner comme un fournisseur d’authentification OpenID. Cela signifie que les utilisateurs de votre site peuvent utiliser leurs identifiants pour se connecter à d’autres sites qui le permettent. D’autres sites BLOX CMS peuvent agir en tant que sites clients, autorisant cet échange d’identifiants de connexion.
Il devrait être possible de configurer un site BLOX CMS pour qu’il fonctionne comme fournisseur d’authentification OpenID pour Discourse. Dans ce cas, les utilisateurs pourraient se connecter à votre forum Discourse via votre site TownNews. Pour mettre cela en place, vous devrez installer le plugin Discourse OpenID Connect (OIDC) sur votre site Discourse. La configuration peut nécessiter quelques essais et erreurs. Faites-le-nous savoir si vous rencontrez des difficultés et nous ferons de notre mieux pour vous aider.