Asp.net web api 重组现有Web API-我应该使用OAuth吗?

Asp.net web api 重组现有Web API-我应该使用OAuth吗?,asp.net-web-api,oauth,oauth-2.0,Asp.net Web Api,Oauth,Oauth 2.0,关于MVC WebAPI OAuth的大多数文章都假设有某个资源所有者(如个人)将授权发布数据。在我们的例子中,数据是公开的,如待售产品或部门名称等。API只是隐藏了对创建日期、活动用户等内容的不必要/恶意访问——当然,也避免了前端开发人员学习数据库模式 OAuth是否适合这种不存在特定所有者的场景 OAuth是否适合这种不存在特定所有者的场景 是的 当然,OAuth规范的主要重点是保护资源所有者拥有的资源,但它当然也可以保护其他资源。以Facebook为例:它不仅保护你的数据,还保护你朋友的数

关于MVC WebAPI OAuth的大多数文章都假设有某个资源所有者(如个人)将授权发布数据。在我们的例子中,数据是公开的,如待售产品或部门名称等。API只是隐藏了对创建日期、活动用户等内容的不必要/恶意访问——当然,也避免了前端开发人员学习数据库模式

OAuth是否适合这种不存在特定所有者的场景

OAuth是否适合这种不存在特定所有者的场景

是的

当然,OAuth规范的主要重点是保护资源所有者拥有的资源,但它当然也可以保护其他资源。以Facebook为例:它不仅保护你的数据,还保护你朋友的数据,你可以访问这些数据

在您的情况下,您需要保护这些字段,而OAuth是一种很好的机制,可以让具有必要权限的用户授权应用程序访问这些字段。没有必要权利的用户(如果他们是注册用户的话)当然不能这样做

此外,用户通常拥有一个资源:用户的配置文件数据

OAuth 2.0是目前可用于保护web API的最佳协议。

如果您允许任何人(=任何客户端应用程序)不受任何限制地访问您的API,您就不必关心OAuth

另一方面,如果希望只允许从预先注册的客户端应用程序进行访问,那么RFC6749(OAuth 2.0)中的“”可能是最适合您的。流不会将访问令牌与任何特定的资源所有者相关联。访问令牌仅基于客户端应用程序的客户端凭据(=客户端ID和客户端机密)发出