MVC4 Web Api的身份验证

时间:2012-10-18 02:35:32

标签: oauth asp.net-web-api oauth-2.0

我正在努力保护我的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 个答案:

答案 0 :(得分:4)

我试图在Create an OAuth 2.0 service provider using DotNetOpenAuth之前回答类似的问题,其中我突出了Thinkecture Identity 服务器Setup instructions并不太难(恕我直言)安装视频为here,应该会有很多帮助。

我已用此更新了我的旧答案,但此处还有一个相当轻量级的O-Auth 2.0实现示例示例代码here http://code.google.com/p/codesmith/downloads/detail?name=OAuth2.zip&can=2&q=#makechanges

你是否也在这里阅读了这个明确的问题Authenticating requests from mobile (iPhone) app to ASP.Net Web API (Feedback requested on my design)

答案 1 :(得分:1)

嗯,安全性很难:)

至于Thinktecture.IdentityModel - 这是您在WebAPI应用程序中使用的令牌处理库(以及其他内容)。您可以使用它,因此您不需要执行逻辑来接受令牌(基本身份验证,SAML,SWT,JWT)。索赔只是一种副作用。

如果您正在寻找身份提供商,那么姐妹开源项目Thinktecture.IdentityServer将面向版本2进行测试。它是一个支持自定义数据库和发行令牌的身份提供商。项目网址为:

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

答案 2 :(得分:1)

为了回答将示例代码作为文档查找的问题,请考虑Thinktecture github存储库中的samples文件夹:https://github.com/thinktecture/Thinktecture.IdentityModel.45/tree/master/Samples

(为什么你需要更多的声誉来评论SO而不是回答?)