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

通过OpenAM在OpenDJ创建用户时遇未知objectclass inetadmin错误

解决OpenAM创建用户时LDAP错误码65(未知对象类inetadmin)问题

问题背景

使用OpenAM 12.0.0 + OpenDJ 2.6.0通过API创建用户时返回400错误,LDAP错误码65,OpenDJ日志显示条目包含未知对象类inetadmin。

原因分析

LDAP错误码65对应对象类违规,说明OpenAM在创建用户条目时自动附加了OpenDJ schema中不存在的inetadmin对象类。该对象类不属于OpenDJ标准schema,也不是OpenAM 12的默认用户对象类,通常由OpenAM身份库配置错误导致。

解决方案

1. 修正OpenAM身份库的用户对象类配置

  • 登录OpenAM管理控制台,导航至 配置 > 服务器和站点 > 你的OpenAM实例 > 身份库
  • 找到「用户对象类」或「默认对象类」配置项,检查是否包含inetadmin,将其从列表中移除
  • 若使用了用户模板,进入身份库 > 用户模板,同样删除模板中的inetadmin对象类
  • 保存配置后重新测试用户创建

2. 验证OpenDJ Schema(可选)

通过LDAP查询确认OpenDJ中无inetadmin定义:

ldapsearch -h opendj.example.com -p 389 -D "cn=Directory Manager" -w {你的管理员密码} -b "cn=schema" "(objectclass=subschema)" objectclasses | grep -i inetadmin

若返回空,说明该对象类确实不存在,必须从OpenAM配置中移除。

3. 临时应急:API请求中指定合法对象类

如果无法立即修改OpenAM配置,可在创建用户的API请求中明确指定OpenDJ支持的标准对象类,覆盖默认设置:

curl \
  --request POST \
  --header "iplanetDirectoryPro: AQIC5w...2NzEz*" \
  --header "Content-Type: application/json" \
  --data \
  '{
    "username": "dummyName",
    "userpassword": "secret12",
    "mail": "dummyName@example.com",
    "objectclass": ["top", "person", "organizationalPerson", "inetOrgPerson"]
  }' \
  http://openam.example.com:8080/openam/json/users/?_action=create

inetOrgPerson是OpenDJ默认支持的标准用户对象类,包含mail、userpassword等所需属性。

4. 排查自定义扩展(若上述方法无效)

如果配置中未找到inetadmin的引用,可能是自定义的OpenAM插件、认证模块或用户创建脚本强制添加了该对象类:

  • 检查OpenAM的认证 > 模块中的自定义配置
  • 查看脚本模块中是否有用户创建相关的脚本逻辑
  • 排查第三方扩展插件的影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:45:03