我已被分配到查找在我们的产品中实现SSO的方法。我们有几个Winform应用程序和一个asp.net 4.0 web应用程序(而不是MVC)。单点登录WinForms应用程序和asp.net wep应用程序
所有产品都使用.Net 4.0构建,Web应用程序为ASP.NET 4.0。一些Winforms通过web服务(asmx)与我们的API进行通信,一些则直接使用我们的API。 Web应用程序也使用相同的API。我们提供一组使用相同API的外部客户端的Web服务(asmx)。
目前,我们已经在我们的系统,我们自己的身份认证实施方案(用户名,密码,角色),我们想更换与SSO。或者这两种认证制度可以以某种方式共存? Winforms在Intranet中使用,Web应用程序在Intranet中使用,我们还托管客户端的Web应用程序(可从Internet访问)。
的用户在我们的系统中创建的,但在同一时间,我们用我们自己的工具导入用户从Active Directory。活动目录实际上是主要的用户来源。
我已阅读关于Windows身份基础和我不知道我是否可以使用它来实现SSO。但我不明白的是,如何在Winform应用程序中直接使用API时使用WIF。
我想达成什么是从系统中删除所有的用户管理和使用Active Directory作为用户来源。我想这意味着使用ADFS 2.0创建索赔等
我可以使用.Net框架4.5在此实现(我知道,WIF现在在.Net框架4.5中的头等公民)。
你有什么建议如何做到这一点? WIF是在Winforms应用程序和Web应用程序之间实现SSO的最佳选择吗?
非常彻底的答案,Wiktor :)所以没有WebBrowser控件的Winforms没有办法使用WIF?最好的方法可能是重构所有Winform应用程序以使用WCF服务,并让WIF从那里开始工作? – OKB
我不确定活动场景(通过WCF的WIF)是否更好。假设ADFS与另一个自定义STS联合,然后通过Oauth2与Google联合。被动场景会轻松处理(这只是少数重定向问题),但活动场景将失败。在我们的系统中,我们决定采用被动方案,我们在我们的胜利形式应用程序中托管网络浏览器,我们捕获本地身份验证cookie并向cookie提供Web服务代理,以便服务器将胜利表单应用程序识别为已验证身份。它现在工作了2年,没有重大问题。 –