2013-03-20 7 views
6

Ich verwende eine Spring 3-Webanwendung, da Spring 3 NTLM-Authentifizierung nicht unterstützt, was sind die anderen Alternativen, die zusammen mit Spring-Sicherheit verwendet werden können? Damit Benutzer bei der Anmeldung bei Active Directory authentifiziert werden?Spring 3 und NTLM-Authentifizierung

Kerberos Lösung ist im Moment keine Option, NTLM ist die einzige Option.

Jede Hilfe ist sehr bemerkenswert.

Danke

+0

NTLM) ist proprietär, erwarte nicht, eine funktionierende Lösung in Java zu finden –

+0

habe irgendwelche Ergebnisse? –

+0

@MichailNikolaev Da dies eine kleine Einrichtung in AD erfordert, warte ich darauf, dass unser Systemadministrator mit meiner Anfrage zurückkehrt Ihre Antwort über das Ergebnis BTW ohne Setup in AD, ist es möglich, NTLM-Authentifizierung haben? – user75ponic

Antwort

3

Ich habe es einmal getan. Nimm es here. Es wird benötigt, um ein kleines Setup auf AD-Ebene zu tun. Fühlen Sie sich frei, hier oder auf GitHub Fragen zu stellen.

+0

Was ist die Einrichtung erforderlich auf AD-Ebene? Ich benutze Weblogic 10.3.6, also irgendwelche Kompatibilitätsprobleme? – user75ponic

+0

Just to Erstellen Sie ein Konto mit dem Typ "Computer" und führen Sie SetComputerAccountPasswordWindows7.vbs auf dem AD-Server aus. Sollte mit Weblogic 10.3.6 problemlos funktionieren. –

7

Der einfachste Weg, um Ihr Problem zu lösen, ist die folgende:

1) Installieren Sie Web-Server Apache und konfigurieren NTLM-Authentifizierung mit modntlm

http://modntlm.sourceforge.net/ (Ähnliche Sie Kerberos-Authentifizierung mit mod_auth_kerb http://modauthkerb.sourceforge.net/ verwenden können verwenden,)

2) Konfigurieren Sie mod_jk zu Ihrem Selvlet Container (JBoss oder Tomcat) http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html nach der erfolgreichen Authentifizierung Apache die REMOTE sendet _USER-Header zum Servlet-Container. Der Header (nach dem Namen) enthält einen Benutzernamen des Benutzers authentifiziert Stellen Sie sicher, Sie tomcatAuthentication = „false“ konfigurieren Apache ermöglichen Apache zu ermöglichen, den REMOTE_USER Header Ihre eigenen

3) Implementieren und Konfigurieren in Spring Security zu senden PreAuthenticatedProcessingFilter: http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6167 Es sollte dem Request-Header Authentication-Filter sehr ähnlich sein: http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6295 Darüber hinaus sollten Sie einen Domänennamen aus dem Benutzernamen weglassen. Der Benutzername wird nach NTLM- oder Kerberos-Authentifizierung im REMOTE_USER-Header gesendet.

4

Waffel ist Abfall-Lösung, die mit springsecurity verwendet werden kann, um dies zu erreichen: https://github.com/dblock/waffle

ich es selbst hybris mit zum Beispiel verwendet habe. Sie haben einige Beispiele. Hüten Sie sich vor der Version 1.5, die jna3.5 verwendet, was zu Problemen bei hoher Auslastung führen kann. Beachten Sie auch, dass Sie möglicherweise expenseSecurityFilter erweitern müssen, wenn unsere Anwendung eine Autorisierung durchführen muss (ich musste dies in 1.6 fixieren.