Nodejs 应用如何配合 keystone 实现 RBAC 功能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
richiewu
V2EX    Node.js

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

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

    准备开发 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 用 QL 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     Solana     2391 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 02:01 PVG 10:01 LAX 18:01 JFK 21:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86