Мне нужно написать настраиваемый Jaspic ServerAuthModule (которому необходимо добавить проприетарное Cookie аутентификации в HTTP-ответ и HTTP-запрос для распространения на приложения, запущенные на сервере приложений). Аутентификация должна выполняться с использованием Kerberos, SPNEGO.Jaspic ServerAuthModule, делегирующий JAAS Krb5LoginModule
Сервер приложений для использования является JBOSS EAP 6.4.x
мне удалось получить удостоверение подлинности с помощью JAAS Krb5LoginModule работает.
JBOSS EAP Standone.xml Я использую:
<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>
Мне также удалось получить заказной JÄSPI модуль работает (extends org.jboss.as.web.security.jaspi.modules.WebServerAuthModule
) используя следующую конфигурацию:
<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>
Как я могу использовать по умолчанию JAAS Krb5LoginModule?
Должен ли я включать два клапана в jboss-web.xml? (Порядок важен)
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>
Большое спасибо заранее
спасибо, что нашли время, чтобы ответить. К сожалению, версия JBOSS EAP, которую я должен использовать, установлена на 6.4.x. Если я правильно ее понимаю, профиль моста login именно то, что используется под капотом моего JASPIC SAM (который расширяет org.jboss.as.web.security.jaspi.modules.WebServerAuthModule). Это также прекрасно работает, если для входа в LoginModule я не храню хранилище идентификаторов, не требуется SPNEGO (например, HTTP-основы). У вас есть идеи по настройке JASPIC SAM и клапанов JBOSS для включения SPNEGO с JASPIC SAM? Спасибо –
Мой плохой, не уверен, что действительные делегаты WebServerAuthModule для LoginModule. Я посмотрю на «DelegatingServerAuthModule». –