JavaEye - portal sso

来源:百度文库 编辑:神马文学网 时间:2024/04/27 19:23:35
这段时间一直在做Portal和Businessware的集成工作,其实就是SSO啦。
看到前面的兄弟有人说,WebLogic的SSO差,说WebSphere的SSO不允许扩展(关键是你要怎么个扩展法),我觉得都不太准确。下面我来说说我的看法。首先,SSO从Realm的角度上来分,大体分为两种:
1. Back end 和 Portal Service在同一个Realm中(Single Realm)
2. Back end 和 Portal Service分别在不同的Realm中(Multi Realm)
可以简单理解为是否都在防火墙的同一边(其实这样理解也不是太准确)。
下面一家一家的说:
WebLogic Portal 8.1 SP4:
通过JAAS支持Single Realm SSO。具体就是你自己实现一个标准的JAAS LoginModule,然后再实现几个WebLogic Security Framework的特有接口(SSPIs)以形成一个Authentication Provider,把它加入到WebLogic Security infrastructure中,在认证过程中就完成了SSO。Back end通常都要和WebLogic Portal在同一个物理域中。标准程度:50%,因为认证这块完全是使用标准的JAAS Authentication module,授权就是BEA扩展JAAS实现的,使用起来感觉的和标准的差不多。评价:JAAS标准的忠实跟随者,实现SSO时需要深度侵入,这个不太好,如果需要支持Multi-realm,BEA的人会建议你找siteminder的。
WebSphere Portal 5.1:
IBM不愧为软件巨头,Single-realm和Multi-realm通杀。对于Single-realm的同样是基于标准的JAAS,你可以写自己的LoginModule并且Plug-in到WebSphere的Security infrastructure中。但是,这里要注意一点,WebSphere Portal5.1对应的WebSphere Application Server也是5.1版本,这个版本的对于用户添加自己的LoginModule支持似乎不是太好,文档很少基本上只有一个Disclaimer的支持宣称。到了刚刚出来的WAS6.0就不同了,呵呵,文档详细,扩展性强大,对标准的支持与BEA不相上下了,但是WPS6.0还没有推出。晕~~~。对于Multi-realm,IBM可以说是支持的非常好的了,当然就是它的Credential Vault架构,虽然是非标准的东西,但是Idea不错,同样支持扩展,你可以通过implement interface的方式实现自己的Credential Vault Service。标准程度:50%。评价:功能齐全,历史悠久。还有WebSphere提供了功能强大的各种callback实现,值得各家学习呀! +1
SunOne Portal 2005Q1:
Sun的东西就是有性格,它的Portal根本就不是纯JAVA的,除了支持一般的Web Portal还支持其特有的DeskTop Portal,也许是知道自己的AS搞不过别人吧,Web Portal那一块听说还可以Deploy到WebLogic和WebSphere上run。
它对于SSO的支持同样与众不同,Portal本身根本不提供,认证,授权等等一系列的Security Service,完完全全交给其Portal Bundled的Sun Java System Access Manager产品来支持,其实也不是什么新东西,就是以前Identify Server换了一层皮而已。通过隔离这一层,其对Single-realm和Multi-realm也是通杀。JAAS, WebService Security等各种Java的Security标准也全部支持。可以选择的SSO实现方法就多了。但是,我要骂它一句,JAAS那东西都是你们公司那个宫力整出来的,为什么再对实现第三方的JAAS LoginModule时非要继承那个恶心的父类呀!(不过后来听说也支持pure的JAAS LoginModule直接嵌入,但是骂了再说)。目前可以下载到的Sun Java Access Manager只有Solaris8/9/10和Red Hat Enterprise2.1/3.0的版本。Access Manager的SSO实现架构其实是非常有特色的,我非常喜欢,如果想了解,可以去看看JOSSO的架构,搞不清楚,他们谁抄谁的,在我看来基本一样。评价:Cool!侵入性较小。
最后再说说JetSpeed 2这个超级跳票王吧。说好了2005初release 1.0Final的,NND,现在才刚刚进入1.0-M3-dev,还有N个Bug没有修,不知道bluesunrise的哥们忙什么去了。不过基本架构已经定下来了,基于Spring,完全支持JAAS 的认证和授权,提供了简单的Multi-Realm的支持(这估计是抄WebSphere的)。Single-Thread Portlet render的时候还比较稳定,打开Multi-thread就crash啦。有一点要特别说明的,J2的authentication虽然是基于JAAS,但是实现上有很严重的问题,希望是我对美国的那些软件大师的设计理念理解错误吧! Amen~~~大家如果有空都去顶一下Apache JetSpeed2的开发吧!完全基于Maven的POM,Jira的项目管理,上手很快的啦!
以上评论:
全部都是发发牢骚,一句话:Disclaimer。错漏难免,最后再佩服一下IBM的Red book作者,什么Multi-realm, Single-realm都是这些概念大师们的杰作啦。