Nodejs 应用如何配合 keystone 实现 RBAC 功能

2017-07-14 09:41:48 +08:00
 richiewu

准备开发 Nodejs 下的企业内应用并实现 RBAC,大致了解了下实现方式,按我的理解是这样的:

  1. Openstack 的 keystone 可以配合 LDAP 实现用户的认证及权限配置
  2. 在 keystone 中针对应用配置不同项目的用户角色所具有目标资源的权限
  3. Nodejs 应用调用 keystone API,传入角色,目标资源等参数后返回是否具有权限后应用自行控制

或者各位大神有很好的用 Keystone 实现 RBAC 实例可否分享

3513 次点击
所在节点    Node.js
5 条回复
monsterxx03
2017-07-14 09:56:13 +08:00
OpenStack 里的其他服务都是通过一个 middleware 来实现 keystone 的认证的,你可以照着它实现一遍。https://github.com/openstack/keystonemiddleware/blob/master/keystonemiddleware/auth_token/__init__.py


记得几年前 LDAP 的实现基本是废的,现在不知道怎么样。
alouha
2017-07-14 11:51:34 +08:00
关注下,楼主找到好的方案后麻烦 @下我
richiewu
2017-07-28 09:20:58 +08:00
@HowardMei @zac
两位大神能不能看看
HowardMei
2017-07-28 15:46:46 +08:00
@richiewu 没有现成的,另外你问得也太宽泛,用途是自己 Intranet 用用,还是放到产品里面?准备投入多少开发人力?

如果只是自己 Intranet 里面用,我对 Nodejs 一窍不通,仅以 Django 为例,说下可能的思路:

User/Group ID & Auth 由 LDAP 作 Provider,用 https://pypi.python.org/pypi/django-auth-ldap 连接

RBAC Roles/Assignments/Resources/Tokens 用 SQL DB 存储,参考 https://github.com/ging/fiware-idm (参考其 API 设计,不推荐其 Fork keystone 直接改的方式)

Authorization Policies 管理,用 Openstack 自己的 https://github.com/openstack/oslo.policy

Keystone 处于中间连接位置,相当于 MVC 里的 Controller,剩下 View 的部分不用多讲

如果是放到规模化产品里面,人力又不特别充裕,建议不要自己折腾,老老实实买商业方案集成进去,因为要把 IAM 功能和安全都搞到位,很不容易,特别是安全方面需要专家。
richiewu
2017-08-23 10:29:26 +08:00
@HowardMei 非常感谢,已经提供了思路
目前只是内部管理系统实现,将来可能会根据情况作为产品实现,所以现在还可以折腾一下,将来不行了再考虑买个成熟方案吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/375240

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX