【问题标题】:Authentication for MVC4 Web ApiMVC4 Web API 的身份验证
【发布时间】:2012-10-08 09:58:33
【问题描述】:

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

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

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 实现简单身份提供者和安全性的最佳方式是什么?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      Create an OAuth 2.0 service provider using DotNetOpenAuth 之前我曾尝试回答与此类似的问题,其中我强调了 Thinkecture Identity ServerSetup instructions 不太难(恕我直言)安装视频是here,应该会有很大帮助。

      我也用这个更新了我的旧答案,但这里还有一个相当轻量级的 O-Auth 2.0 实现示例示例代码herehttp://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。我将查看轻量级 OAuth 示例。示例代码是我最需要的,因为我以前从未编写过自己的安全性:)。
      • 谢谢马克 - 看起来这个 MVC 的 OAuth2 对我有用。我试图让它与 Web Api 一起工作,但有一些问题(OAuthServiceBase.Instance.RequestToken() 抛出 NULL rererence 异常),但我希望在其他 SO 帖子中找到答案。
      • 马克,我刚刚打开了另一个关于这个 OAuth 2.0 for MVC 项目的问题。你知道答案吗?它是关于让项目中的 HttpRequest 扩展方法在 Web Api 中工作。 stackoverflow.com/questions/13060530/…
      【解决方案3】:

      嗯,安全很难:)

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

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

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

      【讨论】:

      • 是的,我注意到这很难:)。感谢您的指导。你是 Thinktecture 项目的合作伙伴之一,不是吗?看起来不错;但是很难找到文档,这让我担心有比我正在寻找的更多的步骤......我的场景需要安全性,但没有很多安全数据。您只是想确保没有人入侵他人的帐户以以他的身份登录。
      猜你喜欢
      • 1970-01-01
      • 2017-10-22
      • 2014-01-28
      • 2012-06-16
      • 2016-07-03
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      相关资源
      最近更新 更多