我们在大学解决了这种情况。WP 的设置/配置确实取决于您的要求。例如,这是我们的一个用例,我认为它可以回答您的问题。我们使用多站点(子域)WP。一般要求:
- 允许公开访问一个博客的所有站点内容,除了控制台 (/wp-admin)
- 控制台身份验证:ldap、本地身份验证或 shibboleth
我们编写了自己的 Shibboleth 插件,它是 WP Shibboleth 插件的简化版本,专门针对我们的用例。我们还编写了自己的 WP ldap auth 插件(我们不喜欢现有的 ldap 插件)。当用户尝试访问控制台时,系统会提示他们登录页面。登录页面由一个表单(本地或 ldap auth 的用户名/密码)和一个 Shibboleth 用户的链接组成。允许用户使用三种身份验证系统中的任何一种访问 WP 控制台。
这一切的关键是我们的 shibboleth 插件。我们的插件不强制/要求 shibboleth 身份验证。如果用户未通过 Shibboleth 进行身份验证,则 Shibboleth 插件返回失败;并且 WP 尝试使用其他身份验证方法对用户进行身份验证,例如本地/WP auth。Shibboleth 身份验证由用户在登录页面中使用 Shibbolized 登录链接(基本上是一个惰性会话 url)发起。