V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hpze2000
V2EX  ›  程序员

公司有很多个管理系统, 负责着各种不同的功能, 现在是每个系统都有各自的后台用户管理,权限控制。导致每登录一个系统都需要输入不同的账号密码进行管理,十分不便。

  •  
  •   hpze2000 · 2013-09-09 15:27:23 +08:00 · 7316 次点击
    这是一个创建于 4099 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司有很多个管理系统, 负责着各种不同的功能, 现在是每个系统都有各自的后台用户管理,权限控制。导致每登录一个系统都需要输入不同的账号密码进行管理,十分不便。

    有没有什么可以把这些系统的用户权限管理,统一起来的方法, 当然前提当然是最好,竟可能的最小化的使现有系统的代码不做改变。
    38 条回复    1970-01-01 08:00:00 +08:00
    refresh
        1
    refresh  
       2013-09-09 15:29:15 +08:00
    sso,然后在url层面做校验,但无法针对内容做权限限制。
    tangzujun
        2
    tangzujun  
       2013-09-09 15:29:32 +08:00 via Android
    使用统一的ERP系统
    hpze2000
        3
    hpze2000  
    OP
       2013-09-09 15:32:59 +08:00   ❤️ 1
    @tangzujun 这样自然最好,但是代价较大。
    hpze2000
        4
    hpze2000  
    OP
       2013-09-09 15:33:51 +08:00
    @refresh 这个没具体了解过, 但是具体的菜单按钮等控制这些 不能吗?
    myluluy
        5
    myluluy  
       2013-09-09 15:39:08 +08:00
    hpze2000
        6
    hpze2000  
    OP
       2013-09-09 15:40:10 +08:00
    @myluluy 。。。 就这样? 是什么请问?
    refresh
        7
    refresh  
       2013-09-09 15:44:43 +08:00   ❤️ 1
    @hpze2000 把权限控制到单独一个项目,前端层面,用js+ajax进行控制,也就说,载入一个页面,先用遮罩隐藏所有内容,ajax请求到权限后,js控制哪些显示哪些disable等等。后端加一个代理层处理权限。不过麻烦也不少,好处是基本不用动现在的代码,但总不是长久之计。如果某个系统发生变更,权限判定也需要变更,权宜之计吧。
    如果是企业内网这类系统,直接前端控制就好了,比较重要的才后端校验。
    hpze2000
        8
    hpze2000  
    OP
       2013-09-09 15:50:51 +08:00
    @refresh 好的, 去了解了解先。。
    rrfeng
        9
    rrfeng  
       2013-09-09 15:53:07 +08:00
    还是可以考虑一下整合改进比较好,不动原有代码的代价就是添加额外代码,复杂度会上升吧

    不如一劳永逸……
    hpze2000
        10
    hpze2000  
    OP
       2013-09-09 15:56:16 +08:00
    @rrfeng 有没有好点的参考方案
    halfbloodrock
        11
    halfbloodrock  
       2013-09-09 15:59:40 +08:00
    这些系统难道都不支持AD域帐号认证的?!
    wotodoo
        12
    wotodoo  
       2013-09-09 16:01:31 +08:00
    sso单点登录,可以使用cas来处理,有java,php,.net客户端,每个应用做接口
    ldap进行用户身份验证
    rrfeng
        13
    rrfeng  
       2013-09-09 16:03:59 +08:00
    @hpze2000

    我只是随便想想,具体也没遇到过。

    参考方案的话,JIRA + Confluence 这种算不算……
    hpze2000
        14
    hpze2000  
    OP
       2013-09-09 16:04:50 +08:00
    @halfbloodrock 没做这个支持
    tangzujun
        15
    tangzujun  
       2013-09-09 16:11:58 +08:00 via Android
    @hpze2000 去看一款免费的ERP 叫2BizBox 我用起来不错 这应该不算打广告吧
    hpze2000
        16
    hpze2000  
    OP
       2013-09-09 16:16:26 +08:00
    @tangzujun 但是现在 不是ERP 能解决我这个问题啊。
    noahzh
        17
    noahzh  
       2013-09-09 16:29:49 +08:00
    ldmp 解决.
    hpze2000
        18
    hpze2000  
    OP
       2013-09-09 16:33:11 +08:00
    @noahzh LDMP ? 是什么, 好像没听说过, 百度貌似也无结果?
    clino
        19
    clino  
       2013-09-09 16:56:10 +08:00
    用户验证可以统一用sso系统,例如 ldap等方式
    不过权限可就不好整了,一般还是系统自己来维护吧
    b824379598
        20
    b824379598  
       2013-09-09 19:14:39 +08:00 via Android
    sso cas单点登陆spring编写,我正在做
    takwai
        21
    takwai  
       2013-09-09 19:38:06 +08:00 via Android   ❤️ 1
    把权限全部整在一起估计不好弄,毕竟都不同系统,权限管理肯定都不一样。

    还是用SSO吧,新建一个用户登录表。前提要整理各自系统的帐号,毕竟一个员工可能几个后台帐号都不一样。最后登录页面可能就员工号加帐号加密码。

    1、新登录页,登录成功则显示几个后台的大图标,指向各自后台接收的令牌和哈希值。
    2、当后台的页面接收饭令牌和哈希值时,将接收到的值传回给SSO验证,通过则返回一个通用格式,json或xml,包含令牌,工号,帐号等信息。
    3、然后各自后台就可以根据返回的信息对已有用户权限表进行验证,通过则生成需要的cookies或session即可。

    当用户想跳转其他后台时,把令牌和哈希值传给其他后台接收地址即可。
    yylzcom
        22
    yylzcom  
       2013-09-09 20:09:22 +08:00   ❤️ 1
    我的办法比较菜鸟,如果是网页登录的,直接一个keepass+chromeIPass+KeePassHttp搞定,直接打开网页(等一两秒等用户名密码自动填充之后)回车,然后就登录上了

    软件的话也简单,设置窗口匹配然后按快捷键,用户名密码就自动填充甚至登录了
    yorkw
        23
    yorkw  
       2013-09-09 20:09:36 +08:00   ❤️ 1
    Windows环境比较通用且成熟的方案是Active Directory + LDAP
    roricon
        24
    roricon  
       2013-09-09 21:01:18 +08:00
    额,难道没人考虑过给这些系统增加一个[使用QQ登陆]or[使用新浪微博登陆]这样的功能嘛……
    也用不了多少行代码就能实现……
    walleve
        25
    walleve  
       2013-09-09 21:33:01 +08:00
    企业用户管理系统,可以直接实现。保证企业用户资料永不丢失,甚至当你换了公司,这些信息仍然可用...
    swulling
        26
    swulling  
       2013-09-09 21:58:53 +08:00
    CAS
    hpze2000
        27
    hpze2000  
    OP
       2013-09-10 08:52:56 +08:00
    @takwai 恩, 你说的比较详细, 谢谢,
    跟我现在要解决的情况差不多。
    我好好研究研究,
    hpze2000
        28
    hpze2000  
    OP
       2013-09-10 08:53:40 +08:00   ❤️ 1
    @roricon 这个。。。 我们是内部的,一般不会这么做, 而且员工离职了, 账号需要全部收回。
    hpze2000
        29
    hpze2000  
    OP
       2013-09-10 08:54:37 +08:00
    @yylzcom 你说的这种, 我确实有考虑过, 但是考虑到操做起来 还是不大方便。估计在各个系统之间不好推广。
    roricon
        30
    roricon  
       2013-09-10 09:01:57 +08:00
    @hpze2000 额,想回复结果点错感谢回复者了。
    按照我的理解,这些离职员工的账号实际上也是不会被删除的吧。删除可能会导致查询历史流程的时候产生错误或者不必要的麻烦。
    你可以在你的库里面给这些人加上状态比如[冻结][注销][休假]之类的。
    这样等员工离职,手工注销一下不让他登陆不就完事儿了么
    zqqf16
        31
    zqqf16  
       2013-09-10 09:50:10 +08:00
    用Radius或者LDAP来做用户认证啊
    eYsir
        32
    eYsir  
       2013-09-10 11:03:37 +08:00
    只需要在任意一个系统登录时同时登录其他系统就OK啦。更改下js
    aveline
        33
    aveline  
       2013-09-10 11:41:59 +08:00 via iPhone
    LDAP
    jazdelu
        34
    jazdelu  
       2013-09-10 14:37:22 +08:00
    IBM portal 。单点登录咯
    viperasi
        35
    viperasi  
       2013-09-10 15:17:11 +08:00
    刚把公司的4个独立系统整合成LZ说的样子,做了单点登录,用activemq做数据同步。
    SevenJ
        36
    SevenJ  
       2013-09-10 18:54:58 +08:00
    kerberos认证
    loveminds
        37
    loveminds  
       2013-09-11 05:41:08 +08:00
    你需要的 只是个SSO(LDAP/Radius)什么的吧
    sarowlwp
        38
    sarowlwp  
       2013-09-11 11:18:13 +08:00
    LDAP 吧,权限应该只和用户id关联,但是如果用户在不同系统用不同的id,那就需要统一用户ID了

    如果更深层次的话,可以考虑cookie做文章,不过这个就需要改动比较多的代码了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2929 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:52 · PVG 10:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.