web-dev-qa-db-fra.com

Système SSO entre 2 installations WordPress sur différents serveurs

Ceci est essentiellement une répétition de cette question , mais aucune réponse n’a été donnée.

J'essaie de créer un système d'authentification unique entre deux installations WordPress distinctes situées sur des serveurs différents utilisant des bases de données différentes. Le site principal dispose d'une base de données complète comprenant une table d'utilisateurs contenant plus de 300 000 utilisateurs. En raison de la taille de la table des utilisateurs, nous ne souhaitons pas répliquer chacun d'eux sur le deuxième site ni créer un système SSO traditionnel dans lequel chaque utilisateur est créé dans la base de données lorsqu'il se connecte. Idéalement, nous voudrions faire référence à la table des utilisateurs sur le site principal et utiliser ces mêmes utilisateurs sur le deuxième site.

Jusqu'à présent, j'ai essayé d'utiliser wp_remote_post () pour envoyer un objet utilisateur au deuxième site tout en surchargeant les fonctions pluggable.php et en définissant le $ global_utilisateur_utilisateur avec l'objet utilisateur publié. Cependant, cela ne fonctionne pas aussi bien que je l'espérais, car les méthodes normalement disponibles dans l'objet WP_User ne sont pas disponibles dans l'objet publié, ce qui entraîne des erreurs fatales lorsque des méthodes telles que $ user-> existe () sont utilisé.

Je connais la solution CUSTOM_USER_TABLE, mais cela ne fonctionnera évidemment pas dans cet exemple car les sites sont sur des serveurs séparés avec des bases de données séparées.

TL; DR: Besoin de SSO. Serveurs séparés. Aidez-moi.

1
Hugh Lashbrooke

Après de nombreuses recherches et interrogations auprès de personnes beaucoup plus renseignées que moi, j'ai conclu que ceci est impossible principalement parce que cela nécessite deux connexions de base de données simultanées.

En fin de compte, ma solution SSO consistait à créer un système SSO plus traditionnel qui crée des utilisateurs sur le site distant en utilisant les données utilisateur du site principal. Il les met également à jour à chaque connexion pour s'assurer que les profils restent toujours à jour.

0
Hugh Lashbrooke

Je pense que c'est possible. En fait, j'essaie de le faire moi-même. Je suis un abonné premium récent de WPMUdev.org, et vous avez plusieurs sujets sur leurs forums d'assistance à ce sujet.

Bien que l’installation de Wordpress Multisite vous donne accès à cette option depuis le début, si vous avez plusieurs domaines, vous devez créer un réseau pour chacun d’eux, puis les "connecter" avec des plugins tels que Multi Domains, comme expliqué ici

Je n'ai pas été en mesure de le configurer correctement, donc entre-temps, j'ai expérimenté le plugin User Synchronization et celui-ci. est très utile car une fois que l'utilisateur est enregistré dans un blog, il est également enregistré sur le reste des blogs. L'inconvénient: vous devez toujours vous connecter sur chaque site que vous visitez.

J'aimerais ajouter une solution définitive, mais cela pourrait être un bon point de départ.

0
javipas