peterwanghaoID:peterwanghao
17174次访问,排名6519好友0人,关注者1
peterwanghao的文章
原创 14 篇
翻译 1 篇
转载 4 篇
评论 12 篇
最近评论
wenwen8104:王浩老师,真不错拉
eminem1013:非常感谢楼主的回答,真的非常感谢。
验证的方式有5种(from,url,url.base64,base,base.prevent)。
其中base认证(也有称之为基本认证)的域(reaml)应该是被集成站点自己的认证信息,为什么在SSO管理里面可配置?
还有就是您说的系统要整合的其他站点和直接通过url后面加参数的方式访问其他系统有什么区别?是否表示如果被整……
eminem1013:关于jetspeed2的SSO,我有几个地方不大明白,希望楼主和各位牛人能赐教:
1。为什么需要SSO Iframe portlet专门来为Iframe portlet形式集成进来的系统做单点登陆服务呢。不能直接通过sso sites和sso details两个portlet来完成吗?
2。还有为什么jetspeed2.1版本的SSO Iframe portl……
Rainfall2000:你好,我最近是被BouncyCastle的安装搞昏了头,希望能得到你的帮助。我用的是jdk 1.6。
运行到SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithSHAAndTwofish-CBC");时总是出现Exception in thread "main" java.security.NoSuc……
swift3907:不错
见识了,准备用jetspeed做一个基于网格的供应链系统
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Jetspeed2.0中单点登录的实现收藏

    新一篇: Portal性能优化 | 旧一篇: Jetspeed2.0中个性化定制的实现

          单点登录(Single Sign On)是门户产品的一大特点,可以为企业用户提供统一的信息资源认证访问平台,通过实施单点登录功能,使各种用户只需一次登录就可以根据相关的规则去访问不同的应用系统,提高IT系统的易用性、安全性、稳定性;在此基础上进一步实现企业用户高速协同办公和企业知识管理
     
    SSO实现原理:
           SSO通常都是应用于WEB系统中。基于Web的身份验证的实质无外乎就是有一个表单,表单里面让用户输入用户名称和密码,然后提交给验证的页面,通过身份验证后,通过Session来储存用户的一些信息,然后每次访问页面时,从session里面读这些信息,如果存在,则进入登录后的界面,否则,就认为没有登录。客户端要支持Cookie来存储sessionid,与服务器上创建的session来对应。
           SSO都要有一个单一的登录点,由此登录点将创建的会话token传递给应用系统。SSO需要建立一个统一的认证,权限信息库。但现实中,有的系统无法使用外部的认证,授权信息库,所以就需要在应用系统和Portal Server之间进行认证,同时进行授权信息的数据同步。根据认证,授权实现的位置可以分为两种实现方式:
           第一类是通过Agent的方式,即在后端为每个Web应用系统都安装一个Agent,由Agent来接管该系统的身份验证和访问控制,Portal中会存放自己的用户信息,以及这些用户与其他系统的用户对应信息。这些Agent能够通过配置,轻松的接管了后面的系统的身份验证和访问控制。
           第二类是通过Proxy的方式,即具有一个Proxy Server,由它来接管对于后端系统的访问,提交请求和读取数据,然后再返回给Portal。同时Portal可以存放用户信息以及用户的对应关系。Proxy Server会通过存储的用户对应关系和用户名和密码,自动完成后端系统的登录,然后就象一个浏览器一样,提取数据,返回数据给后端系统。这样的话后台系统不用做任何修改,身份认证和访问控制仍然由各个系统自己管理。
     
    Jetspeed2.0SSO的实现:
           Jetspeed2.0中的SSO支持基本的认证方式,支持基于cookies和Form形式的认证。凭证信息的存储作为一个组件实现,使用Jetspeed2.0的安全模式存储凭证信息(即Portal中的用户凭证和其他系统的用户凭证是存放在一起,使用同样方式管理)。SSO功能包含三个方面:
           1、SSO管理
           管理SSO的凭证信息和建立Portal用户的对应关系。用admin登录,在“Jetspeed管理portlets”下有“SSO管理”,在这里有两个Portlet:j2-admin::SSOBrowserPortlet和j2-admin::SSODetailsPortlet。左侧的是站点信息管理,包括站点名称,站点URL,站点域,以及用户名和密码的参数名称。管理的是要访问站点的一些基本信息。右侧是管理此站点的用户与Portal用户的对应关系。远处的站点用户信息包括用户帐号和凭证,可以同Portal中的单个用户对应也可以同用户组对应。同一个站点下可以有多个对应关系。
     
           2、SSO Provider服务
           是Jetspeed服务框架的一部分,处理SSO站点和凭证信息的存储,并且提供了通过url来获得数据的接口(注,通过站点的链接/URL来获得内容,笔者一开始以为是通过站点名称)。站点信息都存放在SSOSite对象中,凭证信息都存放在SSOContext对象中。
     
           3、SSO Proxy Portlet
           这个Portlet为门户与被认证的站点提供了一个代理。它的主要目的是在它访问在配置参数中定义的目标地址之前认证所有SSO用户帐号的凭证。因为用户事先并不知道可能选择哪个目标地址。这样登录提示将不会出现,因为一个SSO入口已经存在并且用户已经被许可。SSO Proxy保留客户端的cache以便认证只发生一次。
     
    SSO应用:
           在Jetspeed2.0中自带了一个简单的例子程序SSO IFrame Portlet。Portlet根据目标地址获得站点的凭证信息,组成URL字符串,使用IFrame形式提交访问目标站点。注意:IFrame由程序代码自动生成。高度不能为百分比,否则IE6无法显示。
           SSOWebContentPortle是获取网页信息的Portlet,也使用了SSO。注意,需要将jetspeed/WEB-INF/lib/xerces-2.3.0.jar拷贝到demo/WEB-INF/lib目录下。
     
    总结:
           Jetspeed2.0中提供了站点信息和用户凭证的管理,建立了门户用户与其他应用系统用户的对应关系,并提供了获得这些数据的接口。使用Proxy Portlet可实现预登录。通过这些方法完成了简单的单点登录功能。但在实际应用中根据不同的系统需要做些二次开发工作。因为各系统的用户认证都是在各系统的认证授权模块完成的,Portal只是存储了用户凭证的对应关系,这样就存在了系统间凭证信息同步的问题。对此需要在实际应用中注意。

    发表于 @ 2006年05月21日 10:26:00|评论(loading...)|编辑

    新一篇: Portal性能优化 | 旧一篇: Jetspeed2.0中个性化定制的实现

    评论

    #左撇子的狒狒 发表于2006-08-11 09:41:00  IP: 202.117.7.*

    好文。
    #swift3907 发表于2007-12-14 16:06:57  IP: 10.11.48.*
    不错
    见识了,准备用jetspeed做一个基于网格的供应链系统
    #eminem1013 发表于2007-12-18 17:37:45  IP: unknown, 211.*
    关于jetspeed2的SSO,我有几个地方不大明白,希望楼主和各位牛人能赐教:
    1。为什么需要SSO Iframe portlet专门来为Iframe portlet形式集成进来的系统做单点登陆服务呢。不能直接通过sso sites和sso details两个portlet来完成吗?
    2。还有为什么jetspeed2.1版本的SSO Iframe portlet那个demo/sso-demo用007账号登陆不了?
    3。有了SSO Iframe portlet还需要sso sites和sso details吗?
    不胜感激了!!
    2007-12-24 16:59:41作者回复
    简单地可以把SSOIFrame看作前台由客户操作,sso sites和sso detail为后台管理员设置。<br />这两个应用场景是不一样的,虽然都有url,用户名,凭证这些设置,但SSOIFrame是为了登录到另一个系统中,而sso sites是为了管理系统要整合的其他站点。<br />至于sso sites是否有必要就要看你系统如何来设计了,是由管理员事先统一定义单点登录信息还是由用户自己设置。<br />还有很多单点登录的场景用IFrame形式是有问题的,这点需要根据实际情况进行二次开发。<br />最后关于007帐号不能登陆,只能自己跟踪程序找下原因了。
    #eminem1013 发表于2008-01-12 18:40:47  IP:
    非常感谢楼主的回答,真的非常感谢。
    验证的方式有5种(from,url,url.base64,base,base.prevent)。
    其中base认证(也有称之为基本认证)的域(reaml)应该是被集成站点自己的认证信息,为什么在SSO管理里面可配置?
    还有就是您说的系统要整合的其他站点和直接通过url后面加参数的方式访问其他系统有什么区别?是否表示如果被整合的站点需要做小修改才能被集成?
    还有就是SSO Proxy Portlet的用法能否再详细点(我的邮箱wuweihua_1983@163.com)。
    如果楼主方便的话,能否留下联系信息(msn,qq,e-mail)?
    #wenwen8104 发表于2008-07-08 10:11:19  IP: 58.20.43.*
    王浩老师,真不错拉
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 王浩