当前位置:  开发笔记 > 程序员 > 正文

具有多个用户角色的REST,缓存和授权

如何解决《具有多个用户角色的REST,缓存和授权》经验,为你挑选了1个好方法。

我们有一个多租户系统,具有多种不同的访问级别 - 有时甚至是同一个用户,因为他们在多个角色之间切换.我们开始讨论转移到RESTful实现的事情.我刚刚开始尝试整个REST的事情.

那么如何在访问资源时限制对正确记录的访问,特别是在考虑缓存时?如果用户A访问,example.com/employees他们将收到与用户B不同的响应; 用户A在切换到不同角色时甚至可能会收到不同的响应.为了帮助促进缓存,角色的id应该以某种方式合并到uri中吗?也许类似example.com/employees/123(违反REST的规则),或某种类似的从属资源example.com/employees/role/123(这似乎很愚蠢,因为role/###它将被附加到遍布各处的URI).我可以帮忙,但我想我在这里遗漏了一些东西.

编辑提到多租户



1> Remus Rusanu..:

让用户凭证充当带外资源标识符(即,在不同角色的同一URL上呈现不同视图)将变得令人讨厌.用户和应用程序在它们之间交换URL,当发生这种情况时,事情会变得很糟糕,并且URL只会返回不同凭据的不同内容

我会说每个角色都有不同的世界观,因此每个角色都应该访问服务的不同路径:

管理员连接到example.com/admin/employees

用户连接到example.com/users/employees

角色foo可能连接到example.com/foo/employees

通过这种方式,你可以将'这个角色视为世界本身,并且这个'部分来自'世界的这个视图可以被角色foo'部分访问.管理员可以连接到example.com/users/employees并验证普通用户如何看待这个世界,而管理员不必首先冒充较低特权别名.

您也可以将DNS部分用于相同目的:admin.example.com/employees与users.example.com/employees.当"角色"不是安全角色而是多租户命名空间(即每个服务提供的帐户获得其自己的服务"视图")时,这对于相关场景特别可行.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有