5.4. 红帽 JBoss 企业应用平台上 Web 应用程序的 SSO


此情景演示了 Web 应用如何利用 JBoss EAP 上的集群和非集群 SSO。创建四个 JBoss EAP 实例: EAP1EAP2EAP3EAP4EAP1EAP2 作为单机服务器运行,EAP 3EAP4 则作为双节点集群运行。已将 sampleAppAsampleAppB 这两个 Web 应用部署到四个 JBoss EAP 实例中的每一个。

5.4.1. 安全性

JBoss EAP 通过结合使用 securityundertowinfinispan 子系统的组合,支持集群和非集群 SSO 使用 Web 应用。security 子系统提供一个安全域来执行身份验证和授权,而 infinispanundertow 子系统则帮助在 JBoss EAP 实例或 JBoss EAP 集群上的所有 Web 应用之间缓存和分发 SSO 信息。所有四个 EAP 实例都有一个安全域( sso-domain),配置为使用 IdentityLoginModulesampleAppAsampleAppB 已配置为使用 sso-domain 安全域来保护路径 /secure/*,并要求 示例 的角色来访问它。在 sso-domain 登录模块中配置了以下凭证:

Expand
表 5.5. SSO-domain 用户
username密码角色

jane

samplePass

示例

所有四个 JBoss EAP 实例也已配置为使用 standalone-full-ha 或 full-ha 配置文件 启动,它添加了 infinispan 子系统和在这种情况下启用 SSO 所需的其他功能。还添加了 Web cache-container 和 SSO replication-cache,并且 undertow 子系统已配置为同时使用它们。EAP1EAP2 已将 undertow 子系统配置为非集群 SSO,而包含 EAP3EAP4 的集群已配置为使用集群 SSO。

应用程序群集与.集群的 SSO

集群 Web 应用和集群的 SSO 之间有区别。集群 Web 应用是在集群节点上分布的,以分散托管该应用的负载。在标记为 distributable 的群集应用中,对现有会话的所有新会话和更改都将复制到群集的其他成员。集群 SSO 允许复制安全上下文和身份信息,无论应用本身是否集群。尽管这些技术可以一起使用,但它们是互斥的,可以独立使用。

5.4.2. 它如何工作

在启动时,JBoss EAP 加载核心服务并启动管理 以及 SSO 信息的相关缓存 的安全性undertowinfinispan 子系统。sampleAppA.warsampleAppB.war 加载到所有四个 JBoss EAP 实例上,各自查找 sso-domain 来提供身份验证和授权。

如果 Jane 尝试访问 EAP1/sampleAppA/secure/hello.html,将要求她进行身份验证。在提供了正确的信息后,她将被允许查看 EAP1/sampleAppA/secure/hello.html。Jane 的会话将添加到 undertowinfinispan 子系统使用的 SSO 缓存中。如果她试图访问 EAP1/sampleAppB/secure/hello.html,则不会要求她重新进行身份验证。在 EAP1 上运行的 sampleAppB 将利用 undertow 子系统缓存和 infinispan 子系统查找她的会话,并授予她的访问权限,因为她已经过身份验证。如果 Jane 尝试访问 EAP2/sampleAppA/secure/hello.htmlEAP2/sampleAppB/secure/hello.html,她将被要求再次进行身份验证,因为 EAP1EAP2 不共享缓存。

如果 Jane 尝试访问 EAP3/sampleAppA/secure/hello.html,她将被要求进行身份验证,并且她的会话将存储在 SSO 缓存中。这些缓存存储在整个集群中;因此,如果 Jane 尝试登录 EAP3/sampleAppB/secure/hello.htmlEAP4/sampleAppA/secure/hello.htmlEAP4/sampleAppB/secure/hello.html,她就不必重新进行身份验证。如果 EAP3EAP4 重新启动,Jane 的 SSO 信息将保留在缓存中,因为其他 JBoss EAP 实例和群集仍在运行,从而保留了缓存。同样,如果 Jane 的会话无效,它将在整个缓存中拔出,并且无论她尝试在群集中访问哪个应用或服务器,系统都会要求她重新进行身份验证。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat