繁体   English   中英

客户端WPF应用程序如何通过Azure上的WCF服务进行身份验证?

[英]How does a client WPF application authenticate with a WCF service on Azure?

我目前正在考虑创建一个部署到azure云的应用程序。 考虑Azure优于亚马逊的主要原因是访问控制服务。 我希望为我的应用程序接受尽可能多的不同凭据类型,尤其是Facebook。

一些用户将使用基于HTML的应用程序,其他用户将使用WPF客户端应用程序。 问题是,如何使用他们想要的任何提供程序对客户端进行身份验证,然后与WCF服务进行通信。 我猜我需要在我的应用程序中使用Web浏览器组件,或弹出一个外部浏览器(理想情况下支持偏执用户的两个选项),但我不清楚如何将该连接用于WCF服务。

您正在寻找的是“活跃联邦”。 看到这个问题

通常,您的Web客户端将使用被动表单,在该表单中,它们被重定向到安全令牌服务所拥有的登录页面。 您无法重定向wpf或winforms应用程序,因此您的应用程序需要经历您的浏览器在幕后为您执行的操作,包括协商和缓存您从STS收到的安全令牌,然后在每个请求中显示它。

考虑将用户的身份验证与应用程序和WCF服务之间的身份验证分开。

要保护对WCF服务的访问,可以使用ACS通过简单Web令牌(SWT)实现身份验证。 有几个例子可以通过您选择的搜索引擎获得。

对不起,我暂时不能给你一个更具体的例子。 我使用i-device移动,因此对工具的访问权限有限。

我认为您打算如何验证/授权用户使用此WCF服务? 在这种情况下,您可以查看“Windows 7手机应用程序”示例: http//msdn.microsoft.com/en-us/library/gg983271.aspx 在这里,您将看到此示例使用“javascriptnotify”协议。

对于WPF WebBrowser控件,有很多文章描述了如何从DOM中的javascript获取通知。

这样,您可以获得WPF应用程序的令牌,然后您将需要使用相同的令牌来验证WCF服务。

对于Web应用程序,您可以从WSFam模块获取令牌。 一种方法是在WSFam上注册SecurityTokenReceived事件。

对于这两种情况,这种方式最终都可以使用SAML令牌。

然后,您可以为WCF创建自己的自定义SAML TokenProvider,并使用从ACS获得的SAML令牌与您的服务器通信。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM