web-dev-qa-db-fra.com

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

Voici l'aperçu de la configuration:

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

À bien des égards, cette configuration fonctionne. Cependant, j'ai un problème qui m'empêche de l'installer dans notre installation primaire WordPress multi-site:

  • Bob est membre du groupe "Support informatique" dans AD.
  • Bob est également membre du groupe "Utilisateurs du domaine" dans AD.
  • Le site principal (www.monsite.com) est verrouillé pour autoriser uniquement les membres "Domain Users" à se connecter.
  • Le sous-site (www.monsite.com/itsupport) est verrouillé pour permettre uniquement aux membres "IT Support" de se connecter.
  • Bob visite www.monsite.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é à www.monsite.com, Bob clique sur le lien pour aller à www.monsite.com/itsupport et reçoit une erreur indiquant qu'il n'est pas membre du site.
    • Il semble qu'aucune entrée d'utilisateur n'ait été créée dans la base de données WordPress pour ce sous-site.
  • Bob se déconnecte de www.monsite.com.
  • Maintenant qu'il est déconnecté, Bob se connecte directement à l'adresse www.monsite.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.monsite.com, il peut accéder au site itsupport sans problème.

Si je supprime les entrées utilisateur de Bob pour les deux sites et que je désactive le plug-in Network Privacy, il est possible de se connecter à www.monsite.com, puis de passer au site itsupport. Mais si je supprime ses entrées d'utilisateur et réactivez le plug-in Network Privacy, le problème réapparaît.

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

Si vous pouvez repérer le problème ou si vous avez configuré quelque chose de similaire, je suis prêt à tout, tant que je remplis les critères de base d'utilisation de groupes AD et de possibilité de verrouiller certains sites.

19
Phil Erb

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.

https://stackoverflow.com/a/39195424/3157038

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

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

en plus de la configuration donnée dans la réponse à laquelle je suis 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' );
1
Fleuv

Si vous avez une installation multi-site, vous devez basculer votre site du 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 est identique 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 bien tout à fait, dans ce cas, essayez un autre plug-in pour limiter le contenu à l'utilisateur et ne l'exécutez pas en tant que sous-site.

0
keepkalm