Articles of acl

高级访问控制库

我有兴趣为用户访问软件系统内的资源进行高级访问控制。 我在医疗保健IT方面工作,年轻的我经常低估医疗保健中基于angular色的访问控制的复杂性。 但是这个问题应该适用于任何具有复杂ACL要求的人。 相当长一段时间, php gacl一直是我用于处理Health IT系统内非常复杂的ACL控制问题的目标库。 但是我现在正在更多地使用javascript和具体的节点。 我已经searchnpm图书馆以一般化的方式做访问控制。 我想支持定义操作,而不仅仅是用户和资源(3层而不是2层),我希望拥有用户,操作和资源组,并且暗示我想拥有ACLinheritance权。 从“星球大战”主题手册到该图书馆的典型例子是这样的规则: 所有船员都有(访问,configuration和使用)枪支,引擎,驾驶舱和rest室,期待chewie。 所有机器人都(访问和使用)进入驾驶舱,但只有R2D2configuration访问引擎。 汉族拥有各种types的资源。 这里的基本概念包括你可以制定适用于任何一组用户(例如船员,乘客或机器人)或个人(汉和Chewie)的规则,你可以有不同types的访问(访问,configuration,使用)或者对不同资源(发动机和驾驶舱)进行访问(主机访问=configuration+修理+使用)组,也可以将其分组,(战斗站=驾驶舱+枪)。 这允许configuration非常复杂的访问控制规则,并且相对简单的基于组的pipe理。 到目前为止,我在php-gacl之外没有见过这样的东西。 我看了一下精彩的基于JavaScript的ACL项目,所有这些都宣传简单易用,而不是全面。 其他典型的php ACL库也是如此(例如Zend ACL ) 是否有人在为节点“高级ACL”项目工作? 有没有更好的方法,我应该找的地方? php-gacl有三个部分,一个是基于php的pipe理GUI(这是公认的过于复杂),另一个是规则上的CRUD API(可以很容易地转换成REST接口,我认为)和一个非常小的提供ACL检查function的文件。 从技术上讲,只有最后一个types需要完全移植到节点才能使该软件模型正常工作? 在更深层次上,我想了解哪些方法已经成功地用来处理这个问题。 这个问题通常如何解决? 对于那些根据node / javascript甚至特定的数据库方法(关系vs非关系)来有效讨论这个问题的人来说,奖励点。 我知道有很多理论基础来做这个对错(比如对RBAC和ACL有很多意见)。 我想要的是理论上坚实的东西,或者从图书馆的angular度来看,它仍然是“正常的”。 我专注于Javascript,但是理解其他语言如何解决这个问题实在是太好了。

适合NodeJS的RBAC库

我们正在为基于angular色的访问控制(RBAC)寻找合适的Nodejs库。 我们做了一些调查,发现最stream行的解决scheme是https://github.com/OptimalBits/node_acl 它是基于Redis和Express中间件支持的访问控制列表模块。 这个图书馆有非常好的支持,而且非常受欢迎。 但在同一时间这里是另一个解决schemehttps://github.com/ForbesLindesay/connect-roles 这是授权提供商,旨在与连接或expression。 我看到最近一次承诺这个回购是在1年前完成的。 所以支持不是很好。 有人可能会build议什么库会更好地处理复杂的应用程序中的angular色和权限? 先谢谢你

ACL – 与护照一起实施acl

我正在尝试使用passport-local的 node_acl 。 当我运行我的代码时,我无法确保admin-user '/admin'的路由,并且我被redirect到/login页面。 在下面查找我的最小可运行示例: require('dotenv').config() const express = require('express') // const fs = require('fs') const path = require('path') const logger = require('morgan') const bodyParser = require('body-parser') const cookieParser = require('cookie-parser') const session = require('express-session') const passport = require('passport') const LocalStrategy = require('passport-local').Strategy const ACL = require('acl') // load user.json file // const d […]

在ExpressJS上使用mongoose运行“node_acl”

我在ExpressJS上构build了一个应用程序(类似于博客)。 我使用mongoose与MongoDB合作。 当我不得不在不同的ACL模块之间进行select时,我决定采用node_acl 。 令我困惑的是它使用的是mongodb模块,而不是mongoose。 根据ACL GitHub上的文档,必须这样使用: // Or Using the mongodb backend acl = new acl(new acl.mongodbBackend(dbInstance, prefix)); 如果我正在使用mongoose,那将会是一个db的实例? 我使用类似于:Account = mongoose.model('Account',new Schema({…}));

ACL如何在REST API中工作?

REST API是用ExpressJs 4.xx / NodeJS编写的。 我们假设一个接口: app.delete('/api/v1/users/:uid', function (req, res, next) { … } 所以用这个界面用户可以删除。 假设系统中有2个客户,每个客户都有用户。 用户可以拥有使用名为CustomersAdmin的angular色删除其他用户的权限。 但是,这个用户应该只能从他的公司(客户)删除用户。 所以,让我们来看看ACL。 假设在我们的ACL中,我们可以定义angular色,资源和权限。 (代码从http://github.com/OptimalBits/node_acl#middlware采用。) app.delete('/api/v1/users/:uid', acl.protect(), function (req, res, next) { // ? Delete User with uid = uid or check // ? first if current user is in same company as user uid } 有两件事情要考虑。 一个是保护从那个没有权限的用户到该路由上的HTTP / […]

ACL最佳实践,将angular色存储在用户对象中,还是单独的表/集合?

我正在使用nodejs,并且一直在研究过去一周的acl / authorization。 我只find了一对夫妇,但都没有看到我需要的所有function。 最近的是https://github.com/OptimalBits/node_acl ,但我不认为它支持通过id保护资源(例如,如果我想允许用户12345和只有用户12345访问用户/ 12345 /编辑)。 因此,我想我将不得不为自己制定一个自定义的acl解决scheme。 我的问题是,在每个用户对象下存储angular色(用户,pipe理员,主持人等)有什么优点和缺点,而不是创build另一个集合/表来映射每个用户的授权规则? node_acl使用单独的集合,而其他大多数依赖于用户对象中的roles数组。 顺便说一下,我现在正在使用Mongodb。 不过,我还没有研究使用关系数据库和非关系数据库进行身份validation的利弊,所以如果让我知道你的答案是否依赖于这个数据库。 当我打字的时候,我想到了一件事。 如果我将angular色存储在单独的集合中,则它更便于携带。 我将能够更容易地更换acl系统。 (我认为?)

是否有一个库与Hapi的细粒度的ACL /用户权限兼容?

希望使用HapiJS作为我们的API服务器。 我们需要细粒度的用户权限,例如“用户A可以编辑字段B”,“用户C可以查看字段D”以获得给定的模型/资源。 在我们开始构build一些东西之前,我一直在寻找是否已经完成了与Hapi兼容的事情。

Node.js和ACL

我select了我的项目Node.js + Express + Mongoose 。 到现在为止,我不需要使用ACL ,但是在这个项目阶段,我需要实现这个。 NPM包含几个模块,但哪一个可以select? 请告诉我你的ACL(Node.js + Express + Mongoose)的经验。 如果你知道任何教程,那将是非常棒的:),但并不是那么需要,我确实需要知道Node.js程序员使用哪些ACL。 最后的可能是写自己的acl中间件,对我来说可能是有趣的经验。 我想 :)