Intégration de WordPress MultiSite Active Directory et confidentialité du site


19

Voici l'aperçu de la configuration:

  • J'ai une installation multisite de WordPress 3.4.2.
  • J'ai installé le plug-in d' intégration de l'authentification Active Directory pour permettre aux utilisateurs d'utiliser leurs informations d'identification AD. Cela permet également d'affecter des groupes AD à chaque site, afin que les administrateurs de site n'aient pas à attribuer manuellement des autorisations.
  • J'ai installé le plugin Network Privacy , de sorte que certains sites doivent être connectés avant que vous puissiez voir le contenu. Les utilisateurs anonymes ne voient que la page de connexion.

À bien des égards, cette configuration fonctionne. J'ai cependant un problème, qui m'empêche de déployer cela vers notre installation principale multi-site WordPress:

  • Bob est membre du groupe "IT Support" d'AD.
  • Bob est également membre du groupe "Utilisateurs du domaine" dans AD.
  • Le site principal (www.mysite.com) est verrouillé pour permettre uniquement aux " Domain Users" membres de se connecter.
  • Le sous-site (www.mysite.com/itsupport) est verrouillé pour permettre uniquement aux " IT Support" membres de se connecter.
  • Bob visite www.mysite.com et est invité à s'authentifier. Il entre ses informations d'identification AD et est autorisé à accéder au site.
  • Maintenant qu'il est connecté sur www.mysite.com, Bob clique sur le lien pour accéder à www.mysite.com/itsupport et reçoit une erreur indiquant qu'il n'est pas membre du site.
    • Il semble qu'aucune entrée utilisateur n'ait été créée dans la base de données WordPress pour ce sous-site.
  • Bob se déconnecte de www.mysite.com.
  • Maintenant qu'il est déconnecté, Bob accède directement à www.mysite.com/itsupport et est invité à s'authentifier. Il entre ses informations d'identification AD et est autorisé à accéder au site.
    • Il semble que l'entrée utilisateur dans la base de données WordPress soit créée à ce stade pour ce sous-site.
  • Maintenant, s'il se déconnecte et se connecte à www.mysite.com, il peut accéder au site itsupport sans aucun problème.

Si je supprime les entrées utilisateur de Bob pour les deux sites et que je désactive le plugin Network Privacy, Bob peut se connecter à www.mysite.com, puis accéder au site itsupport. Mais si je supprime ses entrées utilisateur et réactive le plugin Network Privacy, le problème réapparaît.

J'ai eu le même problème avec un autre plugin de confidentialité, bien que je ne me souvienne plus lequel.

Si vous pouvez détecter le problème ou si vous avez configuré quelque chose de similaire, je suis prêt à tout essayer, tant que je réponds aux critères de base de l'utilisation des groupes AD et de la possibilité de verrouiller certains sites.


Cela ressemble à un conflit de cas d'utilisation plugin / bord. Avez-vous vérifié auprès du développeur du plugin s'il prend en charge les bases de données d'utilisateurs externes?
Damien

Damien - J'ai enregistré des éléments de support dans les forums pour les deux plugins. Je vois juste si je peux choisir les cerveaux de ceux qui ont peut-être déjà abordé quelque chose de similaire. Je ne crois pas que le plugin de confidentialité ait vraiment besoin de connaître les bases de données d'utilisateurs externes, il suffit de laisser le plugin AD faire son travail et d'ajouter l'utilisateur à la base de données WordPress interne. Malheureusement, le plugin de confidentialité semble y faire obstacle.
Phil Erb du

2
Comment avez-vous suivi cela? Im recherche une implémentation similaire pour une école.
orionrush

1
Il semble que AD redonne uniquement le groupe affecté à ce site - comme dans "Hé, c'est le site informatique, donc je vais seulement vérifier que la connexion au compte est le groupe informatique et ignorer le d'autres groupes. " Peut-être voir s'il existe un moyen pour que AD se souvienne de tous les groupes auxquels appartient un utilisateur.
phatskat

1
Comment une question de 4 ans peut-elle être tout en haut de Sans réponse? Ce n'est même plus pertinent puisque les deux plugins liés sont obsolètes.
Athoxx

Réponses:


1

Essayez une approche différente. Au lieu d'utiliser des plugins, je suggère de modifier un peu wordpress comme décrit dans la réponse suivante.

/programming//a/39195424/3157038

Donc, dans votre cas, vous devez configurer les installations wordpress comme ceci:

  • mysite.com
    • racine: * / domaines / mysite.com / public_html
    • db: user_mysite
    • préfixe de table: root_
  • mysite.com/itsupport
    • racine: * / domaines / mysite.com / public_html / itsupport
    • db: user_mysite
    • préfixe de table: itsupport_

qu'en plus de la configuration donnée dans la réponse à laquelle j'ai lié, ajoutez ce qui suit aux fichiers wp-config des deux installations wordpress:

define( 'CUSTOM_USER_TABLE', 'mysite_users );
define( 'CUSTOM_USER_META_TABLE', 'mysite_usermeta' );

0

Si vous avez une installation multisite, vous devez basculer votre site de support technique IT vers un sous-domaine.

Vous rencontrez probablement une incompatibilité de connexion de cookie. Comme il est défini à la racine du domaine, il en est de même pour les deux sites. Donc, si vous configurez support.example.com, cela devrait être plus clair que example.com/support

À moins que je ne comprenne complètement, dans ce cas, essayez un autre plugin pour restreindre le contenu à l'utilisateur et ne l'exécutez pas en tant que sous-site.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.