Інтеграція WordPress MultiSite Active Directory та конфіденційність сайту


19

Ось огляд налаштування:

  • У мене є багатомісна інсталяція WordPress 3.4.2.
  • Я встановив плагін Active Directory Authentication Integration, щоб дозволити користувачам використовувати свої облікові дані AD. Це також дозволяє призначити групи AD кожному сайту, так що адміністраторам сайтів не потрібно вручну призначати дозволи.
  • Я встановив плагін " Конфіденційність мережі" , тому певні сайти повинні бути ввійшли до системи, перш ніж ви зможете побачити будь-який вміст. Анонімні користувачі бачать лише сторінку входу.

Багато в чому це налаштування працює. Однак у мене є одна проблема, яка перешкоджає розгортанню цього завдання до нашої основної установки на багато сайтів WordPress:

  • Боб є членом групи "ІТ-підтримка" в AD.
  • Боб також є членом групи "Користувачі домену" в AD.
  • Основний сайт (www.mysite.com) заблокований, щоб дозволити лише учасникам " Domain Users" входити в систему.
  • Підсайт (www.mysite.com/itsupport) заблокований, щоб дозволити учасникам " IT Support" входити лише у нього.
  • Боб відвідує www.mysite.com і йому запропоновано підтвердити автентифікацію. Він вводить свої облікові дані AD і його допускають до сайту.
  • Тепер, коли він увійшов на www.mysite.com, Боб натискає посилання, щоб перейти на www.mysite.com/itsupport і отримує помилку, що він не є учасником сайту.
    • Здається, що в цій базі даних WordPress для цього під-сайту не створено жодної записи користувача.
  • Боб виходить із www.mysite.com.
  • Тепер, коли він вийшов, Боб переходить безпосередньо до www.mysite.com/itsupport і запитується на аутентифікацію. Він вводить свої облікові дані AD і його допускають до сайту.
    • Здається, що цей запис користувача в базі даних WordPress створюється в цей момент для цього під-сайту.
  • Тепер, якщо він вийде і ввійде на сайт www.mysite.com, він може без проблем перейти на сайт його підтримки.

Якщо я видаляю записи користувачів Боба для обох сайтів і відключаю плагін Network Privacy, Боб зможе увійти на сторінку www.mysite.com, а потім перейти на сайт його підтримки. Але якщо я видаляю його записи користувачів та повторно включаю плагін Network Privacy, проблема знову з’являється.

У мене була така ж проблема з ще одним плагіном конфіденційності, хоча я не можу згадати, який саме.

Якщо ви можете виявити проблему або у вас налаштоване щось подібне, я готовий спробувати все, доки я відповідаю основним критеріям використання груп AD та можливості блокувати певні сайти.


Це звучить як конфлікт випадку використання додатка / краю. Ви перевірили у розробника плагіна, чи підтримує він зовнішні бази даних?
Демієн

Damien - я записав елементи підтримки на форумах для обох плагінів. Я просто бачу, чи можу я забрати мізки тим, хто, можливо, вирішував щось подібне раніше. Я не вірю, що плагіну конфіденційності дійсно потрібно знати про бази даних зовнішніх користувачів, він просто повинен дозволити плагіну AD зробити все, що потрібно, і додати користувача до внутрішньої бази даних WordPress. На жаль, начебто плагін конфіденційності стає на шляху до цього.
Філ Ерб

2
Як ти став із цим? Я досліджую подібну реалізацію для школи.
orionrush

1
Це майже здається, що AD лише повертає групу, призначену для цього сайту - як, наприклад, "Ей, це ІТ-сайт, тому я лише хочу перевірити, що вхід в обліковий запис - це ІТ-група, і ігнорувати інші групи ". Можливо, подивіться, чи існує спосіб змусити AD запам’ятати всі групи, до яких належить користувач.
phatskat

1
Як питання 4 років може бути в самій вершині без відповіді? Це навіть не актуально, оскільки обидва пов'язані плагіни застаріли.
Athoxx

Відповіді:


1

Спробуйте інший підхід. Замість використання плагінів пропоную трохи змінити wordpress, як описано в наступній відповіді.

/programming//a/39195424/3157038

Тож у вашому випадку слід встановити установки WordPress таким чином:

  • mysite.com
    • root: * / domeins / mysite.com / public_html
    • db: user_mysite
    • префікс таблиці: root_
  • mysite.com/itsupport
    • root: * / domeins / mysite.com / public_html / itsupport
    • db: user_mysite
    • префікс таблиці: itsupport_

ніж на додаток до конфігурації, наведеної у відповіді, до якої я посилався, додайте наступне до файлів wp-config обох установок Wordpress:

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

0

Якщо у вас установка на декількох сайтах, вам слід переключити свій веб-сайт із технічної підтримки IT на піддомен.

Напевно, у вас є невідповідність реєстрації файлів cookie. Оскільки він встановлений у корені домену, він однаковий для обох сайтів. Отже, якщо ви налаштуєте support.example.com, він повинен бути зрозумілішим, ніж example.com/support

Якщо я повністю не розумію, у такому випадку спробуйте інший плагін, щоб обмежити вміст користувачем і не запускати це як під-сайт.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.