如何基于JAAS(Authorization)实现多个Web应用的单点登录

Posted

技术标签:

【中文标题】如何基于JAAS(Authorization)实现多个Web应用的单点登录【英文标题】:how to implement single sign-on for multiple Web applications based on JAAS(Authorization) 【发布时间】:2012-05-05 08:46:47 【问题描述】:

我开始使用 SSO 开发 JAAS,我对 JAAS 有一些疑问。 JAAS(Java Authentication and Authorization Service)框架,以迎合多种身份验证机制。 SSO 服务器根据自己的数据库或外部目录服务器验证登录信息,并返回登录用户可以执行的会话上下文和应用程序列表。在这里,我想再实现一个 Web 应用程序。据我所知, SSO JAAS 将返回会话上下文。在我的客户端 Web 应用程序中,我已经拥有用于身份验证的 acegi 安全性,使用我的 acegi 安全性如何从我的 SSO JAAS 获取会话上下文进行授权。我正在尝试找出任何配置示例,但我仍然没有得到任何解决示例。

【问题讨论】:

【参考方案1】:

看看这个spring security configuration。这不是你想要的,但它会告诉你方法

关键点

检查身份验证管理器是如何定义的 PreAuthenticatedAuthenticationProvider。 preAuthenticatedUserDetailsS​​ervice 属性定义了一个 bean,它允许您从 JAAS Authentication 对象创建 Spring Security UserDetails 对象 j2eePreAuthFilter 过滤器是将 JAAS 的安全性委托给 spring 安全性的过滤器。

剩下的是标准的spring安全配置

希望对你有所帮助

【讨论】:

enterlezi ,我理解了这个概念,你能给我更多用于第三方Web应用程序JAAS实现的cmets

以上是关于如何基于JAAS(Authorization)实现多个Web应用的单点登录的主要内容,如果未能解决你的问题,请参考以下文章

如何集成基于 angularjs 和 java jaas 的身份验证?

ActiveMQ中的安全机制 [转]

Apache Tomcat 1.7 如何将附加参数传递给 JAAS

基于 Java EE 的 Web 应用程序服务器中的 JAAS 安全性是不是依赖?

Spring Security 是基于 JAAS 的吗?

Windows 域的 JAAS 身份验证