开发使用oAuth作为身份验证提供程序的ASP.NET WCF服务

时间:2012-07-31 17:09:47

标签: asp.net ios wcf rest oauth

我正在开发一个需要与Web服务器后端通信的iOS应用程序。我的目的是使用ASP.NET WCF开发Web服务。

在iOS方面,我使用RESTKit来访问Web服务。

我已经阅读了很多不同的文章,这里有关于堆栈溢出的问题,并且很难找到对我的需求的明确答案。我可以想象这是一个非常常见的情况,所以我想我会发布一个问题,为我和其他任何人解决这个问题。

我需要验证iOS应用程序和ASP.NET服务之间的请求,oAuth似乎是一个很好的方法。起初我开始阅读oAuth 2 Legged,并按照本教程设法获得了一个有效的实现 - http://www.cleancode.co.nz/blog/523/oauth-dot-net(我遵循了本教程中的第二个选项)。

这很有效,但是我无法知道请求代表哪个用户。然后我意识到可能标准的3腿oAuth对我来说。

我偶然发现了DevDefined.OAuth.WCF和DotNetOpenAuth。两者似乎都缺乏全面的文档。

我尝试跟随DotNetOpenAuth提供程序示例,但我很难理解它是如何工作的。

所以我的问题:

是否有人知道使用ASP.NET设置oAuth提供程序以及使用oAuth保护WCF Web服务的良好解释。

我是否以正确的方式解决这个问题,对我来说是oAuth吗?

当iOS应用和服务器都由我编码时,oAuth将如何工作?我不希望用户必须授予对此应用的访问权限。当他们输入登录详细信息时应该是自动的。

我真的很感激任何人都可以放下来帮助我!这让我疯狂了几个星期。

谢谢和最诚挚的问候 马修凯西

PS。对于发布到Stack Overflow的任何错误,我们深表歉意。以前没有在这里发布过!

1 个答案:

答案 0 :(得分:0)

我不知道杰克关于.net的东西,但我目前正在寻找为我们自己的可信任iOS应用程序实现REST网络服务。

决定让我们的应用程序直接收集用户的用户名/密码。 然后我们实现了一个特殊的端点,它本质上是第一个get_request_token调用(带有所有适当的头/签名/等)。这允许我们验证api_key和app_secret(来自验证签名)。然后,此调用将直接返回access_token。 (跳过常规3条腿流程中的一个步骤)此access_token将绑定到用户并具有常规access_token的所有标准属性。

我想这是一个2腿的oauth的变种,但我觉得它更干净

如果您需要,请尽快了解更多详情。