如何在nodejs中实现ABAC-基于属性的访问控制?它适合/适合小型和大型应用程序吗?

How to implement ABAC- Attribute Based Access Control in nodejs? Is it good / fit for small and large scale application?

如何在 nodejs 中实现 ABAC。我想使用他的位置和角色授予用户访问权限。 有人有演示吗?

我指的是 npm 包 PolicyLine:npm i policyline 指的是 link - https://www.npmjs.com/package/policyline

虽然这个问题有点老,但我还是想给其他有相同或相似问题的用户一些答案。

回答您最初的问题: 这取决于您的要求和应用。如果您需要根据权限和角色隐藏或显示某些字段,您应该使用 ABAC。如果您只想根据 models/entities 执行权限,那么一个简单的 ACL 就可以工作,甚至只是一个简单域中的一些预定义角色。

所以通常你知道你需要什么。根据应用程序,一个解决方案(或库)可以完全 fine/overkill 而在另一个中就足够了。

顺便说一句: 我还可以推荐 https://casl.js.org/,它得到积极维护,还提供 ABAC(包括基于时间的权限检查)。