码迷,mamicode.com
首页 > 其他好文 > 详细

CAS系列:Portal与SSO

时间:2014-08-17 18:18:12      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:blog   http   java   使用   io   strong   数据   for   

Enterprise Single Sign-On

企业信息门户作为企业内部门户基础平台,一大主要用途是实现现有的业务系统、数据资源、人力资源的整合,实现信息(数据)的合理聚集;通过实现统一的用户和统一的访问入口来访问门户平台中整合的相关信息资源,真正实现资源的有效利用,更大发挥企业现有资源的使用价值,提高生产效率。门户应用集成技术作为关键性的技术手段,实现门户网站与业务系统之间单点登陆,以及内容聚集。

基本概念

 

门户portlet

Portlet 是特殊类型的 Web 模块,它们被设计成在门户网站的环境中运行,是独立地开发、部署、管理和显示小门户网站的应用程序。Portlet 不仅仅是现有 Web 内容的简单视图。portlet 是完整的应用程序,遵循标准模型-视图-控制器设计。Portlet 有多个状态和查看方式以及事件和消息传递能力。同时 Portlet 是可再用的 Web 模块,它们在门户网站服务器上运行并提供对基于 Web 的内容、应用程序和其他资源访问。

 

单点登录SSO

用户仅需要在门户系统登录一次,就可以访问被授权访问的栏目或者其他应用,用户只需要记住一个帐号即可。通过提供安全登录访问和集中管理应用软件和数据的信息框架,实现用户只需登录一次,即可获得授权范围内所有企业应用程序的访问权。

 

 

再者来说:

一般来说,现在的企业都有很多的业务系统,这些业务系统有很多业务又是相互关联的。例如ERP、CRM、供应链管理、OA、数据库系统、数据仓库等等。这些业务需要整合。对于企业应用的集成,可以分为用户界面集成、业务流程集成、应用集成、数据集成。

用户界面集成:用户交互的集成。

流程集成:跨应用系统的业务流程集成。

应用集成:多应用系统间的交互。

数据(集成),保证多个系统中的信息保持一致。

 

Portal与SSO关系

门户与业务系统实现 SSO(单点登陆),通过在门户使用 portlet 技术实现,为业务应用提供访问连接,当用户点击门户站点页面中的连接,或者直接访问门户页面中的某第三方系统的业务模块 Portlet 时,自动将登陆到需要访问的业务系统,而无需再次进行用户认证。

单点登录的实现从技术上可以从不同的维度着手,一般分为“客户端 Web 应用 SSO(Client-Web App SSO)”方式和“Portal 后台应用 SSO(Portal-Back End SSO)”方式,每种方式均有相应的技术实现,如图: Portal 单点登录服务:

 bubuko.com,布布扣

 

 

 

真实SSO与伪SSO

 

1)真实SSO

利用门户系统建立统一的 SSO 认证中心,通过 SSO 中心认证后,应用系统利用 SSO API 同 Portal Server 通信,验证用户是否经过认证。新开发的应用系统大多使用这种 SSO 的实现方式。这种方式需要对应用系统的认证模块进行修改。多数情况下,使用信任关联拦截器(TAI)也是建立 SSO 认证中心的常见方式。

门户服务器实现了 Java 认证和授权服务(Java Authentication and Authorization Service(JAAS))体系结构。JAAS 提供了一种用来认证 subject 和提供细粒度访问控制的办法。JAAS 是标准 Java 安全性模型的一部分;它使应用程序不依赖于所使用的底层认证和授权机制。

JAAS 使用模块化的服务提供者接口来执行登录和注销操作。通过门户网站的 JAAS 登录模块建立的凭证包括 CORBA 凭证、用户和组专有名称、用户标识和密码以及 LTPA 令牌。在分布式 J2EE 环境中,portlet 可以使用 JAAS API 来访问启用了 JAAS 的后端应用程序。

认证中心的建立,可以利用 JAAS 安全模型实现,例如,通过实现 WebSphere 自带的 LTPA 令牌技术来实现门户及各应用系统的认证统一,利用 Portal 建立公共的 SSOToken 实现认证统一。也可以通过一些开源的认证模块来实现,如 CAS、OpenSSO 等。

 

2)伪SSO

 

通过 WebSphere Portal 认证或者 SSO 中心认证后,应用系统还要自己进行用户的认证。这种方式适用于那些无法修改认证模块的应用系统。这种情况可以利用应用系统比较基础的接口来实现,如 URL+User+Password、Form 表单代填等。

 

伪SSO的几种方式:

 

A.基于 Form 方式

这种方式是通过模拟用户凭证提交,将业务系统相关的用户凭证通过 Form 提交的方式,传递给业务系统认证模块。

这种方式适合待集成的业务系统认证方式采用 From 表单,当通过 portlet 技术封装 Form 表单包含有业务系统相关的用户凭证,以及资源 URL。通过将业务系统所需的用户凭证通过 Form(表单)提交方式,模拟用户登陆,业务系统将用户所需的资源通过 web 方式反馈用户。

适用于基于 B/S 的 Web 业务应用系统,并且用户认证方式提供 Form 表单认证服务功能。

B.URL

将用户凭证直接通过 URL 的方式发送给业务系统,业务系统的认证程序将截获的用户请求 URL 中获取用户凭证,从而实现门户与业务系统的单点登陆。或者将用户凭证存储在 HTTP 请求报头,业务系统认证程序通过解析 HTTP 请求头信息,获取用户凭证。

C.模拟会话

利用 WebSphere Portal 以及应用系统的接口,模拟应用系统的认证状态。

D.模拟证书

实现单点登陆的业务系统用户认证方式并不是基于 Form,也不是采用 HTTP Header。需要客户端(此是门户信息系统将被作为客户端,业务系统将作为服务器)提供客户电子证书,这需要通过 portlet 应用程序,或 J2EE 应用程序来实现模拟将电子证书发送给业务系统认证模块。

 

CAS系列:Portal与SSO,布布扣,bubuko.com

CAS系列:Portal与SSO

标签:blog   http   java   使用   io   strong   数据   for   

原文地址:http://www.cnblogs.com/f1194361820/p/3917951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!