4

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

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

是否可以针对外部 ADFS 服务器对 Windows 桌面应用程序(用 .NET 编写)进行身份验证?如果是这样,请你举个例子吗?

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

或者,对于移动应用程序,托管我们自己的充当“中间人”的内部网络服务会更好吗?同样,任何这样的例子都将不胜感激。

谢谢大卫

4

2 回答 2

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

于 2012-06-25T18:37:15.153 回答
1

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

因此,链条将是:桌面和移动 - OAuth - 自定义 STS - WS Fed - ADFS

于 2012-06-25T19:39:08.593 回答