org_heigl/authldap

启用通过 LDAP 的 wordpress 认证

2.6.3 2024-08-15 08:34 UTC

README

Join the chat at https://gitter.im/heiglandreas/authLdap

使用您的现有 LDAP 作为 wordpress 的认证后端!

Build Status WordPress Stats WordPress Version WordPress testet Code Climate codecov

与其他 WordPress-LDAP 认证插件相比,有什么不同之处?

  • 灵活:您完全自由选择使用哪个 LDAP 后端。由于广泛的配置,您可以自由决定如何对用户进行认证。这完全取决于您的过滤器。
  • 独立:一旦用户登录,就会将其添加/更新到 WordPress 用户数据库中,以便 WordPress 总是使用正确的数据。您只需管理一次用户。
  • 安全:由于用户是在 WordPress 用户数据库中创建的,因此即使 LDAP 后端当前不可用,他们也可以登录。
  • 角色感知:您可以映射 WordPress 角色到现有 LDAP 属性的值。

插件是如何工作的?

事实上,这相当简单。插件会验证寻求认证的用户是否可以使用提供的密码绑定到 LDAP。

如果是这样,用户将在 WordPress 用户数据库中创建或更新。这次更新包括提供的密码(这样 WordPress 即使没有 LDAP 也可以认证用户)、根据 authLDAP 预设的用户名称以及根据 authLDAP 预设的组设置的用户状态。

如果没有 Alistair Young 的出色插件,编写此插件将不会像现在这样容易,他的插件可以在 http://www.weblogs.uhi.ac.uk/sm00ay/?p=45 找到。

配置

使用设置

  • 启用 LDAP 认证 是否要为登录启用 authLdap
  • 调试 authLdap 当您在使用 LDAP 认证时遇到问题时,您可以在此处启用调试模式。
  • 保存输入的密码 决定是否将密码缓存在您的 WordPress 安装中。注意:如果没有缓存,当您的 LDAP 不可用时,用户将无法登录您的网站!

服务器设置

  • LDAP Uri 这是您的 ldap 后端可以访问的 URI。更多信息请参阅配置页面。

  • 过滤器 这是真正的核心!您在这里定义的过滤器指定了如何找到用户。在应用过滤器之前,%s 将替换为给定的用户名。这意味着当用户使用“foobar”作为用户名登录时,以下操作会发生

    • uid=%1$s 检查是否有任何 LDAP 条目具有值为“foobar”的“uid”属性
    • (&(objectclass=posixAccount)(|(uid=%1$s)(mail=%1$s))) 检查是否有任何 LDAP 条目具有值为“posixAccout”的“objectclass”属性和具有值“foobar”的 UID 或邮件属性

    如果明智地使用,此过滤器非常强大。

创建用户

  • 名称属性 哪个 LDAP 属性包含尝试登录的用户的全名或第一个名字。默认为 name
  • 第二个名字属性 如果上面的名称属性只包含用户的第一个名字,您可以在此处指定一个包含第二个名字的属性。默认为空
  • 用户 ID 属性 此字段将用作 WordPress 的登录名。请提供用于识别用户的属性。这应该与您在上述过滤器选项中使用的相同。默认为 uid
  • 邮件属性 哪个属性持有用户的电子邮件地址?如果 LDAP 中存储了多个电子邮件地址,则仅使用提供的第一个。默认为 mail
  • Web-属性 如果您的用户在LDAP中存储了个人页面(URI),则可以在此处提供。该字段默认为空。

角色用户组

  • 组属性 这是定义可以与以下定义的组匹配的组-ID的属性。该字段默认为gidNumber。
  • 组过滤器 您可以在此处添加用于选择当前登录用户的组的过滤器。过滤器应包含字符串%s,它将被当前登录的用户名替换。

常见问题解答

我可以使用此插件更改用户的密码吗?
简短回答:不!
长回答:由于用户的凭证不仅用于WordPress站点进行LDAP身份验证,还用于许多其他服务,因此很可能有一个集中的地方可以更改密码。我们将在以后允许包含到这样一个地方的链接,但目前尚不可用。并且由于密码散列和存储位置需要比大多数用户和管理员愿意提供的更深入的了解LDAP服务器,因此更改密码超出了此插件的范围。如果您确切知道自己在做什么,可以查看问题54,其中描述了添加它的方法!
当用户在WordPress上创建用户账户时,我可以将其添加到LDAP中吗?
简短回答:不!
长回答:虽然技术上可行,但不在本插件的功能范围内。由于在LDAP中创建用户通常涉及已在您的部门管理中实施的行政流程,因此重新构建该过程——在大多数情况下是一个高度个性化的过程——在此插件中是没有意义的。如果您确切知道自己在做什么,可以查看问题65,其中wtfiwtz展示了如何实现该功能。