4.5. 使用 Kerberos 为 Web 应用提供 SSO
此情景演示了如何将 Kerberos 与 JBoss EAP 搭配使用,以便为 Web 应用提供 SSO。JBoss EAP 实例已经创建,即 EAP1,它作为单机服务器运行。已将 sampleAppA 和 sampleAppB 这两个 Web 应用部署到 EAP1。Web 应用和 EAP1 都已配置为通过 Kerberos 使用基于桌面的 SSO 进行身份验证。
4.5.1. 安全性 复制链接链接已复制到粘贴板!
JBoss EAP 使用 SPNEGO 身份验证方法通过 Kerberos 提供身份验证。有关 Kerberos 和 SPNEGO 细节的更多信息,请参阅第三方 SSO 实施部分。为了使 JBoss EAP 和部署的 Web 应用能够使用 Kerberos 进行身份验证,请创建一个 kerberos-security-factory 来连接 Kerberos 服务器。同时也创建一个安全域、角色映射器和安全域,以便将角色分配给来自 Kerberos 服务器的用户。创建一个 http-authentication-factory,它使用 kerberos-security-factory 并使用安全域进行身份验证和角色分配。身份验证机制使用 SPNEGO 身份验证机制作为 exampleSpnegoDomain 公开。undertow 子系统也配置为使用 http-authentication-factory 进行身份验证。
sampleAppA 和 sampleAppB 都配置为使用 exampleSpnegoDomain 执行身份验证并获取用户的角色以进行授权。当安全令牌无法从操作系统传递到浏览器 时,这两个应用也可以将 FORM 身份验证配置为回退身份验证机制。如果 FORM 身份验证 配置为回退,则必须配置额外的身份验证机制以及支持的安全域。此身份验证机制独立于 Kerberos 和 SPNEGO,仅需支持 FORM 身份验证。在本例中,已经为 FORM 身份验证 配置了额外的机制和支持安全域,并作为 exampleFormDomain 公开。每个应用都配置为使用 exampleFormDomain,并提供 FORM 身份验证 作为回退。每个应用程序也被配置为保护路径 /secure/*,并提供自己的角色列表来处理授权。