有对SSO有研究的吗?

公司有很多应用,一部分是在weblogic平台的JEE应用,一部分是.net平台的,比如基于sharepoint,还有第三方的很多也是.net的应用。我需要在所有这些平台实现单点登录。
起先,我采用了Sun OpenSSO 的解决方案, 那时候,基于.net的应用都是在IIS6上发布,而且这些应用都需要windows集成认证,而opensso IIS6 agent 可以支持Basic认证,因此可以实现SSO.
接下来,所有.net的应用都要发布在IIS7上,而opensso IIS7的policy agent暂时还不支持Basic认证,因此.net应用不好通过这种方式实现和JEE的应用集成。于是,另外一种方案 OpenSSO + ADFS 可以来实现,但是这个方案有个很大的问题,就是部署比较麻烦,特别是针对ADFS的配置以及在opensso 和ADFS之间实现federation sso, 这部分很难自动化配置,到产品环境后,Service team的人很难掌握相关的知识,而且,CTO是一个忠实的 microsoft 拥护者,不愿意采用非microsoft的解决方案,因此,这个也被枪毙。
现在在考虑kerberos,不知道这个能不能实现,有没有哪位高人有这方面的经验可以分享一下?

JOSSO - 轻量,独立服务器 simple, very easy to configure, Spring-based with support for many platforms including non J2EE/Java EE compliant ones like: PHP 4.x, PHP 5.x, MS ASP, and MS .NET

从没有网络安全知识的用户角度来看,Kerberos以加大用户参与安全保证的力度(而他们并不具备这方面的知识更没有耐心)来保障通信的安全,这种做法并不可行。
[该贴被banq于2009-09-15 17:52修改过]

谢谢banq的回复。
当初在选在SSO解决方案的时候,在OpenSSO和JOSSO之间做了些比较,虽然两者都是开源的,但是在文档支持方面,OpenSSO做得比JOSSO好些。我们用的weblogic是10.3的,在JOSSO支持的application server里面,没有看到,只有9.2,10.0.而且,对IIS的支持,我们的服务器有32位的,有64位的,不知道JOSSO的支持怎么样,对IIS7的支持怎样也不清楚,因此就选择了OpenSSO.
到目前为止,OpenSSO的Agent对IIS7只支持匿名认证,如果OpenSSO支持IIS7的Basic认证的话,那么我的问题就很好解决,全部采用OpenSSO的解决方案就可以实现。其实,单独采用ADFS也可以实现,不过weblogic需要有支持ADFS的Agent,而这个有第三方的公司提供,虽然是收费的,但是也会有一个问题,如果我们的应用服务器升级了,很可能还是需要等很长时间他们相应的agent才会出来,这个项目风险比较大。采用OpenSSO + ADFS可以解决这个问题,但是我们的CTO老头比较固执,本来就对非microsoft的东西不感冒,这样为了实现单点登录需要掌握的知识太多了,成本比较高。因此现在在研究看能不能直接采用kerberos来实现跨应用平台的单点登录。但是项目时间比较短,到正式release还有两个多月时间,不知道能不能搞定。

这个问题应用广泛,留名继续看大家讨论。

无论有多少SSO流派, 基本模式就是:用户通过 IdP(Identity Provider )授权后,能够拥有权限访问 SP(Service Provider )。

两种主要的SSO模式:
1. SSO based on User-IdP trust relation: 在用户和IdP之间有强烈的信任关系,
2. SSO based on IdP-SPs trust relation 在IdP和SP之间存在强烈的信任关系。

所以,有时你划分信任领域也非常重要。

参考这篇文章,对SSO主流技术有一个比较,篇中大部分观点我赞同:
杂谈单点登陆以及相关技术

1.kerberos源于微软,源于局域网,是古老的技术了。SAML是比较推荐的。

2.SAML是一个定义良好的规范,概念清晰,分层合理,扩展性良好,一切都很棒,但是有一点不好,就是曲高和寡!

2.Open ID是WWW万维网的一个模式,其实我在另外一篇REST文章说了,互联网都把世界上所有信息整合了,企业信息就不能整合?为什么不能借鉴互联网的理念呢?在SSO这个问题上,我还是相当看好Open ID的,大部分著名网站系统已经进入实用。

现在就是开放互联网领域比由少数IT企业巨头垄断的企业IT领域发展更快,作为IT使用者利益的代表,身为架构师的我们,更不应该局限于个别厂商的解决方案。

[该贴被banq于2009-09-16 10:04修改过]

这方面的的标准还在完善,我想在没有统一这前,按照自己的需求写一个,工作量和学习一个也多不了多少。

前段时间抽空看了一些kerberos相关的东西,感觉它不是用来解决我遇到的问题。比如有两台server, A和B, kerberos能解决的是访问A, 通过kerberos认证后,通过A去访问Server B。而我要解决的问题是:用户访问A,通过认证后,再直接访问B,不需要额外认证。

这几天在开发环境配置了一下Opensso 和 ADFS 通过 WS-Federation 建立 Federation SSO,ADFS作为IDP, OpenSSO作为SP, 感觉没有我想象中的那么麻烦。不过sun提供的文档有些含糊,也有可能是我的理解有问题,多花了我好几天才搞定。不过总的来说,OpenSSO 还是一个非常棒的解决方案,值得推荐。