Каковы принятые форматы SECURITY_PRINCIPAL для аутентификации LDAP в Active Directory?

Я пытаюсь аутентифицировать пользователя через LDAP в Active Directory. Ниже приведен фрагмент кода, который я использую:

private DirContext bindAsUser(String bindPrincipal, String password) {
    Hashtable<String,String> env = new Hashtable<String,String>();
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, bindPrincipal);
    env.put(Context.PROVIDER_URL, bindUrl);
    env.put(Context.SECURITY_CREDENTIALS, password);
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.REFERRAL, "follow");

    try {
        return new InitialLdapContext(env, null);
    } catch (NamingException e) {
        e.printStackTrace()
    }
}

Код для привязки работает, если я предоставляю:

  • Имя входа в верхнем уровне, т.е. NetBIOSDomainName\sAMAccountName (например, домен\имя пользователя) или
  • userPrincipalName (например, [email protected]) или
  • distinguishedName (например, CN = имя пользователя, OU = xxx, DC = abc, DC = com) или
  • objectSid (например, S-1-5-21-3623811015-3361044348-30300820-1013)

как SECURITY_PRINCIPAL, пока он не сработал, если был использован sAMAccountName (например, имя пользователя) (я думаю, что только имена, которые являются уникальными в пределах леса, действительны).

Итак, каковы приемлемые шаблоны для SECURITY_PRINCIPAL? Я просмотрел несколько похожих вопросов, но ни один из них не содержит ссылок на официальные документы AD/LDAP. Или это конфигурация, которую я мог бы найти где-нибудь? Спасибо!

Ответы

Ответ 1

Из [MS-ADTS: Техническая спецификация Active Directory], я думаю, официальный документ для AD.

http://msdn.microsoft.com/en-us/library/cc223499.aspx

В разделе "5.1.1.1.1 Simple Authentication" перечислены все формы имен, поддерживаемые простой аутентификацией.

Ответ 2

Я думаю, вам нужно проверить основной шаблон LDAP. Он определяет основной шаблон аутентификации, необходимый вашему серверу LDAP. Основной шаблон аутентификации - это формат, в котором должна быть передана информация аутентификации для принципала безопасности (человека, который входит в систему) на сервер LDAP. Значение по умолчанию - ${email}, которое является форматом, необходимым для Microsoft Active Directory. Для других серверов LDAP требуются разные шаблоны аутентификации. Обратитесь к сетевому администратору, чтобы узнать больше о вашем сервере LDAP.