【问题标题】:Unable to access created user INTO AD无法访问创建的用户 INTO AD
【发布时间】:2020-10-05 14:03:59
【问题描述】:

我正在尝试使用 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

【问题讨论】:

  • 请提供有关此问题的更新..

标签: java cucumber redhat bdd


【解决方案1】:

在我通过 LDAP 使用 Active Directory 的(短期)经验中,“DSID-031A1236”代码表示您的 LDAPS(LDAP over SSL / TLS)配置存在问题。通过 LDAP 更改 AD 密码需要 LDAPS。

LDAP 错误消息没有用(“DSID-031A1236”???),可能会令人困惑(“问题 5003”指的是密码策略限制,事实并非如此)甚至是粗鲁的(“WILL_NOT_PERFORM”,NO NO NO!),但是有几次我遇到这个特定错误的解决方案总是与 SSL 有关:无效的证书、网络负载平衡器“冒充”为 SSL 但重新路由到普通 LDAP 端口等。

如果您需要对 AD 服务器进行更改,https://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx 上的一些文档可能对您有用

【讨论】:

    猜你喜欢
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2023-03-19
    • 2020-10-03
    • 1970-01-01
    • 2016-08-01
    相关资源
    最近更新 更多