返回

MediaWiki LDAP 认证故障排除:如何解决“无法对 LDAP 认证凭据进行身份验证”错误?

php

# LDAP 认证故障排除:解决 "Could not authenticate credentials against "LDAP"" 错误

在使用 LDAP 进行 MediaWiki 用户认证时,您可能会遇到一个恼人的错误消息:"Could not authenticate credentials against domain "LDAP"". 这个问题可能是由一系列原因造成的,包括配置错误、连接问题或权限不足。在本文中,我们将深入探讨这些潜在原因,并提供分步指南来帮助您解决此错误并顺利配置 MediaWiki LDAP 认证。

检查配置

### LocalSettings.php

在您的 LocalSettings.php 文件中,确保已正确加载以下扩展:

  • LDAPProvider
  • LDAPAuthentication2
  • LDAPAuthorization
  • LDAPGroups
  • LDAPUserInfo
  • PluggableAuth

### LDAPProvider.json

仔细检查您的 LDAPProvider.json 文件,确保已正确配置以下设置:

  • 服务器
  • 用户
  • 密码
  • 基于 DN
  • 搜索属性
  • 用户名属性
  • 搜索字符串

语法必须正确,没有遗漏的逗号或语法错误。

测试连接

使用 MediaWiki 维护脚本 "CheckConnection" 测试您的 LDAP 连接。执行以下命令:

php maintenance/checkConnection.php LdapProvider

检查脚本是否成功运行,没有错误消息。

检查权限

确保 LDAP 服务帐户具有读取用户和组信息的权限。此外,如果启用了 LDAPAuthorization,请检查用户是否属于授权组。

日志检查

启用 MediaWiki 日志记录并检查日志文件以查找错误消息。日志可以提供有关连接问题或认证失败的更多信息。

LDAP 和 Azure/Entra 的比较

除了 LDAP,您还可以考虑使用 Azure/Entra 进行用户认证。以下是这两个平台的比较:

### 易用性

Azure/Entra 通常比 LDAP 更易于设置和管理。

### 成本

Azure/Entra 可能需要付费,而 LDAP 则通常是免费的。

### 安全性

Azure/Entra 被认为比 LDAP 更安全,因为它提供了额外的身份验证和授权功能。

### 集成

Azure/Entra 与 Microsoft 生态系统无缝集成,而 LDAP 则需要与其他身份提供程序进行集成。

最终,最佳选择取决于您的特定需求和偏好。如果需要更简单的设置过程和更高的安全性,Azure/Entra 可能是更好的选择。但是,如果您需要更灵活的控制和不想支付额外费用,LDAP 仍然是一个可行的选项。

结论

通过遵循本文中概述的步骤,您应该能够解决 "Could not authenticate credentials against domain "LDAP"" 错误并成功配置 MediaWiki LDAP 认证。请记住,仔细检查配置、测试连接、检查权限和分析日志对于排除故障至关重要。

常见问题解答

1. 我已完成所有步骤,但仍然收到错误消息。怎么办?

  • 检查您的防火墙设置,确保 LDAP 服务器的端口未被阻止。
  • 尝试重新启动 MediaWiki 服务。
  • 联系您的 LDAP 管理员以获取进一步的帮助。

2. 我想禁用 LDAP 认证。如何操作?

  • 在您的 LocalSettings.php 文件中,将以下扩展的注释取消:
# LDAPProvider
# LDAPAuthentication2
# LDAPAuthorization
# LDAPGroups
# LDAPUserInfo
# PluggableAuth

3. 如何使用 LDAP 进行单点登录 (SSO)

  • 启用 LDAPAuthorization 扩展并配置映射以将 LDAP 组映射到 MediaWiki 组。
  • 在您的 LDAP 服务器上配置 SPNEGO/Kerberos 以进行 SSO。

4. LDAP 认证和 SAML 认证有什么区别?

  • LDAP 认证直接连接到 LDAP 服务器,而 SAML 认证使用第三方身份提供程序进行认证。
  • LDAP 通常更简单,而 SAML 提供更高级别的安全性。

5. 如何优化 LDAP 认证的性能?

  • 使用 LDAP 服务器上的索引。
  • 使用 LDAP 连接池。
  • 启用 MediaWiki 的 memcached 或 Redis 缓存。