1. 开始
前端相关的白名单包括游戏内测试入口、现网vConsole、现网添加虚拟队员等。
当前白名单管理存在以下问题:
没有有效期控制,离职人员、外部临时测试人员拥有无限期的入口访问权限
只有
opened
,没有姓名(身份)与openid
的对应关系所有游戏的入口白名单是同一份,一个外部测试人员想开王者的入口,结果所有游戏的入口都开了
由于当前的白名单没有清理机制,而人员变动又较频繁,所以很可能被某些人恶意截图、录屏发到网上。一旦发生,可能泄漏业务敏感信息、影响团队的口碑,并且由于是游戏内入口,甚至可能影响到游戏。

2. 设计
由于存在以上问题,重新做了下白名单管理。设计原则为安全、简单、易扩展。
- 独立的申请、审批、删除、查看,可以放在前端研发平台
- 前端管理原始数据,页面可以请求COS数据进行白名单检验,也可以请求后台接口,后台依据此COS数据,判断权限
3. 实现
由于 myoa
创建单据回调地址只能是 oa
区或者 idc
区,当前前端管理的服务器基本是在 devnet
,且公司安全限制 oa
和 devent
不能互通。所以自行创建 myoa
单据并不可行。这里借助了蓝盾流水线。
- 用户在研发平台申请,研发平台后台远程调用蓝盾流水线,等待审批。同时生成操作记录、白名单单据
- 审批通过后,回调给研发平台后台。研发平台后台将修改白名单单据状态、操作记录状态,以及修改COS数据
- 管理定时任务,根据单据有效期、申请时间判读是否过期,清理过期时间,并更新COS数据

这里为了简单用了COS数据,每种不同的权限类型(区分游戏)有不同的COS文件。COS文件为了保护隐私只放 Open Id,如果还是担心有风险,可进一步 md5
加密。甚至可以走后台,后台读取此文件,判断是否为白名单。
权限类型列表(区分游戏)、审批人、COS文件名等都放到七彩石维护,不同权限(区分游戏)审批人都可以单独设置。

每次权限变动都发送机器人通知,避免预期之外的变动。

细节部分,openId
和权限类型是主键,每次创建单据,都检查库里有没有,没有的话,直接入库。有的话,并且 status
是 pending
,则报错单据已存在,如果 status
不是 pending
,则更新这条单据的其他信息,尤其是 status
更新为 pending
。
4. 申请地址
研发平台申请入口点击这里,有需要的可以自助申请。

5. 常见问题
5.1. 账户所属人的含义是什么
不是所有人都有内网权限。你可以给自己申请,也可以根据业务需要给三方合作者、外部测试人员申请。账户所属人就是申请账号的拥有者,公司内的填企业微信名字,非公司内的填名字和所在单位。
5.2. openId 是哪个应用的
当前业务的。
由于端内测试入口都是 ingame-page
的子工程,也就是基本是 pvpapp
的。
vConsole
权限则不一定是 pvpapp
,可咨询想要验证业务的前端负责人。
5.3. openId 怎么获取
Cookie、接口请求的 header
参数、tipAI
机器人等方式都可以查到,具体可咨询想要验证业务的前端负责人。
5.4. 有效期最短为一天,有必要吗?
很有必要。有些三方合作者、外部测试人员就只是想临时测试一下。
5.5. 定时任务执行频率
当前每隔1小时处理一下,可根据实际需要进行调整。
5.6. vConsole 权限能否也根据业务区分
业务可根据自身安全需要,进行权限类型的扩展。具体步骤:
- 在七彩石配置下权限类型、COS文件信息
- 研发平台申请相应权限
- 业务配置文件增加
vConsole.checkWhiteCosUrl
配置
有需要的找 guowangyang 扩展。
5.7. 可以在手机上申请权限吗
申请入口可以在手机上打开。需先开启远程办公。
5.8. 在哪里查看是否已经通过
有个通知群,找 guowangyang 拉进去。
5.9. 审核通过后多久能生效
5分钟之内。