0

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

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

我的问题在于试图弄清楚如何实现单点登录,因为据我所知,OpenID 和 OpenAuth 之类的东西用于 facebook、twitter、基于 SSO 的链接,即基于消费者的 SSO。

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

谁能告诉我如何以及是否应该将 OpenID/OpenAuth 用于这种情况,以及优缺点是什么?

另外,基于令牌的 SSO 会是一个好主意吗?考虑到所有应用程序都将位于同一个域中(已设置 SSL)。

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

谢谢尼尔

4

2 回答 2

1

正如您提到的,您的所有应用程序都在同一个域中,并且您正在寻找内部 SSO 解决方案,我建议您使用基于 cookie 的 SSO 服务。仅仅是因为

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

更新:

可扩展性:

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

饼干:

  • 饼干处理不是火箭科学。浏览器会在 HTTP 请求中自动将 cookie 发送到您的服务器,您只需阅读它即可。
  • 在用户登录时创建cookie。将域属性设置为您的根域,以便其他子域可以访问它。
  • 当用户尝试登录应用程序时检查 cookie。如果存在 cookie,则表示用户已经登录。
  • 用户注销时不要忘记删除它们。
于 2013-01-30T11:14:57.417 回答
0

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

于 2013-01-30T12:24:22.627 回答