ooP*_*ter 7 .net web-farm e-commerce wif single-sign-on
我认为这是一个相当复杂的问题,所以我会尽力在这里说清楚.
我正在寻找单点登录(SSO)解决方案.我知道很多选项,但是当我添加他们需要满足的标准时,已经排除了大部分选项.以下是标准:
1.)必须将SSO添加到现有的"系统"中.
2.)现有的"系统"由"X"个网站组成.
3.)所有"x"网站都是电子商务.
4.)这些网站全部归Y公司所有,其中95%的系统是内部建造的.
5.)每个"X"个网站都在同一个Web Farm中.
6.)所有网站共享以下组件:
7.)为了使当前环境正常工作,机器密钥已经在负载平衡服务器之间同步(并且已经存在了一段时间).
8.)由于流量非常大,因此需要高可用性和稳定性.
所有这些标准都让我走上了WIF和自定义STS的道路,与我们现有的会员认证服务一起使用.像OpenID和其他开源解决方案这样的东西似乎都倾向于跨公司的互操作性; 这是不需要或不想要的.理想的解决方案将是100%内部并允许用户登录网站"1",做他们想做的任何事情然后去网站"2"(也在负载均衡器后面托管,甚至可能在同一个网站上Web服务器,因为用户是网站"1")并已登录.
以下是我查看的替代方法列表以及排除这些方法的相应原因(或者我应该重新考虑其中一些替代方案?).
所以问题是:考虑到负载均衡器和已经共享的用户帐户数据,WIF是否会在我们现有的环境中工作,还是有更好的方法?
如果您需要任何澄清,请告诉我.
编辑:
只是为了澄清我希望实现的目标(或者我认为我正在努力实现的目标):
ADFS v2.0 仅针对 AD 进行身份验证。如果您当前的身份验证方法是其他方法(例如 SQL Server),那么您需要自定义 STS。
这些应用程序都是ASP.NET吗?
如果是这样,它们都需要使用 WIF 启用声明。
如果没有,例如 Java,您将必须使用另一种解决方案(例如 OpenSSO / Ping Federate)保护它们,并将该产品与 ADFS 联合。
如果是经典 ASP,有多种方法可以让 ADFS 处理身份验证,但授权是一个问题。这些角色将位于经典 ASP 无法访问的声明对象内。您也可以使用 C2WTS 来实现此目的。
您正在考虑身份验证或授权或两者兼而有之?ADFS 提供声明对象内的角色,因此程序中现有的授权机制可能必须更改。
您可以对 ADFS 站点进行负载平衡。
ADFS 当然可以在您的所有站点上启用 SSO。如果您将来需要考虑的话,它还可能允许您与其他站点/组织联合并通过 Azure ACS 使用外部凭据(例如 Facebook)。
它还允许您与 SharePoint 2010、CRM Dynamics 2010 和 Office 365 集成,所有这些都启用了声明。