首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建平台授权权限模型

构建平台授权权限模型
EN

Stack Overflow用户
提问于 2013-07-16 18:38:26
回答 1查看 2K关注 0票数 16

任何平台(PaaS)身份验证的安全性的一个重要部分是能够限制和/或定义特定应用程序或用户的“权限”或权限,无论是在用户/应用程序基础上还是在per-authentication基础上。

在现代平台或产品API中发现的通用权限模型基于"Scopes"的思想。在我的研究中,GitHubFacebookInstagram埃西 (等等)都在他们的OAuth实现中使用这种权限建模方式。然而,这种“作用域”模型似乎只关注外部(即。第三方)应用程序访问经过身份验证的用户数据。

在内部,权限模型似乎更关注基于“角色”的模型(管理、版主、用户等)或许多其他自定义实现。

我的问题是:“什么样的权限模型最适合现代PaaS,既希望限制其用户进行某些操作,又能限制第三方应用程序访问用户的数据,以及如何以一种具有性能意识的方式来构建该模型?”

我最初的研究让我发现了基于范围的权限模型的内部和外部用法。不幸的是,构建这样一个系统并不简单。我看到了创建这样一个体系结构的多种方法:

  1. AR友好的关系数据库方式:
代码语言:javascript
复制
- Creating multiple tables with join tables for a many-to-many relationship between a list of permissions, a user’s available permissions, a user’s token, and a user token’s active permissions.
- A user may authenticate with a token and specify as many permissions to be available on that token **up to** the permissions originally set for that user

  1. 巧妙的比特掩蔽方式:
代码语言:javascript
复制
- Using a simple integer column in a data set to store an integer value
- The integer value is accessed in a binary way, using bitwise operators to set, get, toggle (etc) the permissions of a user or their token by representing a permission as a single bit

对每个人来说,他们似乎各有优缺点。AR友好的方式似乎是一种非常灵活的解决方案,但也可能会严重影响性能,因为必须运行多个联接/查询,并且必须在上创建ORM模型实例--每个经过身份验证的调用。比特掩蔽方法似乎非常快速和高效,但开发起来不那么直观,而且更容易出错。此外,比特掩蔽似乎是一种限制解决方案,因为它只允许一个非常“二进制”的权限模型(可以或者不能做到),没有中间/快乐介质,而且它将限制基于硬件限制的硬64位限制。

是否有另一种权限建模或架构方法是我所忽略/不考虑的?还是说我在正确的轨道上,性能方面的考虑并不像我想象的那样(就关系方法而言)?

非常感谢!

tl;dr:

什么样的权限模型最适合现代PaaS,既希望限制其用户的某些操作,也希望限制第三方应用程序访问用户的数据,以及如何以一种具有性能意识的方式来构建该模型?

EN

回答 1

Stack Overflow用户

发布于 2013-07-24 19:02:08

我首先看一下。它们使用位掩码,可以(相对地)很容易地与ehcache这样的缓存集成。如果您使用JPA进行数据访问,也可以使用JPA的缓存。

http://static.springsource.org/spring-security/site/docs/current/reference/springsecurity.html

模式:

http://static.springsource.org/spring-security/site/docs/3.0.x/reference/appendix-schema.html

OAuth:

http://static.springsource.org/spring-security/oauth/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17684451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档