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

发布于 2024-12-05 15:55:32 字数 272 浏览 0 评论 0原文

我目前正在考虑创建一个应用程序以部署到天蓝色云。考虑使用 Azure 而不是 Amazon 的主要原因是访问控制服务。我希望我的应用程序接受尽可能多的不同凭据类型,尤其是 Facebook。

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

I'm currently considering creating an application to deploy to the azure cloud. The main reason for considering Azure over Amazon is the access control service. I want to accept as many different credential types as possible for my application, especially Facebook.

Some of the user's will be using the HTML based application, others a WPF client application. The question is, how do I authenticate the client using whichever provider they want and then communicate with the WCF service. I'm guessing I need to use the web-browser component in my application, or pop-up an external browser (ideally support both options for paranoid users), but I'm not clear how to then use that connection for the WCF service.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谁把谁当真 2024-12-12 15:55:32

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

为了确保对 WCF 服务的访问安全,您可以使用 ACS 通过简单 Web 令牌 (SWT) 实施身份验证。通过您选择的搜索引擎可以找到几个这样的示例。

抱歉,我目前无法给您提供更具体的示例。我使用 i 设备进行移动,因此对工具的访问权限有限。

Consider separating the authentication of the user to the application from the authentication between application and WCF service.

To secure access to the WCF service, you can use the ACS to implement authentication using a Simple Web Token (SWT). There are several examples of this available through your search engine of choice.

Sorry I can't give you a more concrete example at the moment. I'm mobile with an i-device and thus have limited access to tools.

猫九 2024-12-12 15:55:32

我认为您的目的是如何对这个 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 令牌与您的服务器通信。

I think your intend is some how Authenticate/Authorize users for this WCF service right? In this case you can look at the "Windows 7 phone application" sample: http://msdn.microsoft.com/en-us/library/gg983271.aspx. In here you will see that this sample is using "javascriptnotify" protocol.

For WPF WebBrowser control there are many articles which describe how to get notifications from the javascript in the DOM.

This way you can get a token for your WPF application and then you will need to use the same token to authenticate to WCF service.

In the case of the Web Application you can get the token from WSFam module. One way to do this might be registering for SecurityTokenReceived event on WSFam.

This way for both scenario you can end up with a SAML token.

Then you can author your own custom SAML TokenProvider for the WCF and use the SAML token you got from ACS to talk to your server.

末蓝 2024-12-12 15:55:32

您正在寻找的称为“主动联盟”。
请参阅此问题

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

What you're looking for is called 'active federation'.
See this question

Typically, your web clients will use the passive form, in which they are redirected to a login page owned by a Security Token Service. You can't redirect a wpf or winforms application, so your application needs to go through the motions that your browser does behind the scenes for you, including negotiating and caching the security token you receive from the STS and then presenting it on each request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文