如何解决无法访问创建的用户INTO AD
我正在尝试使用Spring Boot将用户创建到Active Directory中,该用户已创建,但无法访问该创建的用户。用户创建代码如下:
protected void createUsersAD(String userName,String orgName){
Name dn = buildUserDnn(userName);
DirContextAdapter context = new DirContextAdapter(dn);
context.setAttributeValues("objectclass",new String[] { "top","person","organizationalPerson","inetOrgPerson" });
context.setAttributeValue("cn",userName);
if (orgName != "")
context.setAttributeValue("ou",orgName);
context.setAttributeValue("givenName",userName);
context.setAttributeValue("displayName",userName);
context.setAttributeValue("name",userName);
context.setAttributeValue("userPrincipalName",userName+"@"+config.getDomainName());
String newQuotedPassword = "\"" + password + "\"";
byte[] newUnicodePassword = newQuotedPassword.getBytes("UTF-16LE");
context.setAttributeValue("unicodePwd",newUnicodePassword);
//context.setAttributeValue("userAccountControl",Integer.toString(512));
//context.setAttributeValue("sAMAccountName",userName);
ldapTemplate.bind(context);
LOGGER.debug("User created successfully INTO AD.");
}
使用相同的代码,我可以将用户创建到LDAP中,也可以访问该用户。
当我与用户配对时,我发现userAccessControl被设置为546,这意味着(546(十进制)的值是十六进制的0x222,意味着:普通帐户,已禁用,不需要密码。)
我试图设置userAccountControl的值,但出现错误:
EXCEPTION ====== org.springframework.ldap.OperationNotSupportedException:[LDAP:错误代码53-0000052D:SvcErr:DSID-031A1236,问题5003(WILL_NOT_PERFORM),数据0
遇到错误:
2020-10-05 19:10:26.167 DEBUG 12304 --- [o-auto-1-exec-4] c.a.c.security.JwtAuthenticationFilter : JwtAuthenticationFilter attemptAuthentication authenticationToken com.atos.config.security.SelfServiceUserPasswordAuthToken@e3ac519c: Principal: cucumber_customer_admin_multi; Credentials: [PROTECTED]; Authenticated: false; Details: null; Not granted any authorities
2020-10-05 19:10:26.167 DEBUG 12304 --- [o-auto-1-exec-4] c.a.c.security.JwtAuthenticationFilter : JwtAuthenticationFilter authenticationManager used class com.atos.config.security.SelfServiceAuthenticationManager
2020-10-05 19:10:26.168 INFO 12304 --- [o-auto-1-exec-4] c.a.c.s.SelfServiceAuthenticationManager : authenticate called
2020-10-05 19:10:26.169 DEBUG 12304 --- [o-auto-1-exec-4] ctiveDirectoryLdapAuthenticationProvider : Processing authentication request for user: cucumber_customer_admin_multi
2020-10-05 19:10:26.450 DEBUG 12304 --- [o-auto-1-exec-4] ctiveDirectoryLdapAuthenticationProvider : Authentication for cucumber_customer_admin_multi@amosonline.io failed:javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090436,comment: AcceptSecurityContext error,data 52e,v4563
解决方法
根据我通过 LDAP 使用 Active Directory 的(简短)经验,“DSID-031A1236”代码意味着您的 LDAPS(LDAP over SSL / TLS)配置存在问题。通过 LDAP 更改 AD 密码需要 LDAPS。
LDAP 错误消息没有用(“DSID-031A1236”???),可能会令人困惑(“问题 5003”指的是密码策略约束,事实并非如此)甚至是粗鲁的(“WILL_NOT_PERFORM”,NO不不!),但有几次我遇到了这个特定错误,解决方案总是与 SSL 相关:证书无效、网络负载平衡器“冒充”为 SSL 但重新路由到普通 LDAP 端口等。>
如果您需要对 AD 服务器进行更改,https://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx
上的一些文档可能很有用版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。