平时工作中,测试团队或运营支撑团队总会需要管理、共享大量的密码。图方便之余,就演变成了大量的11111、123456简单密码。
目前市面上的密码管理工具都是个人用的,团队间只能将完整的库文件通过WebDave的方式共享,无法满足基于角色做相关的权限控制及分层的需求。相关的SaaS平台要么不免费,要么要收费(没错,就是这么矛盾)。
虽然公司内部基于开源的TeamPass搭建了密码管理及分享平台,但是基于开源总是难用的原因,一直推广不下去。原作者提供的浏览器插件需要收费,只支持Firefox,而且万年不更新。
TeamPass支持Ldap登陆,多级文件夹管理,角色管理,角色-文件夹读写权限管理,RestAPI等功能,本身功能是很强大的,就是界面操作很反人类。所以只要写一个Chrome/Firefox插件,能够 自动填充密码,生成密码,保存新密码,更新旧密码即可。
Github上有很多Chrome的KeePass的插件,经过精挑细选,最终选定
keepassxreboot/keepassxc-browser
github.com
图标
作为模板,修改相关的功能支持TeamPass的接口即可。
TeamPass自带的RestAPI接口权限管理混乱,有用户ApiKey,有系统ApiKey,没有权限区分,可以互相查看彼此密码,跟页面管理那套接口完全不相关。代码也是相当迷人,还能正常工作,不愧是最好的语言。
首先进行RestAPI接口的修改工作,只支持用户ApiKey,只提供以下接口
/read/whoami - 列出当前用户信息
/read/mypws - 列出当前用户可见的密码
/read/myfolders - 列出当前用户可见的文件夹
/find/item - 根据url和keyword查询当前用户可见的密码
/add/item - 新增密码到指定可写文件夹
/update/item - 更新密码
接下来修改Kesspassxc-browser,支持上述的6个接口即可。