2

InitialLdapContext次の投稿で、Javaのクラスを使用して LDAP にアクセスする例を確認できます。

http://forums.sun.com/thread.jspa?threadID=603815

http://forums.devshed.com/ldap-programming-76/active-directory-services-using-java-api-89586.html

これには、ログインとパスワードを渡す必要があります (Java プロセスを実行しているサービス アカウントまたはユーザーが実行できるように既にログインしている場合でも)。

ユーザーまたはサービス アカウントは既にログインしているため、ユーザー名やパスワードなしで次のような Active Directory コマンドを実行できます。

dsquery user -samid "login" |dsget user -samid -email -display

では、このクエリが既に Windows で利用できるのに、なぜ Java はログイン パスワードを必要とするのでしょうか? Kosuke は、結論として、このブログ投稿で必須ではないことをほのめかしています。

https://community.oracle.com/blogs/kohsuke/2008/06/12/more-active-directory-integration-java

Java で Active Directory を呼び出す方法:

  • ログインまたはパスワードを使用していますか (すでにログインしているアカウントで実行していますか)?
  • コマンドラインでコマンドを実行しますか?
4

1 に答える 1

3

これはおそらく発生します

  • LDAPライブラリ/コンテキストを使用してActiveDirectoryと通信しており、これらのライブラリは他の種類のLDAPをサポートする必要があります(ADはLDAPとしてカウントされますか?)
  • これらの実装のプロバイダーは、それを必要とするものです。LDAP通信は、実装を提供するプロバイダーを介して行われます。実際のJavaランタイムでは行われません。
  • 現在のユーザーのパスワードは、実際にはWindowsからJavaに提供されていません(私は願っています)。

Windowsは、ADを必要とするアプリケーションを実行するときに、ADに対して認証を行うと、実際のパスワードに加えて、他の一連の資格情報を提示します。これらのクレデンシャルはJavaで使用できないか、少なくともLDAPコミュニケーターのプロバイダーのいずれもそれを取得する方法を提供していません。

この件に関する彼の他のブログ投稿で、 Kohsukeは、Active Directoryに関して、Javaランドでの状況がどうしてそうなのかについてもう少し詳しく説明しています。

于 2009-06-18T02:43:23.300 に答える