次の方法で共有


LDAP プロバイダーを使用したユーザー パスワードの設定と変更

ユーザー パスワードを設定するには、IADsUser.SetPassword メソッドを使用します。

Active Directory の LDAP プロバイダーは、3 つあるプロセスのいずれかを使用してパスワードを設定します (iPlanet などのサードパーティの LDAP ディレクトリでは、このパスワード認証プロセスは使用されません)。 この方法は、ネットワーク構成によって異なる場合があります。 パスワードの設定方法は、次の順序で行われます。

  • 最初に、LDAP プロバイダーは Kerberos の使用を試みます。
  • 次に、Kerberos が失敗した場合、LDAP プロバイダーは Secure LDAP 接続の確立を試みます。 Secure LDAP を正常に動作させるには、LDAP サーバーに適切なサーバー認証証明書がインストールされている必要があり、ADSI コードを実行しているクライアントは、それらの証明書を発行した機関を信頼する必要があります。 サーバーとクライアントの両方で、少なくとも 128 ビット暗号化がサポートされている必要があります。
  • 3 番目に、Secure LDAP 接続が失敗した場合、LDAP プロバイダーは NetUserSetInfo API 呼び出しを試みます。 以前のリリースでは、ADSI は、IADsOpenDSObject.OpenDSObject または ADsOpenObject の呼び出しで指定されたセキュリティ コンテキストではなく、スレッドが実行されていたセキュリティ コンテキストで NetUserSetInfo を呼び出していました。 後のリリースでは、これは、ADI LDAP プロバイダーが NetUserSetInfo を呼び出すときに OpenDSObject の呼び出しで指定されたユーザーに偽装するように変更されました。

ユーザー パスワードを変更するには、IADsUser.ChangePassword メソッドを使用します。 SetPassword と同様に、このメソッドは複数のプロセスを使用してパスワードを変更できます。 パスワードの変更方法は、同じ順序で行われます。

  • 最初に、LDAP プロバイダーは Kerberos の使用を試みます。
  • 次に、LDAP プロバイダーは Secure LDAP の使用を試みます。
  • 3 番目に、Secure LDAP 接続が失敗した場合、LDAP プロバイダーは NetUserChangePassword API 呼び出しを試みます。 SetPassword と同様に、以前のリリースでは、ADSI LDAP プロバイダーは、IADsOpenDSObject.OpenDSObject メソッドまたは ADsOpenObject 関数を使用して渡されたユーザー資格情報を偽装します。