Невозможно получить доступ к созданному пользователю В AD

#java #cucumber #redhat #bdd

#java #огурец #redhat #bdd

Вопрос:

Я пытаюсь создать пользователя в Active Directory с помощью spring boot, пользователь создается, но я не могу получить доступ к этому созданному пользователю. Код создания пользователя выглядит следующим образом:

 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 hex и означает: обычная учетная запись, отключена, пароль не требуется.)

Я попытался установить значение userAccountControl, но получил сообщение об ошибке:

ИСКЛЮЧЕНИЕ ======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
  

Комментарии:

1. Пожалуйста, предоставьте обновления по этой проблеме..

Ответ №1:

По моему (короткому) опыту работы с Active Directory через LDAP код «DSID-031A1236» означает, что существует проблема с вашей конфигурацией LDAP (LDAP через SSL / TLS). Для изменения паролей AD через LDAP требуются LDAP.

Сообщение об ошибке LDAP бесполезно («DSID-031A1236» ???), может сбивать с толку («проблема 5003» относится к ограничениям политики паролей, что не так) и даже вызывающе («WILL_NOT_PERFORM», НЕТ, НЕТ, НЕТ!), Но пару раз, когда явстречал эту конкретную ошибку, решение всегда было связано с SSL: недействительный сертификат, балансировщик сетевой нагрузки, «выдающий» себя за SSL, но перенаправляющий на обычные порты LDAP и т. Д.

Если вам нужно внести изменения в сервер AD, есть некоторая документация, которая может быть полезна на https://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx