前言

数字经济时代,数据要素的价值日益凸显,与之相应的,数据安全问题也越来越受到重视。唯杰地图 VJMAP为CAD图或自定义地图格式WebGIS可视化显示开发提供的一站式解决方案,支持的格式如常用的AutoCAD的DWG格式文件、GeoJSON等常用GIS文件格式,它使用WebGL矢量图块和栅格瓦片呈现交互式地图, 实现了CAD与GIS完美结合, 实现了对CAD图纸的上传、打开、版本管理、属性查询、图层开关、批注、数据展示、互联网地图叠加、绘图等功能。那么怎么样配置才能保证前端CAD图GIS数据访问的安全呢?

后台RBAC权限管理

唯杰地图后台采用的是RBAC权限管理。

基于角色的访问控制(Role-based access control,简称 RBAC),指的是通过用户的角色(Role)赋予其相关权限,这实现了细粒度的访问控制,并提供了一个相比直接授予单个用户权限,更简单、可控的管理方式。

不同的token代表了不同的角色权限。

默认的角色有root、admin、guest

root具有最高权限;admin权限不能删除sys_开头的系统图形、不能进行切片等,其他功能同root权限; guest只有访问权限。

可以在后台设置不同角色的权限来实现,然后不同的token来实现对数据的安全问题。

后台可以对整个系统的权限进行分配和设置,而用户自己在前端上传图形,也可以通过设置图形隐藏和图形密码来实现数据安全。

图形隐藏

操作步骤

(1) 上传图形

通过 唯杰地图云端图纸管理平台提供的上传图形

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(1)

(2) 上传成功后,取个图名称ID 在这里如果要设置图形隐藏,需要图名称取名为需要以ns_开头, 这样图打开后在图形列表中将自动隐藏,其他用户看不到。需访问此图时可直接输入图形ID来进行访问。

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(2)

图形密码

上面的图形隐藏下次打开时略显麻烦,这时候也可以设置图形的密码,才实现对数据安全的保护。操作为在上传图形后设置打开图需要密码

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(3)

上传成功后,图形列表里会对设置密码保护的图上面加一个锁的符号。点击图形打开时,需要输入密码才能访问此图形了。

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(4)

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(5)

在这里说下图形密码访问权限的机制。

superKey: 此权限为超级权限,在后台进行设置。superKey可以用重置所有图的密码,或对图进行设置密码或取消密码,拥有访问所有图的权限。

secretKey: 此权限拥有对某个图的所有权限。secretKey是根据用户上传图形时设置的密码而来。如对某个图进行了密码123456,那么可通过vjmap.Service中的方法pwdToSecretKey('123456')把密码明码转成秘钥。此secretKey只对当前设置密码的图有效。用户不要保存和分发,通过输入密码获取此值即可。

accessKey: 此权限拥有对某个图的访问权限。accessKey是根据serectKey和一个随机的salt生成而来。和secretKey类似,accessKey能打开此有密码的图形,和secretKey不同的是,他无法对此图进行管理,如删除图形、重命名、删除版本等操作。此accessKey可进行分发。如不想每次打开图时弹出输入框,可通过设置vjmap.Service中的方法addAccessKey,如svc.addAccessKey("akxxxxxxxxxxxxxxxx"),这样在打开图时会自动判断此key,如果验证通过就不会弹出密码输入框。

权限大小比较 superKey(所有图最多权限) > secretKey(一个图的最高权限) > accessKey(一个图的访问权限)

可通过superKey重置密码secretKey或accessKey;

可通过secretKey重置或获取accessKey;

点击操作菜单 ,可进行密码设置,获取accessKey等操作。

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(6)

另外,如果不同的图可能有不同的key,如果想要实现打开这些图时不用每次输入密码,可以设置中设置accessKey的值,此值可以是superKey或每个图的accessKey,如多个时用逗号;分开保存即可。

mapgis怎么设置位置(唯杰地图之前端CAD图GIS数据访问权限配置)(7)

总结

通过上面的设置,基于后台和前端用户的设置,我们可以实现对CAD图GIS数据访问的安全。因为唯杰地图 https://vjmap.com 只是一个地图开发平台,没有对用户名、密码进行封装,官网示例中为了方便用户进行试用,示例中没有加入用户登录功能;实际项目中,开发者可结合自己的用户权限系统,实现用户登录功能。

,