第 16 章 单点登录(SSO)


16.1. 关于 Web 应用程序的单点登录

概述

单点登录(Single Sign On,SSO)允许到某个资源的验证可以授权对其他资源的访问。

群集和非群集的 SSO

非群集的 SSO 限制分享授权信息至相同虚拟机上的应用程序。此外,它在主机出现故障时无弹性可言。而群集 SSO 数据可以在多个虚拟主机里的应用程序间共享,对失效切换有一定弹性。而且,群集 SSO 可以从负载平衡器接收请求。

SSO 是如何工作的

如果资源是未受保护的,用户根本不会被验证。如果用户访问了受保护的资源,用户将被验证。

在成功验证后,和用户相关联的角色将被存储并用于所有其他相关资源的授权。
如果用户从应用程序登出,或者应用程序在程序里使会话失效,所有保持的授权数据将被删除,这个过程将重新开始。
如果其他会话仍然有效,会话超时不会使 SSL 会话失效。

SSO 的限制

不能在第三方边界传播数据
SSO 只能在部署在 JBoss EAP 6 容器里的应用程序间使用。
只能用于容器管理的验证
你必须在应用程序 web.xml 里使用容器管理的授权元素,如 <login-config>
要求 cookie
SSO 通过浏览器 cookie 来保持且不支持 URL 重写。
区和安全域的限制
除非设置 requireReauthentication 参数为 true,配置相同 SSO 值的所有的 web 应用程序都应该共享 web.xml 里的相同的区(Realm)配置以及安全域。
你可以在 Host 元素或周围的 Engine 元素里嵌套 Realm 元素,但不能放在涉及的 web 应用程序里的 context.xml 元素里。
jboss-web.xml 里配置的 <security-domain> 必须在所有的 web 应用程序里一致。
所有的安全集成必须接受相同的凭证(如用户名和密码)。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat