2008-12-03 8 views
9

Gibt es ein Apache-Modul, das die Kerberos-Authentifizierung für die Verwendung durch Tomcat implementiert und auch die Kerberos-Delegierung unterstützt?Tomcat-Authentifizierung mit SPNEGO/Kerberos und Delegierung

Ich habe bereits auf mod_spnego geschaut und es wirft den SSPI-Kontext weg, den es erstellt, nur den Hauptnamen behaltend. Stattdessen suche ich nach einem Modul, mit dem das an Tomcat gesendete Ticket delegiert werden kann - das heißt, das für die Authentifizierung gesendete Serviceticket zu nehmen und es serverseitig für den Zugriff auf einen anderen Dienst im Auftrag des Benutzers zu verwenden.

EDIT: Um zu verdeutlichen, muss ich unter Win32 unter Verwendung der GSS/SSPI-Kontext imitieren, wenn Legacy-Code zu einem anderen Server verbindet, werden die delegierten Anmeldeinformationen verwendet.

Antwort

7

WAFFLE (Windows Authentication Functional Framework) bietet jetzt dieses Feature ab v1.4beta.

Es bietet einen ServletFilter, der native Windows-APIs verwendet, um den Benutzer zu authentifizieren, entweder mit Basic- oder Negotiate-Authentifizierung. Der Benutzer kann dann imitiert werden, und native API-Aufrufe werden mit dem Zugriffstoken des imitierten Benutzers ausgeführt.

+0

Genau das habe ich gesucht (obwohl das Projekt schon lange vorbei ist). –

4

Wie wäre es mit der Verwendung des JAAS-Realms und der Verwendung des kerberos 5 JAAS-Moduls?

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#JAASRealm

http://java.sun.com/j2se/1.4.2/docs/guide/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html

Sieht wie es könnte ein wenig Codierung erfordern, aber die Stücke sollten da sein.

+0

Es scheint, dass dies die Hälfte von dem ist, was ich brauche, um den Kerberos-Kontext in TomCat + zu bekommen und mod_spnego zu modifizieren, damit ich einen Sicherheitskontext habe, um mich beim Aufruf von win32-Code zu imitieren. –

+0

Ich habe die Kerberos/SPNEGO-Authentifizierung mit JRE 6 und Tomcat erfolgreich durchgeführt, indem ich meinen eigenen Tomcat Authenticator und Realm implementiert habe. In Ihrem Fall könnte dies über die GSS-API erfolgen und einige Header an den Client gesendet werden. Dann könnte dieser Principal für andere JAAS-Operationen verwendet werden. –

2

Hier ist ein Tutorial. Es implementiert Kerberos/SPNEGO als HTTP-Servlet-Filter und unterstützt die Delegierung von Anmeldeinformationen.

+0

Das sieht sehr interessant aus, scheint aber mein Problem nicht zu lösen. Ich sehe keine Möglichkeit, über den GSSContext (via win32) zu imitieren. Dies ist, was ich versuche zu tun, aber anstatt zu einem anderen http-Server zu delegieren, muss ich über sspi delegieren. Ich werde die Frage klären. –

Verwandte Themen