MVC4 Web Api的身份验证

4
我正在尝试保护我的MVC4 Web Api。实际上,我只需要一个带有轻微安全性的身份提供者。从安全角度来看,我的服务类似于Twitter,并没有太多私人数据,但是服务确实需要知道调用者的用户ID。
还要注意的是,当前Web服务仅由移动设备使用,尽管未来可能会有一个网站与之相伴而生。
S.O.和互联网让我了解到Thinktecture.IdentityModel,但这似乎很复杂,我找不到任何文档或示例。我也没有过有关基于声明的身份验证的愉快经历。我没有声明服务器、令牌提供程序或任何类似的内容,使用此方法似乎需要这些。这对于我的情况来说已经太重了。
我还阅读了一些人们实现自己的HMAC解决方案(https://github.com/cuongle/WebAPI.Hmac)或使用OAuth(https://github.com/maksymilian-majer/DevDefined.OAuth),但这些也似乎有点复杂(我已经阅读过没有辅助类的OAuth足以使最好的开发人员哭泣,而我不是最好的)。Janrain看起来可能可以工作,但是看起来您必须为每年超过2,500个经过身份验证的用户付费...
如何实现Web Api的简单身份提供程序和安全性最佳方法?
谢谢!
3个回答

4
我之前曾尝试回答过一个类似的问题,链接在这里:使用DotNetOpenAuth创建OAuth 2.0服务提供者,其中我强调了Thinkecture Identity Server。安装说明并不太难(在我看来),安装视频在这里,应该会有很大帮助。
我已经更新了我的旧答案,并加入了一个相当轻量级的O-Auth 2.0实现示例,样本代码在这里,下载地址:http://code.google.com/p/codesmith/downloads/detail?name=OAuth2.zip&can=2&q=#makechanges
您是否也阅读了这个表述清晰的问题?如何对来自移动设备(iPhone)应用程序发送的请求进行身份验证,以使用ASP.Net Web API(请反馈我的设计)

谢谢Mark - 昨晚在写这篇文章之前,我就已经给你的回答点了个赞。我会查看轻量级OAuth示例的。最重要的是,我需要示例代码,因为我以前从未编写过自己的安全性代码 :)。 - Andrew B Schultz
谢谢Mark - 看起来这个OAuth2 for MVC对我很有用。我正在尝试将其与Web Api一起使用,但遇到了一些问题(OAuthServiceBase.Instance.RequestToken()抛出了一个NULL引用异常),但我希望在其他SO帖子中找到答案。 - Andrew B Schultz
马克,我刚刚又开了一个关于这个OAuth 2.0 for MVC项目的问题。你知道答案吗?它是关于在Web Api中让项目中的HttpRequest扩展方法工作的问题。http://stackoverflow.com/questions/13060530/getting-httprequest-extension-method-written-for-mvc-to-work-in-web-api - Andrew B Schultz

1

1

嗯,安全性很难 :)

至于Thinktecture.IdentityModel——这是一个令牌处理库(还有其他功能),您可以在WebAPI应用程序中使用它。您可以使用此功能,以便无需执行接受令牌的逻辑(基本身份验证、SAML、SWT、JWT)。声明只是一个副作用。

如果您正在寻找身份提供者,则姊妹开源项目Thinktecture.IdentityServer正在进行版本2的测试版。它是支持自定义数据库并发放令牌的身份提供者。该项目网址为:

http://thinktecture.github.com/Thinktecture.IdentityServer.v2/


是的,我注意到这很困难 :)。感谢指导。您是Thinktecture项目的合作伙伴之一,对吗?它看起来很棒;不过很难找到文档,这让我担心可能有比我想要的更多的步骤...我的场景需要安全性,但并没有很多安全数据。您只需确保没有人会以另一个人的帐户登录并被黑客攻击即可。 - Andrew B Schultz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接