正常情况LDAP返回的错误信息一般是下面这个样子的:

“The exception is [ LDAP: error code 49 - 80090308: LdapErr: DSID-0Cxxxxxx , comment: AcceptSecurityContext error, data xxx , vece ].”

或者是这个样子的:

“errorMessage:80090308:ldaperr:DSID-0Cxxxxxx , comment: AcceptSecurityContext error, data xxx , vece ].”

只要LDAP返回了上面的错误信息,就表示LDAP认证被拒绝了,接下来我们就需要根据上面的错误信息分析认证失败原因。

首先了解一下AD的错误信息代码结构,AD指令错误代码是一段在"data"之后并在"vece"或者"v893"这样文字之前的一段字符。并且这些错误代码伴随着BIND绑定过程返回,所以上面抓包的错误码就是“531”。

常见的错误代码解释如下:

525—用户不存在

52e—密码或凭据无效

530—此时不允许登录

531—在此工作站上不允许登录

532—密码过期

533—账户禁用

701—账户过期

773—用户必须重置密码

775—用户账户锁定

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 525 , v893,

在上面错误信息里面,错误码是525,该数值是十六进制,表示用户不存在 ,对应的十进制是1317,微软活动目录给出的解释:ERROR_NO_SUCH_USER (指定的账户不存在.) 当用户名无效时返回此错误;

解决办法:检查帐号在AD上是否存在,如果使用EIA认证,EIA会直接提示“LDAP上没有该用户”;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 52e, v893 ;从报错语句看到错误代码是十六进制: 0x52e ,表示无效的凭证;对应的十进制是1326,表示ERROR_LOGON_FAILURE (登录失败,未知的用户名或者密码错误.) ,一般当用户名有效但是密码或者凭证无效的时候返回。

解决办法:确认域帐号密码是否正确;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 530, v893 ;错误代码对应的十六进制:是 0x530 ,表示该时间点禁止登录;对应的十进制数值是1328,微软解释:ERROR_INVALID_LOGON_HOURS (登录失败,登录时间违规.) 。仅当输入了正确的用户名和密码或凭证时才返回此值,说明用户被禁止登录了。

解决办法:检查AD侧配置的登录时间或者取消登录时间限制;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 531, v893 ;错误代码对应的十六进制是0x531,表示此用户禁止在当前工作站登录,对应的十进制是1329,微软解释: ERROR_INVALID_WORKSTATION (登录失败,在此计算机上该用户不允许登录.) LDAP[userWorkstations: ] ,仅当输入了正确的用户名和密码或凭证时才返回此值。出现此问题一般是用户限定了登录的计算机,可以查看AD是否配置了下图的登录工作站选项。

解决办法:取消登录工作站限制;如果是采用EIA认证,EIA对这种错误会采取放行处理,即即使AD返回了531错误,EIA也会给接入设备返回Code 2号认证通过报文;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 532, v893;错误码对应的十六进制: 0x532 – 表示密码过期
十进制: 1330 - ERROR_PASSWORD_EXPIRED (登录失败,指定的账户密码过期.)
LDAP[userAccountControl: <bitmask=0x00800000>] - PASSWORDEXPIRED 仅当输入了正确的用户名和密码或凭证时才返回此值。

解决办法:重置域帐号密码;如果是采用EIA认证,EIA对这种错误会采取放行处理,即即使AD返回了532错误,EIA也会给接入设备返回Code 2号认证通过报文;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 533, v893 ;错误码对应的十六进制: 0x533 - 账户被禁用
十进制: 1331 - ERROR_ACCOUNT_DISABLED (登录失败,账户当前被禁用了.) ;LDAP[userAccountControl: <bitmask=0x00000002>] - ACCOUNTDISABLE ,当输入了正确的用户名和密码或凭证时才返回此值。

解决办法:取消禁用帐号选项;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 701, v893;错误码对应的十六进制: 0x701 - 账户已过期

对应的十进制: 1793 - ERROR_ACCOUNT_EXPIRED (用户账户已过期.) LDAP[accountExpires: <value of -1, 0, or extemely large value indicates account will not expire>] - ACCOUNTEXPIRED ,当输入了正确的用户名和密码或凭证时才返回此值。

解决办法:调整帐号的失效时间;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 773, v893;对应的十六进制: 0x773 - 账户密码必须被重置
十进制: 1907 - ERROR_PASSWORD_MUST_CHANGE (用户密码在第一次登录之前必须修改.);LDAP[pwdLastSet: <value of 0 indicates admin-required password change>] - MUST_CHANGE_PASSWD ,只有输入了正确的用户名和密码或凭证时才返回此值。

解决办法:在AD侧修改帐号密码;如果是采用EIA认证,EIA对这种错误会采取放行处理,即即使AD返回了773错误,EIA也会给接入设备返回Code 2号认证通过报文;

LDAP抓包返回如下错误

80090308: LdapErr: DSID-0C09030B, comment: AcceptSecurityContext error, data 775, v893
十六进制: 0x775 ,表示账户被锁定
十进制: 1909 - ERROR_ACCOUNT_LOCKED_OUT (账户当前已被锁定,不允许登录The referenced account is currently locked out and may not be logged on to.) LDAP[userAccountControl: <bitmask=0x00000010>] - LOCKOUT ,需要注意的是即便是输入了错误的密码也可能返回此值。

解决办法:确认帐号是否被锁定或者密码是否错误。

最近一个项目需要调用AD域来进行用户名登陆的验证.第一次接触AD域,什么都不懂,就百度.搜索到了几篇优质资源,现在分享出来.旨在方便开发小白解决问题(如有侵权还请联系删除) 按顺序贴的.先是理论,然后是解决办法.如果只想解决问题,那么可以直接跳到最后.如果想学习,可以按顺序浏览. 域服务器的简单介绍: https://blog.csdn.net/qq_37 49 7275/article/details/101554114 认证 – LDAP 错误 代码 49 80090308 Ldap Err:DSID-0C0
本文出处:http://blog.csdn.net/chaijunkun/article/details/23695001,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。 本篇文章节选翻译自:http://www-01.ibm.com/support/docview.wss?uid=swg21290631 接下来显示的认证 错误 类似于...
========================================================================= javax.naming.AuthenticationException: [ LDAP : error code 49 - 80090308 : Ldap Err: DSID-0C090334, comment: AcceptSecurityContext error , data 52e, vece 原因:用户名或密码 错误 (可能账户的
ldap 访问AD域的的 错误 一般会如下格式: Ldap load error : [ LDAP : error code 49 - 80090308 : Ldap Err: DSID-0C090334, comment: AcceptSecurityContext error , data525, vece] 其中红字部分的意思如下(这些 错误 码跟语言无关): 525 - 用户没有找到 52e - 证书
javax.naming.AuthenticationException: [ LDAP : error code 49 - Invalid Credentials] at com.sun.jndi. ldap . Ldap Ctx.map Error Code ( Ldap Ctx.java:3154) at com.sun.jndi. ldap . Ldap Ctx.processReturn Code ( Ldap Ctx....
ldap 方式访问AD域的的 错误 一般会如下格式: LDAP : error code 49 - 80090308 : Ldap Err: DSID-0C090334, comment: AcceptSecurityContext error , data 52e, vece 其中红字部分的意思如下: 525...
ldap 访问AD域的的 错误 一般会如下格式: Ldap load error : [ LDAP : error code 49 - 80090308 : Ldap Err: DSID-0C090334, comment: AcceptSecurityContext error , data 525, vece] 其中红字部分的意思如下(这些 错误 码跟语言无关): 525 - 用户...
LDAP 帐号常见异常信息列表 Here is a list of Active Directory error s:   525 - user not found                用户不存在  52e - invalid credentials            用户验证密码 错误 530 - not permitted to logon at this time