使用WIF在多个电子商务网站的.NET Web场中实现SSO?

使用WIF在多个电子商务网站的.NET Web场中实现SSO?,.net,e-commerce,single-sign-on,wif,web-farm,.net,E Commerce,Single Sign On,Wif,Web Farm,我有一个我认为相当复杂的问题,所以我会尽我最大的努力在这里表达出来 我正在寻找单一登录(SSO)解决方案。我知道有很多选择,但在我添加他们需要满足的标准时,排除了大多数选择。以下是标准: 1.)必须将SSO添加到现有的“系统”。 2.)现有的“系统”由“X”个网站组成。 3.)所有“x”网站都是电子商务。 4.)这些网站都归Y公司所有,该公司95%的系统是内部构建的。 5.)每个“X”数量的网站都在同一个Web场中。 6.)所有网站共享以下组件: DAL(数据访问层) 数据库(购物车、订单、用

我有一个我认为相当复杂的问题,所以我会尽我最大的努力在这里表达出来

我正在寻找单一登录(SSO)解决方案。我知道有很多选择,但在我添加他们需要满足的标准时,排除了大多数选择。以下是标准:

1.)必须将SSO添加到现有的“系统”。
2.)现有的“系统”由“X”个网站组成。
3.)所有“x”网站都是电子商务。
4.)这些网站都归Y公司所有,该公司95%的系统是内部构建的。
5.)每个“X”数量的网站都在同一个Web场中。
6.)所有网站共享以下组件:

  • DAL(数据访问层)
  • 数据库(购物车、订单、用户、库存等)
  • 身份验证(WebForms和MVC中的表单身份验证)
7.)为了使当前环境正常工作,已经在负载平衡服务器之间同步了机器密钥(并且已经同步了一段时间)。
8.)由于流量非常大,因此需要高可用性和稳定性

所有这些标准都引导我走上了WIF和定制STS的道路,以便与我们现有的成员身份验证服务一起使用。OpenID和其他开源解决方案似乎都倾向于跨公司的互操作性;这是不需要或不想要的。理想的解决方案是100%内部,允许用户登录网站“1”,做任何他们想做的事情,然后转到网站“2”(也托管在负载平衡器后面,甚至可能与用户登录网站“1”的web服务器相同),并且已经登录

下面是我看过的替代方法列表,以及排除它们的相应原因(或者我应该重新考虑其中一些替代方法吗?)

  • OpenID:这被排除在外有几个原因,主要是因为我的 组织正在寻找“内部”SSO和与的集成 不支持外部网站或与外部网站一起使用的ID系统 想要的
  • 卡斯:在大多数情况下,这似乎也是一个不错的选择。 最终它被排除在外,因为它使用的技术(Java, Apache、Maven等)将需要额外的努力和资金来 理解、实施、支持和扩展(主要是.NET商店)
  • OAuth:看起来它更倾向于公开受保护的数据 通过网络服务。完全习惯 ():A 完全定制的方法可能有太多的实现时间 这种方法更关注安全性
  • DotNetOpenAuth:依赖/基于OpenID
因此,问题是:鉴于负载均衡器和网站上已经共享的用户帐户数据,WIF能否在我们现有的环境中工作,还是有更好的方法

如果您需要任何澄清,请告诉我

编辑:

只是想澄清一下我希望实现的目标(或者考虑到我所做的研究,我认为我正在努力实现的目标)是:



ADFS v2.0仅针对AD进行身份验证。如果您当前的身份验证方法是其他方法(例如SQL Server),则您需要自定义STS

这些应用程序都是ASP.NET吗

如果是这样,它们都需要使用WIF启用声明

如果不是,例如Java,则必须使用另一种解决方案(例如OpenSSO/Ping Federate)保护它们,并将此产品与ADF联合

如果是经典ASP,则有一些方法允许ADF处理身份验证,但授权是一个问题。角色将位于claims对象中,经典ASP无法访问该对象。您也可以为此使用C2WT

你是在考虑认证还是授权,还是两者兼而有之?ADFS提供索赔对象内的角色,因此您的计划中的现有授权机制可能必须更改

您可以对ADFS站点进行负载平衡

ADF当然可以跨所有站点启用SSO。它还可能允许您与其他站点/组织联合,并通过Azure ACS使用外部凭证(例如脸谱网),如果这是您未来需要考虑的事项。p>
它还允许您与SharePoint 2010、CRM Dynamics 2010和Office 365集成,所有这些都支持索赔。

这些网站都是.NET,不是经典网站。我对ADFS的理解是,Active Directory是STS验证用户声明的来源(我可能弄错了)。如果是这样的话,那么ADFS就不是一个可行的选择,因为我们的会员数据根本与AD无关。WIF可以在没有AD的情况下使用吗?如果它不是ADFS,那么它是否可以不进行负载平衡?此外,我认为我们需要身份验证和授权,因为当用户通过身份验证时,某些页面的行为会有所不同。其工作方式是将STS(针对SQL Server进行身份验证)与ADF联合。自定义STS可以根据您想要的任何内容进行身份验证。用于授权的属性可以从AD、SQL Server或LDAP的任意组合中派生。您不必使用WIF/ADF进行授权。您可以简单地将其用于SSO(身份验证),并将您的授权代码保留为isIt,似乎您的答案是正确的,但您能否根据我在编辑中添加的图表确认这一点?请注意,图表中完全没有与AD相关的内容。谢谢好的-所以您需要一个针对SQL Server进行身份验证的自定义STS。看这里。顺便说一句,有一个ADFS代理服务器。