使用Oauth实现App时,授权的冲突概念

时间:2012-09-05 13:43:23

标签: web-applications oauth authorization oauth-2.0 crud

这主要是一个措辞问题。但是,虽然这是一个非常重要的问题,但可能会导致大型代码库中的错误解释被更大的团队维护。假设我们有一个非常基本的CRUD / RESTful应用程序和一个身份验证系统。在这种情况下,将通过服务器(身份验证)识别尝试完成数据更改请求(POST / PUT)的经过身份验证的用户,然后将检查此标识的用户是否有权创建/更新资源。问题(授权)。

现在让我们说我将在稍后阶段实现Oauth协议,支持某种Web API解决方案。在这种情况下,来自客户端应用程序A的用户必须要求资源提供程序的授权执行某些操作。

截至目前,我们在同一个应用中有两个有效的授权概念。在应用程序级别,它不是一个大问题,因为我们可以将两个概念包含在相关的命名空间中,但在DB中我有两个有效的候选者不能共享名称授权即可。

由于我不是命名空间表名称的忠实粉丝,我想建议可能重命名其中一个(或者可能是其他一些你可能实现过的疯狂解决方案)。

Cheerio

1 个答案:

答案 0 :(得分:1)

oauthgrants或仅使用更具描述性名称的前缀authorizations怎么样?: user_authorizationsapp_user_authorizations。这可能违反了有关命名空间的规则,但会更具描述性。

user_authorizationsauthorizations只会拥有用户允许在系统中执行的操作。

app_user_authorizationsoauthgrants将拥有用户通过OAuth授予第三方应用程序的权限。它将存储:用户ID,OAuth 2.0客户端ID,授予的范围,刷新令牌(如果存在),到期(如果存在)。它也可能具有访问令牌,具体取决于您如何实现它们(或者它们可能位于另一个表中,或者因为它们可以加密验证而存储在其中)