4

我正在尝试保护我的 MVC4 Web Api。实际上,我真的需要一个具有一些安全性的身份提供者。我的服务类似于 twitter,从安全的角度来看,没有很多私人数据,但服务确实需要知道调用者的用户 ID。

同样重要的是要知道 Web 服务现在只能由移动设备使用,尽管网站可能会在未来某个时候伴随它。

所以和互联网把我带到了 Thinktecture.IdentityModel,但是看起来很复杂,我可以找到零文档或样本。在基于声明的身份验证方面,我还没有愉快的经历。我没有声明服务器、令牌提供程序或类似的东西,您似乎需要它才能使用此方法。对于我的情况来说,这一切似乎都太沉重了。

我还阅读了有关实施自己的 HMAC 解决方案 (https://github.com/cuongle/WebAPI.Hmac) 或使用 OAuth (https://github.com/maksymilian-majer/DevDefined.OAuth) 的人,但这些也是看起来有点复杂(我读过没有帮助类的 OAuth 足以让最好的开发人员哭泣,而我不是最好的)。Janrain 看起来可能会起作用,但看起来您每年必须为超过 2,500 个经过身份验证的用户付费......

为 Web Api 实现简单身份提供者和安全性的最佳方法是什么?

谢谢!

4

3 回答 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

您是否也在这里阅读过这个清晰的问题Authenticating requests from mobile (iPhone) app to ASP.Net Web API (Feedback requested on my design)

于 2012-10-18T11:53:52.167 回答
1

针对查找示例代码作为文档的问题,考虑 Thinktecture github repo 中的 samples 文件夹:https ://github.com/thinktecture/Thinktecture.IdentityModel.45/tree/master/Samples

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

于 2013-06-12T19:37:07.400 回答
1

好吧,安全性很难:)

至于 Thinktecture.IdentityModel——这是一个令牌处理库(除其他外),您将在 WebAPI 应用程序中使用它。您将使用它,因此您不需要执行逻辑来接受令牌(基本身份验证、SAML、SWT、JWT)。索赔只是副作用。

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

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

于 2012-10-18T03:43:32.363 回答