Поделиться через


Настройка и изменение паролей пользователей с помощью поставщика LDAP

Чтобы задать пароль пользователя, используйте метод IADsUser.SetPassword .

Поставщик LDAP для Active Directory использует один из трех процессов для задания пароля (сторонние каталоги LDAP, такие как iPlanet, не используют этот процесс проверки подлинности паролей). Метод может отличаться в зависимости от конфигурации сети. Методы набора паролей выполняются в следующем порядке:

  • Во-первых, поставщик LDAP пытается использовать Kerberos.
  • Во-вторых, если Kerberos не удается, поставщик LDAP пытается установить безопасное подключение LDAP. Для успешной работы безопасного протокола LDAP сервер LDAP должен иметь соответствующий сертификат проверки подлинности сервера, а клиенты, работающие с кодом ADSI, должны доверять центру, выдаваемого этими сертификатами. Сервер и клиент должны поддерживать по крайней мере 128-разрядное шифрование.
  • В-третьих, если подключение secure LDAP не выполнено, поставщик LDAP пытается вызвать API NetUserSetInfo . В предыдущих выпусках ADSI называется NetUserSetInfo в контексте безопасности, в котором выполняется поток, а не контекст безопасности, указанный в вызове IADsOpenDSObject.OpenDSObject или ADsOpenObject. В последующих выпусках это было изменено таким образом, чтобы поставщик LDAP ADSI олицетворил пользователя, указанного в вызове OpenDSObject при вызове NetUserSetInfo.

Чтобы изменить пароль пользователя, используйте метод IADsUser.ChangePassword . Как и SetPassword, этот метод может использовать несколько процессов для изменения пароля. Методы изменения пароля выполняются в том же порядке:

  • Во-первых, поставщик LDAP пытается использовать Kerberos.
  • Во-вторых, поставщик LDAP пытается использовать secure LDAP.
  • В-третьих, если безопасное подключение LDAP не выполнено, поставщик LDAP пытается вызвать API NetUserChangePassword . Как и SetPassword, в предыдущих выпусках поставщик LDAP ADSI олицетворяет учетные данные пользователя, переданные с помощью метода IADsOpenDSObject.OpenDSObject или функции ADsOpenObject.