# 数据权限
# 唯杰地图之前端CAD图GIS数据访问权限配置
数字经济时代,数据要素的价值日益凸显,与之相应的,数据安全问题也越来越受到重视。唯杰地图 (opens new window) 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) 上传图形
通过 唯杰地图云端图纸管理平台 (opens new window)提供的上传图形 (opens new window)
(2) 上传成功后,取个图名称ID
在这里如果要设置图形隐藏,需要图名称取名为需要以ns_
开头, 这样图打开后在图形列表中将自动隐藏,其他用户看不到。需访问此图时可直接输入图形ID来进行访问。
# 图形密码
上面的图形隐藏下次打开时略显麻烦,这时候也可以设置图形的密码,才实现对数据安全的保护。操作为在上传图形后设置打开图需要密码
上传成功后,图形列表里会对设置密码保护的图上面加一个锁
的符号。点击图形打开时,需要输入密码才能访问此图形了。
在这里说下图形密码访问权限的机制。
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等操作。
另外,如果不同的图可能有不同的key,如果想要实现打开这些图时不用每次输入密码,可以设置中设置accessKey的值,此值可以是superKey或每个图的accessKey,如多个时用逗号;分开保存即可。
# 总结
通过上面的设置,基于后台和前端用户的设置,我们可以实现对CAD图GIS数据访问的安全。因为唯杰地图 (opens new window) https://vjmap.com 只是一个地图开发平台,没有对用户名、密码进行封装,官网示例中为了方便用户进行试用,示例中没有加入用户登录功能;实际项目中,开发者可结合自己的用户权限系统,实现用户登录功能。