token,意为“令牌”,是由服务端生成的字符串。SuperMap支持通过SuperMap iServer(以下简称:iServer) 和SuperMap iClient3D for Cesium(以下简称:WebGL客户端)配合使用token,指定可访问服务的用户,为发布的服务保密。
使用场景:给iServer发布的服务加密,只让部分用户访问,提高服务的安全性。
本文阐述了利用iServer给服务加密,WebGL客户端和iServer配合使用token访问加密服务的方法和详细流程,主要包含以下步骤:
本文将以CBD精模缓存为例,演示token的使用流程。
利用SuperMap iDesktop桌面产品将CBD数据集生成S3MB缓存,并在SuperMap iServer上发布服务。 此部分可以参考加载BIM及精细模型操作手册。
(1).发布三维服务后,从“服务管理”页面进入,找到该服务,点击“安全”, 再点击服务右边的“小锁”图标。如图1所示:
图 1:服务安全管理页面
(2).点击图标后出现一个弹窗,默认选中匿名用户可访问,点击“指定用户可访问”,出现以下选项,根据需要添加角色, 点击“确定”,便为服务设置了权限。
图2:权限设置对话框
此时若退出iServer账户直接通过WebGL客户端访问该服务,浏览器会报错。
此步骤将获取已设置访问权限的服务的token。
(1).在服务管理页面的右上角,点击该页面上方的“用户名”,选择“详细信息”:
图2:token的生成1
(2).在页面右上角单击用户名,选择“令牌”:
图2:token的生成2
(3).然后根据需要选择客户端标识类型和有效期,单击“生成令牌”按钮,即可获取token。
图2:token的生成3
对于通过iSever token加密的服务,如果WebGL端直接调用,场景不能加载并且浏览器端会报错:
图2:未使用token访问加密服务报错
在WebGL客户端的相应范例中通过下图中的语句加入从iServer获取的token
图2:在范例中加入token
加入token后,打开网页,相机飞到相应位置,显示效果如下:
图2:使用token后正常访问服务效果