V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
richiewu
V2EX  ›  Node.js

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

  •  
  •   richiewu · 2017-07-14 09:41:48 +08:00 · 3490 次点击
    这是一个创建于 2671 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    5 条回复    2017-08-23 10:29:26 +08:00
    monsterxx03
        1
    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
        2
    alouha  
       2017-07-14 11:51:34 +08:00
    关注下,楼主找到好的方案后麻烦 @下我
    richiewu
        3
    richiewu  
    OP
       2017-07-28 09:20:58 +08:00
    @HowardMei @zac
    两位大神能不能看看
    HowardMei
        4
    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
        5
    richiewu  
    OP
       2017-08-23 10:29:26 +08:00
    @HowardMei 非常感谢,已经提供了思路
    目前只是内部管理系统实现,将来可能会根据情况作为产品实现,所以现在还可以折腾一下,将来不行了再考虑买个成熟方案吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5517 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:26 · PVG 09:26 · LAX 17:26 · JFK 20:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.