以下是设置的概述:


我有WordPress 3.4.2。的多站点安装。
我已经安装了Active Directory身份验证集成插件,以允许用户使用其广告凭据。这还允许将AD组分配给每个站点,这样站点管理员就不必手动分配权限。
我已经安装了Network Privacy插件,因此必须先登录某些站点才能看到任何站点。内容。匿名用户只看到登录页面。

在许多方面,此设置都有效。但是,我遇到一个问题,这使我无法将其推广到主要的WordPress多站点安装中:


Bob是AD中“ IT支持”组的成员。
Bob也是AD中“域用户”组的成员。
主站点(www.mysite.com)已被锁定,仅允许“ Domain Users”成员登录。
子站点(www.mysite.com/itsupport)被锁定,仅允许“ IT Support”成员登录。
鲍勃访问www.mysite.com并提示进行身份验证。他输入了他的AD凭据并被允许进入该网站。网站的成员。


似乎没有在此子站点的WordPress数据库中创建任何用户条目。


Bob注销www.mysite.com。
现在,他已注销,Bob会直接转到www.mysite.com/itsupport并提示进行身份验证。他输入了AD凭据并被允许进入该站点。


此时似乎已为此子站点在WordPress数据库中创建了用户条目。


现在,如果他注销并登录www.mysite.com,他就可以遍历itsupport站点而没有任何问题。

如果我删除了两个站点的Bob用户条目并禁用了Network Privacy插件,则Bob可以登录www.mysite.com,然后遍历itsupport站点。但是,如果我删除他的用户条目并重新启用Network Privacy插件,问题就会再次出现。

我对另一个隐私插件也遇到了同样的问题,尽管我不记得是哪个。
/>
如果您发现问题或设置了类似的设置,只要符合使用AD组并能够锁定某些站点的基本条件,我愿意尝试任何尝试。

评论

听起来像插件/边缘用例冲突。您是否已与插件开发人员联系过,是否支持外部用户数据库?

Damien-我已在论坛上记录了两个插件的支持项目。我只是在看是否可以挑剔那些以前可能已经解决过类似问题的人。我不认为隐私插件确实需要了解外部用户数据库,它只需要让AD插件执行其任务并将用户添加到内部WordPress数据库即可。不幸的是,隐私插件似乎正在阻碍这种方式。

你是怎么做到的?我正在为学校研究类似的实施方案。

听起来,AD似乎只回馈分配给该站点的组-如“嘿,这是IT站点,因此我仅要验证登录的帐户是IT组,而忽略该帐户。其他团体。”也许看看是否有一种方法可以使AD记住用户所属的所有组。

一个4岁的问题怎么能成为“未回答”的最顶端?这不再相关,因为两个链接的插件都已弃用。

#1 楼

尝试不同的方法。建议不要使用插件,而是按照以下答案中的描述对wordpress进行一些修改。

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

所以在您的情况下,您应该像这样设置wordpress安装:


mysite.com


root:* / domains / mysite.com / public_html
db:user_mysite
表前缀:root_


mysite.com/itsupport


root:* / domains / mysite。 com / public_html / itsupport
db:user_mysite
表前缀:itsupport_



除了我链接的答案中给出的配置以外,将以下内容添加到两个wordpress安装的wp-config文件中:

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


#2 楼

如果您有多站点安装,则应将IT技术支持站点切换到子域。

您可能遇到了Cookie登录不匹配的情况。由于它是在域的根目录设置的,因此两个站点都相同。因此,如果您设置了support.example.com,它应该比example.com/support

更加清晰,除非我完全误解了,在这种情况下,请尝试使用其他插件将内容限制为用户请勿将其作为子网站运行。