Java Active Directory Integrierte Windows -Authentifizierung
-
06-07-2019 - |
Frage
Sie können in den folgenden Beiträgen sehen
http://forums.sun.com/thread.jspa?threadid=603815
http://forums.devshed.com/ldap-programming-76/active-directory-services-using-java-api-89586.htmlEin Beispiel für den Zugriff auf LDAP mit der InitialLdapContext
Klasse in Java. Dies erfordert a Anmeldung und ein Passwort übergeben werden. (Auch wenn das Servicekonto oder der Benutzer, das den Java -Prozess ausführt, bereits angemeldet ist, um ausgeführt zu werden.)
Da das Benutzer- oder Dienstkonto bereits angemeldet ist, können er Active Directory -Befehle bereits wie folgt ohne Benutzernamen oder Kennwort ausführen:
dsquery user -samid "login" |dsget user -samid -email -display
Warum braucht Java das? Anmeldung und ein Passwort - Wenn diese Abfrage Windows bereits zur Verfügung steht? Kosuke deutet an, dass es in diesem Blog -Beitrag unter Abschluss nicht erforderlich ist:
https://community.oracle.com/blogs/kohsuke/2008/06/12/more-actactactive-directory-integration-java
Meine Frage ist: Wie können wir Active Directory in Java nennen, ohne:
- Verwendung einer Anmeldung oder Passwort (Laufen unter einem Konto, das bereits angemeldet ist)?
- Ausführen eines Befehls in der Befehlszeile?
Lösung
Dies tritt wahrscheinlich an, weil
- Sie verwenden LDAP -Bibliotheken/-kontexte, um mit Active Directory zu kommunizieren, und diese Bibliotheken müssen andere Arten von LDAP unterstützen (zählt AD überhaupt als LDAP?)
- Die Anbieter dieser Implementierungen sind diejenigen, die sie benötigen. Die LDAP -Kommunikation erfolgt durch Anbieter, die die Implementierung liefern. Sie wird nicht von der tatsächlichen Java -Laufzeit durchgeführt.
- Das Passwort des aktuellen Benutzers wird nicht (ich hoffe) tatsächlich von Windows an Java bereitgestellt.
Wenn Windows Sie gegen die Anzeige authentifiziert, während Sie Anwendungen ausführen, die diese benötigen, werden neben Ihrem tatsächlichen Kennwort einige andere Anmeldeinformationen vorgestellt. Diese Anmeldeinformationen sind in Java nicht verfügbar, oder zumindest hat keiner der Anbieter von LDAP -Kommunikatoren eine Möglichkeit, sie abzurufen.
In seinem anderen Blog -Beitrag zu diesem Thema Kohsuke erweitert ein bisschen mehr darüber, warum die Dinge so sind, wie sie in Java-Land sind, wenn es um Active Directory geht.
Andere Tipps
Sie können auch den folgenden Link untersuchen, um eine detaillierte Anweisung zu finden, um die Windows -Integrated -Authentifizierung in der Java -Plattform zu gestalten.