【问题标题】:What is best for auth ASP.NET MVC REST API? OAuth 2.0 or OAuth 1.0?什么最适合 auth ASP.NET MVC REST API? OAuth 2.0 还是 OAuth 1.0?
【发布时间】:2012-03-02 09:07:02
【问题描述】:

我们正在使用 ASP.NET MVC 构建一个 REST API。此 API 在原理和用法上与 Factual v3 API 相似。他们的 API 使用 2-legged Oauth 1。我们的设计在应用程序方面非常相似,主要是移动设备将在幕后使用我们的 API 来提供服务。应用程序的最终用户不会知道我们的 API,因此不会有任何凭据。因此,通过浏览器窗口将用户重定向到身份验证表单(如 facebook)没有任何意义。我的问题是..

  • 为什么 OAuth2 流最适合在这种情况下使用?
  • 我们应该使用 Oauth2 还是只使用 2-legged OAuth 1?

作为参考,我们使用 C#/.NET、ASP.NET MVC 3 并计划使用 DotNetOpenAuth v4。

http://developer.factual.com/display/docs/Factual+Developer+APIs+Version+3

【问题讨论】:

    标签: asp.net-mvc api rest oauth-2.0 dotnetopenauth


    【解决方案1】:

    为什么 OAuth2 流最适合在这种情况下使用?

    不一定。 OAuth 2 是一个未最终确定的规范。如果您需要最大程度的互操作性,OAuth 1.0 是更好的选择(目前)。 OAuth 2对客户端来说更简单,但会显着增加服务器的复杂性。

    我们应该使用 OAuth2 还是只使用 2-legged OAuth 1?

    使用上面列出的优缺点进行选择。此外,如果您使用 DotNetOpenAuth,OAuth 1.0 支持已经存在多年,而 OAuth 2.0 支持尚未完全成熟,因此您可能会遇到一些困难。

    【讨论】:

    • 由于 Oauth2 是新的,让我们使用 Oauth1。我下载了最新版本的 DotNetOpenAuth 4 (rc1)。我有时间整理所有示例以找到与我们需要的示例相似的示例。我们正在使用 ASP.NET MVC 4 Web Api 来构建其余的 api。我真的只需要能够使用带有 api 密钥和秘密的 oauth 签署请求,然后在服务器端有一个授权属性来解码这个请求并根据数据库中的密钥和秘密对其进行验证。我应该遵循哪个示例?
    • OAuthServiceProvider 和 OAuthConsumer 示例最相关。但听起来用户与您的场景无关 - 所以听起来您正在描述0-legged OAuth。虽然我认为没有具体的示例,但移植上述示例应该非常简单,以便满足您的需求。
    【解决方案2】:

    【讨论】:

    • 我关心的是支持水平。该代码大约在一年前更新。
    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2014-03-18
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多