5.8.2. 使用 SPNEGO 的桌面 SSO
要配置使用 SPNEGO 的桌面 SSO,请进行下面的配置:
- 安全域
- 系统属性
- Web 应用程序
过程 5.5. 配置使用 SPNEGO 的桌面 SSO
配置安全域
配置安全域来代表服务器的标识符并为 Web 应用程序设置安全性。例 5.15. 安全域配置
<security-domains> <security-domain name="host" cache-type="default"> <authentication> <login-module code="Kerberos" flag="required"> <module-option name="storeKey" value="true"/> <module-option name="useKeyTab" value="true"/> <module-option name="principal" value="host/testserver@MY_REALM"/> <module-option name="keyTab" value="/home/username/service.keytab"/> <module-option name="doNotPrompt" value="true"/> <module-option name="debug" value="false"/> </login-module> </authentication> </security-domain> <security-domain name="SPNEGO" cache-type="default"> <authentication> <login-module code="SPNEGO" flag="requisite"> <module-option name="password-stacking" value="useFirstPass"/> <module-option name="serverSecurityDomain" value="host"/> </login-module> <!-- Login Module For Roles Search --> </security-domain>
设置系统属性
如果需要,系统殊性可以在域模型里进行设置。例 5.16. 配置系统属性
<system-properties> <property name="java.security.krb5.kdc" value="mykdc.mydomain"/> <property name="java.security.krb5.realm" value="MY_REALM"/> </system-properties>
配置 Web 应用程序
覆盖这个验证器是不可能的,但你可以在 jboss-web.xml 里添加NegotiationAuthenticator
来配置 web 应用程序。注意
这个 Valve 要求在 web.xml 里定义security-constraint
和login-config
,因为它们用于决定哪些资源被保护。然而,这个验证器会覆盖所选的auth-method
。例 5.17. 配置 Web 应用程序
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd"> <jboss-web> <security-domain>java:/jaas/SPNEGO</security-domain> <valve> <class-name>org.jboss.security.negotiation.NegotiationAuthenticator</class-name> </valve> </jboss-web>
这个 Web 应用程序也要求在META-INF/MANIFEST.MF
定义依赖关系,以便定位 JBoss Negotiation 类。例 5.18. 在
META-INF/MANIFEST.MF
里定义依赖关系Manifest-Version: 1.0 Build-Jdk: 1.6.0_24 Dependencies: org.jboss.security.negotiation