企业的企业SSO实施

时间:2013-01-30 11:01:01

标签: c# security authentication single-sign-on

我一直试图在企业环境中了解SSO以及最适合我公司问题的解决方案。

我们在我们的域名上运行了几个应用程序(主要是.net但有些是java)... a.mydomain.com,b.mydomain.com等...

我的问题在于试图找出如何实现单点登录,因为据我所知,OpenID和OpenAuth等用于基于SSO的基于消费者的SSO链接的facebook,twitter。

我们想要一个内部SSO系统设置,但我找不到许多企业示例,说明如何执行此操作以及要使用的协议/框架/服务器。

任何人都可以告诉我这个案例应该如何以及是否应该使用OpenID / OpenAuth,以及它的优点和缺点是什么?

另外,基于令牌的SSO对此有好处吗?考虑所有应用程序将在同一个域上(SSL已设置)。

最后,基于cookie的SSO怎么样,这是一个好主意吗?

由于 尼尔

2 个答案:

答案 0 :(得分:1)

正如您所提到的,所有应用都位于同一个域中而您正在寻找内部SSO解决方案,我建议您选择基于Cookie的SSO服务。仅仅因为

  • 实施起来会更容易。只需检查cookie并授予用户访问应用程序的权限。
  • 您的不同应用之间没有XML消息交换(无需设计架构)
  • 您无需聘请任何Web服务专家。 (只要您的开发人员知道如何处理cookie)
  • 最终将取决于您的可扩展性要求

更新

可扩展性:

  • 将来您可以在不同的地理位置扩展您的用户群。
  • 您的不同应用程序可能具有不同的服务器,用户数据库可能会分发。
  • 在这种情况下,您必须维护身份存储库以将身份验证作为服务。(这是您提到的身份验证框架所做的事情)

饼干:

  • Cookie处理不是火箭科学。浏览器自动发送cookie 您的服务器在HTTP请求中,您只需阅读它。
  • 创建用户登录的cookie。将域属性设置为根域,以便 其他子域名可以访问它。
  • 用户尝试登录应用时检查Cookie。如果存在cookie,则表示用户已登录。
  • 用户退出时不要忘记删除它们。

答案 1 :(得分:0)

Active Directory联合身份验证服务(http://msdn.microsoft.com/en-us/library/bb897402.aspx)是一种企业解决方案。我不建议编写自己的令牌发行者,因为涉及很多风险,安全性和性能。