You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch集群集成AD后持续出现认证失败警告的解决咨询

解决Elasticsearch AD集成后持续出现的LDAP认证失败警告

首先明确日志里的关键错误信息:resultCode=49 (invalid credentials) 伴随 data 52e,这是Active Directory返回的标准错误码,含义是用户名不存在、密码错误,或者用户没有权限通过该方式认证。结合你的场景(AD用户可正常登录、Logstash导入正常),警告的核心原因是:部分认证请求被AD realm优先处理,但这些请求的用户并非AD用户(比如你之前创建的Logstash自定义内置用户),AD realm认证失败后,请求会 fallback 到内置native realm完成认证,所以业务正常但警告持续输出。

以下是具体排查和解决步骤:

1. 调整认证realm的顺序配置

Elasticsearch会按realm配置的顺序尝试认证,如果你把AD realm放在了native(内置用户)realm前面,所有认证请求都会先经过AD realm校验。比如Logstash使用的内置用户在AD中不存在,就会触发警告。

检查elasticsearch.yml中的xpack.security.authc.realms配置,把native放在active_directory前面:

xpack.security.authc.realms:
  native.native1:
    order: 0
  active_directory.ad1:
    order: 1
    # 你的AD其他配置
    domain_name: your-domain.com
    bind_dn: CN=bind-user,OU=Users,DC=your-domain,DC=com
    bind_password: your-bind-password

2. 限制AD realm处理的用户范围

如果不想调整realm顺序,可以给AD realm添加用户过滤规则,只处理AD域内的用户,避免对内置用户进行认证:

xpack.security.authc.realms.active_directory.ad1:
  # 其他配置
  user_search.filter: "(objectClass=user)"
  # 或者限定特定OU下的用户
  user_search.base_dn: OU=ES-Users,DC=your-domain,DC=com

3. 定位发起认证请求的具体用户

如果调整realm配置后警告仍存在,需要确认是哪个用户发起的失败请求:

  • 开启Elasticsearch的审计日志,在elasticsearch.yml中添加:
    xpack.security.audit.enabled: true
    xpack.security.audit.logfile.events: authentication_success, authentication_failure
    
    重启节点后,查看logs/elasticsearch_audit.log,里面会记录失败认证的用户名、客户端IP等信息,精准定位问题来源。

4. 排查AD realm自身的绑定凭据

虽然AD用户能正常登录,仍需确认AD realm的绑定用户(bind_dn和bind_password)是否有效:

  • 验证绑定用户的密码是否过期或被锁定
  • 用ldapsearch工具测试绑定是否正常:
    ldapsearch -x -H ldap://your-ad-server:389 -D "CN=bind-user,OU=Users,DC=your-domain,DC=com" -w "bind-password" -b "DC=your-domain,DC=com" "(sAMAccountName=test-ad-user)"
    

5. 确认节点间通信的认证方式

虽然你启用了节点间TLS,需确保节点间是通过证书而非用户名密码认证:

  • 检查elasticsearch.yml中的配置:
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.key: certs/node-key.pem
    xpack.security.transport.ssl.certificate: certs/node-cert.pem
    xpack.security.transport.ssl.certificate_authorities: certs/ca.pem
    
    确保没有配置xpack.security.transport.ssl.username和xpack.security.transport.ssl.password,避免节点间错误地尝试用户名密码认证。

内容的提问来源于stack exchange,提问作者Umang Pachaury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 01:45:18