具有和不具有用户上下文的OAuth API

时间:2014-06-05 01:45:19

标签: api rest authentication architecture oauth

我即将在设计阶段编写一个新的RESTful API。我跟谈过的几个人一直在告诉我OAuth,所以我正在做一些功课。

有一件事我没有真正看到,也许并不多(没有人?)正在这样做,但我想要这个API,我正在努力使用或不使用用户的上下文。

基本上,如果您使用经过身份验证的用户调用API,则会从用户的首选项中加载一些参数。但我想构建它,以便在没有用户的情况下可以调用相同的调用,在这种情况下,它们需要从用户帐户读取的其他参数。

这是否很难实现,因为我想将OAuth用于基于用户的方法签名的身份验证组件?将它们构建为两个独立的API会更好吗?

我的另一个目标是在两种情况下都使用相同的应用程序密钥 / 应用程序密钥范例。

这样你就可以更具体地了解我的意思,想象一下这些我希望在我的API中支持的psuedo函数签名

/**
 * Search, when called with a user. Here I'd like to authenticate via OAuth
 */
function search(string search, object user)

/**
 * Search, when called without a user requires more arguments.
 * These calls require application key/application secret
 * but no user authentication.
 */
function search(string search, object coupon_preferences, object store_preferences)

1 个答案:

答案 0 :(得分:1)

OAuth 2.0(RF​​C 6749)将流定义为客户端凭据授权

在流程中,客户端应用程序访问令牌端点,OAuth授权服务器向客户端发出访问令牌,无需任何用户身份验证/授权。

有关详细信息,请参阅RFC 6749的“4.4 Client Credentials Grant”。