日常办公,经常需要购买一些第三方的软件或SaaS服务。
表面上看,你拿到的只是一个“登录账号和密码”;往深了想,这些账号直接关系到公司的业务运转和数据安全,对企业来说,这妥妥的是一笔重要的“数字资产”。
但现实情况是,往往一个账号需要好几个员工一起用。当企业把这些“资产”授权给多人共享时,各种管理漏洞立刻就暴露出来了:

这时就需要一套内部的账号资产管理系统,用于规范企业内成员对各平台账号的使用。目前,贝锐洋葱头提供了一套解决方案!

它基于C/S架构,客户端是一个企业浏览器,我把它称作“洋葱头浏览器”,简称“洋葱头”,服务器是运行在Ubuntu上的多个微服务。

并且,贝锐洋葱头的这套解决方案是需要企业自己部署的一套内部系统。
从管理角度看,洋葱头的这套系统基于4A原则:账号(Account)、认证(Authentication)、授权(Authorization)、审计(Audit)。
使用这套系统时,首先要对接企业当前正在使用的IAM系统或者其他形态的账号体系,如企业微信,钉钉,飞书,OpenLDAP, AD域等。

企业内成员在使用洋葱头时,需要先使用自己的企业内部账号登录,认证成功后获得相应的授权,授权包括他可以使用哪些第三方系统的账号。
企业内部成员在登录企业内部的各个系统时,用到的都是这个唯一的身份凭证。
需要注意的是,这个企业内部账号不同于第三方系统账号,我把后者定义为“账号资产”。
在授权方面,管理员可在服务器端配置策略,下发给洋葱头执行。
策略的下发对象是“用户”。例如策略下发给用户A,可以理解为是对A的授权,当用户A登录洋葱头时,即获得相应的授权。
同时,成员在使用这些账号访问对应的网站应用时, 他的访问行为会被审计。
当前,洋葱头企业账号资产管理系统通过以下几种方式管理账号资产:

企业购买的第三方系统大多需要通过浏览器访问,它们大多是web服务。
通常,人们在访问这些第三方系统的网站时需要手工填写账号密码(这个账号即是本文所说的“账号资产”)。
使用洋葱头后,管理员在控制台下发策略,将访问第三方系统“W”的账号授权给用户A。
当用户A登录洋葱头访问“W”时将不再需要手工填写账号密码,洋葱头会帮用户代填,这个过程是由洋葱头根据策略自动执行的,洋葱头在代填密码时还会把密码遮罩起来,避免密码被用户A获得。
用户不知道密码,也就不会泄露密码。同时,密码由管理员统一管理,也可以保证密码强度,密码定期更新等管理制度的执行。

用户使用普通浏览器登录第三方系统的网站后,浏览器会在cookie,LocalStorage等位置存储token、用户id、设备ID等一系列登录凭证。
管理员在使用洋葱头第一次登录成功后,洋葱头会把这些登录凭证上传到服务器。管理员在控制台通过策略把这些登录凭证授权给企业内部成员。
当成员登录洋葱头时,洋葱头会根据策略将登录凭证同步到本地,用户访问第三方系统网站时自动处于登录状态。

一些第三方系统的网站在登录时需要使用证书,证书存储在Ukey中,这种情况下账号代填功能无效。
同时,由于第三方系统的网站会通过浏览器检测本地的Ukey设备,即使远端的洋葱头浏览器获得了cookie等登录凭证,由于远端没有接入Ukey,也依然无法访问第三方系统的网站。
洋葱头通过USB-over-IP技术,将本地的Ukey映射到远端洋葱头设备中,实现Ukey远程接入。这样,Ukey在物理上只需要接入一台设备,即可远程授权给多台设备使用。
当然,作为一套完整的toB系统,审计是少不了的。在对用户授权之后, 用户访问业务网站时的操作会被审计。
审计的粒度包括PUT, POST等请求明文,当用户有鼠标点击动作时还会进行截图存档。洋葱头的审计动作是明确的通知用户的,仅限于指定的业务网站。用户在其他网站上的操作不会被审计。
最后,需要注意的是,上述方案需要部署洋葱头私有化版本,并且使用时请遵守各平台协议。