导读:
4. Josso与Web应用安全
策略的管理 Josso在Web应用安全策略的管理主要通过JBoss容器的进行用户权限的分配和取消。它的整个应用模型主要是基于JAAS的安 全策略模型进行拓展,并对Web页面层和EJB应用组件分别进行安全控制,下面我们通过Josso自带的一个例子来说明。
Web页面层的安全控制是在web.xml中通过<login-config>、</login-config><security-constraint>和</security-constraint><security-role>标签定义来实现的。
以下是Josso中partnerapp例子对Web页面层的安全控制实现:
<security-constraint>
<web-resource-collection>
<web-resource-name>public-resources</web-resource-name>
<url-pattern>/resources/**//*</url-pattern>
<http-method>HEAD</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>protected-resources</web-resource-name>
<url-pattern>/josso/*</url-pattern>
<url-pattern>/protected/*</url-pattern>
<http-method>HEAD</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login-redirect.jsp</form-login-page>
<form-error-page>/login-redirect.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>Role 1</description>
<role-name>role1</role-name>
</security-role>
对于EJB应用组件只需在ejb-jar.xml的部署描述符中添加</security-role><security-role>中定义相应的安全策略,对于JBoss来说同时还需要在jboss.xml中添加</security-role><security-domain>,以保证当前域的安全策略生效。在partnerapp中的实现如下:
<ejb-jar>
<display-name>Partner Component</display-name>
<enterprise-beans>
<session>
<ejb-name>PartnerComponentEJB</ejb-name>
<home>org.josso.samples.ejb.PartnerComponentHome</home>
<remote>org.josso.samples.ejb.PartnerComponent</remote>
<ejb-class>org.josso.samples.ejb.PartnerComponentEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<description>Role 1</description>
<role-name>role1</role-name>
</security-role>
<method-permission>
<description>Security attributes for 'PartnerComponenttEJB' methods</description>
<role-name>role1</role-name>
<method>
<ejb-name>PartnerComponentEJB</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<container-transaction>
<method>
<ejb-name>PartnerComponentEJB</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
"-//JBoss//DTD JBOSS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd"> "-//JBoss//DTD JBOSS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">
<jboss>
<security-domain>java:/jaas/josso</security-domain>
<enterprise-beans>
<session>
<ejb-name>PartnerComponentEJB</ejb-name>
<jndi-name>josso/samples/PartnerComponentEJB</jndi-name>
</session>
</enterprise-beans>
</jboss>
以上是Josso对Web应用层和EJB组件所关联的安全策略的部署描述,另外在Josso验证的验证过程中,登陆页面、注销页面和通过验证后用户的信息都是通过JBoss服务器支持的单点登陆模式来实现的。JBoss服务器支持的登录验证机制主要有:基于HTTP的基本验证(采用简单的Base64编码),基于HTTPS的客户端验证(采用证书验证),基于表单验证(通过表单提交的信息,自己定制验证方式)等;而通过验证后的用户信息可以通过Servlet的request对象的getUserPrincipal()方法来获得。在这里我们就不多做介绍。相关的信息可以查阅JBoss及Servlet的文档。
5. 小结 单点登陆(SSO)是一个很大的议题,在本文中笔者只是简单地通过对单点登陆(SSO)的实现原理和Josso在JBoss环境下的实施的介绍,让读者在一个侧面对单点登陆(SSO)有一定认识。进入讨论组讨论。
分享到:
相关推荐
"CAS实现sso单点登录原理" CAS(Central Authentication Service)是Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法(属于Web SSO)。CAS开始于2001年,并在2004年12月...
总的来说,基于Java EE的单点登录技术研究与实现涉及到网络认证协议、安全性设计、应用服务器配置等多个方面,对于提高企业应用系统的易用性和安全性具有重要意义。在实际项目中,开发者需要根据具体需求选择合适的...
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的...
探讨了如何在集群环境下实现单点登录(SSO),简化用户认证流程的同时提高安全性。 **7.4 集群化 Singleton 服务** 这部分内容讨论了如何在集群环境中部署和管理 Singleton 类型的服务,包括 HASingleton Deployer ...
单点登录(Single Sign-On, SSO)是一种网络身份验证技术,允许用户通过一次登录就能访问多个相互关联的应用系统,而无需多次输入凭证。本文主要分析两种常见的SSO实现框架——JOSSO(Java Open Single Sign-On)和...
### 单点登录(SSO)技术 单点登录是指用户仅需要一次身份验证,就可以访问多个不同的服务。这是通过集中式身份认证服务器来实现的,它为多个应用系统提供认证服务。 ### CAS(Central Authentication Service) ...
Teamcenter的单点登录(Single Sign-On, SSO)架构基于LDAP(轻量级目录访问协议)和可能的其他目录服务,如Active Directory或Novell。这种架构的核心是Teamcenter安全代理,它与安全服务进行通信,确保用户身份的...
第6章和第7章可能涉及到单点登录(Single Sign-On, SSO)和安全性设置,确保用户在访问多个系统时只需要一次登录,同时保护门户免受潜在的安全威胁。 第8章可能会讲解Google小部件的集成,如何将Google的服务如日历...
总之,CAS-Server-Client单点登录demo提供了一个实践SSO功能的平台,帮助开发者理解如何在不同应用间实现统一身份验证。通过对CAS服务器和客户端的配置,以及在Apache Tomcat上进行测试,你可以深入掌握SSO的工作...
**CAS SSO(Central Authentication Service 单点登录)** CAS 是一个开源的身份验证框架,它提供了基于 Web 的单点登录(Single Sign-On, SSO)功能。SSO 允许用户在一次登录后访问多个相互信任的应用系统,而无需...
在本文中,我们将深入探讨Keycloak的功能、如何使用它支持单点登录(SSO)以及它在IT环境中的重要性。 Keycloak的核心功能包括: 1. **身份验证**:Keycloak允许用户通过用户名和密码、社交账户或其他认证方式(如...
SAML v2版本提供了更强大的功能和改进的安全性,允许服务提供者和服务消费者之间的信任关系建立,从而实现单点登录(Single Sign-On, SSO)和其他高级安全特性。在JBoss平台上,SAML v2被广泛应用于身份管理解决方案...
6. **使用单点登录(SSO)**:对于大型企业级应用,可以采用单点登录系统,用户只需要登录一次,即可在多个子系统间自由切换,减少Session丢失的问题。 7. **考虑无状态设计**:在微服务架构中,推动服务无状态化,...
本方案的目标是将kjdp的工作流待办任务及业务对象查看功能集成到Liferay门户,并实现单点登录(SSO)功能。这不仅可以提高用户体验,还可以简化用户的登录流程,提高工作效率。 **1.2 安装** **1.2.1 版本说明** 本...
5. **GridSphere**:GridSphere将网格计算技术应用于Portal,实现100%兼容JSR-168,内建RBAC功能,支持多种数据库并提供多语言支持。 这些开源Portal产品各有优缺点,适合不同的需求和环境。选择哪个产品主要取决于...
CAS(Central Authentication Service)是耶鲁大学开发的一个开放源代码单点登录(SSO)系统,它允许用户通过一次登录就能访问多个应用系统。在项目中,CAS可以提高用户体验,减少用户记住多个账户和密码的负担,...
Keycloak 是一个开源的身份管理和访问控制服务,它提供身份验证、单点登录(SSO)以及基于OAuth2、OpenID Connect等标准的安全API。Keycloak的服务器组件可以在多种不同的应用服务器上运行,包括JBoss AS 7、JBoss ...
首先,统一登录系统通常基于单点登录(SSO)机制,如CAS(Central Authentication Service)或OAuth2,这需要对认证协议有深入理解,并能用Java实现相应的服务端逻辑。 信息聚合涉及从各种来源收集和整合数据,例如...