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

z/Linux上MQ v9.3配置MS AD LDAP认证时绑定AD失败求助

z/Linux平台MQ v9.3通过MS AD LDAPS认证绑定失败排查

首次在z/Linux平台配置MQ v9.3队列管理器,对接Microsoft AD LDAPS认证(AD仅接受安全连接),但第一步AD绑定即失败。

已执行操作

1. 配置AUTHINFO及队列管理器

在runmqsc中执行以下命令:

DEFINE AUTHINFO(LDAP.MSAD) +
AUTHTYPE(IDPWLDAP) +
ADOPTCTX(YES) +
DESCR('LDAP Connector to MSAD' ) +
CONNAME('msad.acme.com(636)') +
CHCKCLNT(OPTIONAL) +
CHCKLOCL(OPTIONAL) +                   
CLASSGRP('group') +
CLASSUSR('user') +                      
FAILDLAY(1) +
FINDGRP('member') +
BASEDNG('DC=msad,DC=acme,DC=com') +
BASEDNU('DC=msad,DC=acme,DC=com') +
LDAPUSER('CN=mybind,OU=ServiceAccounts,DC=msad,DC=acme,DC=com') +
LDAPPWD('my_supersecret_passw0rd') +
SHORTUSR('sAMAccountName') +              
GRPFIELD('cn') +
USRFIELD('sAMAccountName') +             
AUTHORMD(SEARCHUSR) +
NESTGRP(NO) +
SECCOMM(YES) +
REPLACE

ALT QMGR CONNAUTH(LDAP.MSAD)

2. 创建并配置密钥库

执行以下命令生成并配置key.kdb:

# 创建key.kdb
runmqakm -keydb -create -db key.kdb -pw passw0rd -type cms -stash

# 将CA根证书从PEM转DER格式
openssl x509 -in ./ca_root.pem -outform der -out ./ca_root.der

# 导入CA根证书到key.kdb
runmqakm -cert -add -db key.kdb -stashed -label "ACME Internal Root CA" -file ./ca_root.der -format ascii

# 确认证书已导入
runmqakm -cert -list -db key.kdb -stashed

3. 刷新安全配置

echo "REFRESH SECURITY" | runmqsc

错误日志(AMQERR01.LOG)

----- amqzfula.c : 3451 -------------------------------------------------------
09/04/2024 01:46:28 PM - Process(4100598.22) User(mqm) Program(amqzlaa0)
                    Host(myserver) Installation(Installation1)
                    VRMF(9.3.0.17) QMgr(MYQM)
                    Time(2024-09-04T20:46:28.479Z)
                    ArithInsert1(81)
                    CommentInsert1(ldap_simple_bind)
                    CommentInsert2(Can't contact LDAP server)
                    CommentInsert3(CN=mybind,OU=ServiceAccounts,DC=msad,DC=acme,DC=com )

AMQ5530E: Error from LDAP authentication and authorization service

EXPLANATION:
The LDAP authentication and authorization service has failed. The
'ldap_simple_bind' call returned error 81 : 'Can't contact LDAP server'.  The
context string is
'CN=mybind,OU=ServiceAccounts,DC=msad,DC=acme,DC=com
'. Additional code is 0.
ACTION:
Correct the LDAP configuration. Look at the LDAP server logs for additional
error information.
----- amqzfula.c : 3451 -------------------------------------------------------

已知信息

  • 绑定账号密码、根证书有效,同一服务器上的WAS和ldapsearch可正常使用
  • 无法访问AD服务器日志

排查方向及修复建议

  1. 确认密钥库路径与权限

    • MQ队列管理器默认从/var/mqm/qmgrs/<QMGR_NAME>/ssl/目录读取密钥库文件,需确保key.kdb、key.sth、key.rdb已复制到该目录,权限设置为mqm:mqm,权限位至少600。
    • 可通过dspmqver -f all确认MQ SSL配置路径,或手动指定SSLKEYR参数:
      ALTER QMGR SSLKEYR('/var/mqm/qmgrs/MYQM/ssl/key')
      
      注意此处仅需文件名前缀(去掉.kdb后缀),执行后刷新安全配置。
  2. 检查LDAPS连接兼容性

    • AD LDAPS通常要求TLS 1.2+,可在AUTHINFO中指定TLS版本:
      ALTER AUTHINFO(LDAP.MSAD) LDAP_OPTIONS('LDAP_OPT_PROTOCOL_VERSION=3,LDAP_OPT_X_TLS_PROTOCOL_MIN=TLS1_2')
      
    • 用openssl s_client -connect msad.acme.com:636 -CAfile ./ca_root.pem测试服务器连通性及证书信任情况,确保z/Linux服务器能访问AD的636端口。
  3. 验证绑定账号有效性

    • 用ldapsearch直接验证绑定:
      ldapsearch -x -H ldaps://msad.acme.com:636 -D "CN=mybind,OU=ServiceAccounts,DC=msad,DC=acme,DC=com" -w "my_supersecret_passw0rd" -b "DC=msad,DC=acme,DC=com" "(sAMAccountName=mybind)"
      
    • 确保绑定账号拥有读取AD用户、组信息的权限。
  4. 调整系统LDAP客户端配置

    • 检查/etc/openldap/ldap.conf或/etc/ldap/ldap.conf中的TLS配置,确保指定了正确的CA证书路径及符合要求的TLS版本。
    • 若系统配置冲突,可在AUTHINFO中直接指定CA文件路径:
      ALTER AUTHINFO(LDAP.MSAD) LDAP_OPTIONS('LDAP_OPT_X_TLS_CACERTFILE=/var/mqm/qmgrs/MYQM/ssl/ca_root.pem')
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 19:51:10