DiscourseSsoConsumer est une extension MediaWiki qui permet à un site MW d’authentifier les utilisateurs via l’API Discourse Connect Provider (c’est-à-dire que les utilisateurs tapent leurs mots de passe dans Discourse). Initialement publié il y a un an, la version 2.0.0 est sortie hier. Je pense qu’il est temps de donner à cette extension son propre sujet ici afin qu’elle soit plus facile à trouver (par rapport au message solitaire d’origine dans le sujet SSO Provider : Use Discourse as an identity provider (SSO, DiscourseConnect) - #104 by mdoggydog).
Il s’installe via composer. Les instructions d’installation/configuration se trouvent dans le README.
Pour la v2.0.0, la version minimale de MediaWiki est 1.35 (et elle n’a pas encore été testée sur une version plus récente).
L’extension a été initialement développée/testée avec MW 1.31 ; les v1.1.0 et v1.2.0 fonctionnent probablement avec MW 1.31, mais elles n’ont pas été testées sur cette version.
Il semble que la méthode AuthManager::singleton() ait été dépréciée dans la version 1.35 et supprimée dans la version 1.37.
Je pense avoir résolu ce problème maintenant ; veuillez essayer la version actuelle dev-main de cette extension. (Vous pouvez l’installer via composer, en utilisant dev-main comme numéro de version.) Cela fonctionne pour moi sur la version 1.35, et si cela fonctionne pour vous sur la version 1.37, je la taguerai correctement comme une version de correction de bug (par exemple, 2.0.1).
J’ai installé l’application sur mon téléphone Android, c’est-à-dire une PWA autonome. Lorsque je me connecte à mon MediaWiki, il redirige et ouvre la PWA Discourse, puis il ouvre mon URL MediaWiki dans la PWA elle-même alors qu’il devrait rediriger vers le navigateur Web correspondant. Je pense que Discourse ne détecte pas et ne redirige pas correctement vers le navigateur Web qui a initié la connexion. Ceci n’est pas lié à l’extension MediaWiki, mais à la façon dont Discourse gère les redirections/URL externes. Existe-t-il un paramètre que je peux modifier pour que la connexion fonctionne avec l’application Web progressive Discourse ?
Désolé, je n’ai aucune expérience avec le PWA de Discourse.
J’imagine qu’il y a un défaut fondamental dans l’interaction entre un PWA et Discourse en tant que fournisseur SSO, cependant : chaque fois que le consommateur SSO veut réauthentifier un utilisateur déjà connecté à Discourse, il va dire au navigateur client de rediriger vers le serveur Discourse, s’attendant à ce que le serveur Discourse vérifie les cookies existants de l’utilisateur et redirige vers le consommateur… et s’attendant à ce que toutes ces redirections se produisent silencieusement dans le navigateur sans que l’utilisateur ne voie rien d’autre que le chargement final de la page.
Mais, le PWA est enregistré auprès d’Android comme une application entièrement distincte qui est invoquée pour certaines URL/domaines, n’est-ce pas ? Lorsque le PWA redirige vers le navigateur d’origine, comment le navigateur d’origine saurait-il que ce nouveau lien a quelque chose à voir avec sa requête d’origine ? Et comment Android saurait-il qu’il ne devrait afficher le PWA à l’utilisateur que si le PWA a réellement besoin d’une entrée de l’utilisateur ?