我想知道是否有人可以指出我正确的方向。我们目前正在考虑为客户端托管一个Web应用程序,该客户端将对客户端的ADFS IIS服务器进行身份验证,以便利用SSO等。这一切都很好,没有任何问题。
当我们考虑现有的桌面和移动应用程序(.NET,iOS,Android等)时会出现问题。我们需要针对与Web应用程序相同的用户存储来验证这些应用程序。
是否可以针对外部ADFS服务器验证Windows桌面应用程序(用.NET编写)?如果是这样,请你指点我的例子吗?
是否可以针对ADFS验证本机移动应用程序?我想我们需要手动创建HTTP请求等来处理这个问题。有人可以在任何相关的文档/示例中指出我吗?
或者,对于移动应用程序,最好是托管我们自己的内部Web服务,它充当“中间人”。再次,非常感谢任何这方面的例子。
由于 大卫
答案 0 :(得分:2)
这取决于您从客户端(移动设备或桌面设备)呼叫的服务类型。如果它是一个SOAP Web服务,那么它就是开箱即用的(例如使用WS-Trust)。 WCF已经为基于声明的身份验证提供了绑定,因此除了.NET之外,您在客户端上不需要太多。
移动客户端倾向于采用轻量级协议(例如OAuth,REST端点等)。 ADFS不支持这些,但您可以添加ACS(Windows Azure Active Directory)并将其作为中介,为您执行协议转换。
这两种方案的好例子可以在这里找到:http://msdn.microsoft.com/en-us/library/ff423674.aspx
具体做法是:
<强> SOAP:强> http://msdn.microsoft.com/en-us/library/hh446528
答案 1 :(得分:1)
另一种可能的解决方案是使用自定义STS将OAuth“转换”为SAML令牌,然后将ADFS与自定义STS联合。在Identity Server中有一个例子。
所以链条会例如是:桌面和移动 - OAuth - 自定义STS - WS Fed - ADFS