ADFS身份验证委派桌面/移动应用程序

时间:2012-06-25 15:35:32

标签: .net authentication oauth-2.0 adfs2.0 adfs

我想知道是否有人可以指出我正确的方向。我们目前正在考虑为客户端托管一个Web应用程序,该客户端将对客户端的ADFS IIS服务器进行身份验证,以便利用SSO等。这一切都很好,没有任何问题。

当我们考虑现有的桌面和移动应用程序(.NET,iOS,Android等)时会出现问题。我们需要针对与Web应用程序相同的用户存储来验证这些应用程序。

是否可以针对外部ADFS服务器验证Windows桌面应用程序(用.NET编写)?如果是这样,请你指点我的例子吗?

是否可以针对ADFS验证本机移动应用程序?我想我们需要手动创建HTTP请求等来处理这个问题。有人可以在任何相关的文档/示例中指出我吗?

或者,对于移动应用程序,最好是托管我们自己的内部Web服务,它充当“中间人”。再次,非常感谢任何这方面的例子。

由于 大卫

2 个答案:

答案 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

REST /设备: http://msdn.microsoft.com/en-us/library/hh446533

答案 1 :(得分:1)

另一种可能的解决方案是使用自定义STS将OAuth“转换”为SAML令牌,然后将ADFS与自定义STS联合。在Identity Server中有一个例子。

所以链条会例如是:桌面和移动 - OAuth - 自定义STS - WS Fed - ADFS