2

您可以在下面的帖子Java的Active Directory集成的Windows身份驗證

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

http://forums.devshed.com/ldap-programming-76/active-directory-services-using-java-api-89586.html 使用Java中的InitialLdapContext類訪問LDAP的例子看。這需要登錄密碼在傳遞。(即使服務帳戶或用戶運行的Java進程已經登錄才能夠運行。)

當用戶或服務帳戶已經登錄了 - 他們已經能運行就像一個沒有用戶名或密碼以下Active Directory命令:

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

那麼爲什麼Java的需要登錄密碼 - 如果該查詢已經提供給視窗?耿介暗示它沒有在這個博客帖子下結論,需要:

http://weblogs.java.net/blog/kohsuke/archive/2008/06/more_active_dir.html

我的問題是 - 我們怎麼能叫活動目錄中的無渣:使用登錄

  • 密碼(在已登錄的帳戶下運行)?
  • 在命令行上執行命令?

回答

3

這可能是因爲

  • 您正在使用LDAP庫/上下文與Active Directory進行通信,並且這些庫需要支持其他類型的LDAP的(不AD甚至算作LDAP?)
  • 這些實現的提供者是需要它的提供者。 LDAP通信是通過提供實現的提供者完成的,而不是由實際的Java運行時完成的。
  • 當前用戶的密碼不是(我希望)由Windows實際提供給Java。

當Windows在您運行需要它的應用程序時針對AD進行身份驗證時,它會顯示除您的實際密碼以外的其他一組憑據。這些證書在Java中不可用,或者至少LDAP通信器的提供者都沒有提供檢索它的方法。

In his other blog post on the subject Kohsuke進一步闡述了爲什麼在Active Directory中它們處於Java-land的方式。

相關問題