Ich muss ein angepasstes Jaspic ServerAuthModule schreiben (welches ein proprietäres Authentication Cookie zur HTTP Response UND HTTP Anfrage hinzufügen muss, um es an die Anwendungen weiterzuleiten, die auf dem App Server laufen). Die Authentifizierung muss mit Kerberos, SPNEGO erfolgen.Jaspic ServerAuthModule delegiert nach JAAS Krb5LoginModule
Der Application Server verwendet werden soll JBOSS EAP 6.4.x
ich arbeiten, um die Authentifizierung mit dem JAAS Krb5LoginModule bekommen verwaltet.
Die JBOSS EAP Standone.xml Ich benutze:
<security-domain name="host" cache-type="default">
<authentication>
<login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
<module-option name="debug" value="true"/>
<module-option name="principal" value="HTTP/[email protected]"/>
<module-option name="storeKey" value="true"/>
<module-option name="useKeyTab" value="true"/>
<module-option name="doNotPrompt" value="true"/>
<module-option name="keyTab" value="/Users/jet/Downloads/kerberos/macbookAirRCH.keytab"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="SPNEGO" cache-type="default">
<authentication>
<login-module code="SPNEGO" flag="required">
<module-option name="serverSecurityDomain" value="host"/>
</login-module>
</authentication>
<mapping>
<mapping-module code="SimpleRoles" type="role">
<module-option name="[email protected]" value="User,Admin"/>
</mapping-module>
</mapping>
</security-domain>
Jboss-web.xml:
<jboss-web>
<security-domain>SPNEGO</security-domain>
<valve>
<class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name>
</valve>
<context-root>kerberosREST</context-root>
</jboss-web>
Ich schaffte es auch ein individuelles Jäspi Modul zum Laufen zu bringen (extends org.jboss.as.web.security.jaspi.modules.WebServerAuthModule
) unter Verwendung der folgenden Konfiguration:
<security-domain name="testDomain" cache-type="default">
<authentication-jaspi>
<login-module-stack name="lm-stack">
<login-module code="SPNEGO" flag="required">
<module-option name="serverSecurityDomain" value="host"/>
</login-module>
</login-module-stack>
<auth-module code="ch.test.jaspic.CustomServerAuthModule" flag="required" login-module-stack-ref="lm-stack"/>
</authentication-jaspi>
<mapping>
<mapping-module code="SimpleRoles" type="role">
<module-option name="[email protected]" value="User,Admin"/>
</mapping-module>
</mapping>
</security-domain>
Jboss-web.xml:
<jboss-web>
<security-domain>testDomain</security-domain>
<valve>
<class-name>org.jboss.as.web.security.jaspi.WebJASPIAuthenticator</class-name>
</valve>
<context-root>kerberosREST</context-root>
</jboss-web>
Wie kann ich die Standard-JAAS Krb5LoginModule verwenden?
Sollte ich die beiden Ventile in die jboss-web.xml aufnehmen? (Die Reihenfolge ist wichtig)
Jboss-web.xml:
<jboss-web>
<security-domain>testDomain</security-domain>
<valve>
<class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name>
</valve>
<valve>
<class-name>org.jboss.as.web.security.jaspi.WebJASPIAuthenticator</class-name>
</valve>
<context-root>kerberosREST</context-root>
</jboss-web>
Vielen Dank im Voraus
danke, dass Sie sich die Zeit nehmen zu antworten. Leider muss die Version von JBOSS EAP, die ich verwenden muss, auf 6.4.x festgelegt werden. Wenn ich es richtig verstanden habe, ist das Login-Bridge-Profil genau das, was unter der Haube meines JASPIC SAM verwendet wird (welches org.jboss.as.web.security.jaspi.modules.WebServerAuthModule erweitert). Das funktioniert auch gut, wenn das LoginModule, an das ich den Identity Store delegiere, kein SPNEGO benötigt (zB HTTP Basics). Haben Sie irgendwelche Ideen, wie Sie das JASPIC SAM und die JBOSS Ventile konfigurieren, um SPNEGO mit dem JASPIC SAM zu ermöglichen? Danke –
Meine schlechte, nicht sicher, dass das WebServerAuthModule tatsächlich an das LoginModule delegiert. Ich werde mir das 'DelegatingServerAuthModule' ansehen. –