ARCGIS token 申请与使用

前言:token的使用场景是这样的:

我作为资源持有方,我来发布一个共享服务供其他单位调用。如果什么都不设置,那么谁都可以访问你这个资源。如果只想给特定的单位限定时间的使用,那就要将该资源设置权限,使之无法被所有人访问;然后给使用者开账号并生成token,供其使用。以下内容基本就是:

1 新建角色与账户;

2 隐藏资源,有权限的用户才能访问;

3 用刚才创建的账户去生成token;

4 怎么带token调用资源。


1 新建角色与账户

ArcGIS Server Rest服务针对应用程序来说,是基于角色来授权(不能直接给用户授权)。而用户访问该Rest服务时,只需要提供用户名和密码,ArcGIS Server将找到其对应的角色,验证该角色是否对服务资源具备访问权限。

1.1 角色管理页面(管理员账号登录):http://10.10.5.155:6080/arcgis/manager/roles.html


新建角色

1.2 创建一个角色


创建

1.3 用户管理页面

http://10.10.5.155:6080/arcgis/manager/users.html


新建用户


注意,右侧添加对应的角色

END 1 完成角色与用户创建


 2 隐藏资源,面向特定角色访问;

    ArcGIS Server权限是赋予给角色对资源的访问能力,权限设置可以对ArcGIS Server服务,也可以对服务文件夹进行设置。如果对文件夹设置权限,则文件夹中的服务自动继承权限;如果是对文件夹中的服务设置权限,则将覆盖从文件夹中继承的权限。

2.1到服务管理页面,选择你要隐藏的资源(或资源所在文件夹)设置其权限为私有,并授予刚创建的角色以访问权限。

http://10.10.5.155:6080/arcgis/manager/index.html


选择某个服务设置


允许js001这个角色访问

2.2 设置后,资源变为私有,访问地图预览页面即提示需要登录:


END 2 完成隐藏资源,有权限的用户才能访问;


3 用刚才创建的账户去生成token

访问:

http://IP:6080/arcgis/admin/generateToken

或http://IP:6080/arcgis/tokens

申请页面如下图所示:


1)  需要使用该token的用户的用户名(刚才注册的用户user001)

2)  需要使用该token的用户的密码

3) Client:使用token的客户端,提供三种类型:HTTP Referer、IP、IP Requested,区别如下:

    3.1) HTTP Referer:Web应用的URL,申请的token可由该应用的页面使用;

    3.2) IP:申请的token只能供指定IP的机器使用;

    3.3) IP Requested:只能由申请token的机器使用该token;

4) HTTP referer:如果Client选择了HTTP referer,这里就需要输入应用地址;

5)  IP:如果Client选择了IP,这里就需要输入IP地址;

6)    Expiration:过期时间 ,超过这里设置的时间,token将失效。默认不填有效时间60分钟

设置好后,点击Generate按钮,得到生成的token字符串


expires 指有效期限时间戳


END 3 完成token申请


4 怎么带token调用资源

前面已经看到访问加密的资源将会提示需要用户名密码。

在arcgis js api中调用时,加入token值即可,具体参考如下代码中bijieUrl 


var map;


require(["esri/map","esri/layers/ArcGISDynamicMapServiceLayer",


    "dojo/domReady!"], function (Map,ArcGISDynamicMapServiceLayer) {


map =new Map("map", {


center: [105.259, 27.284],


        zoom:11,


        maxZoom:17,


        minZoom:4,


        logo:false


    });


   var tiledUrl ="https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer";


    var bijieUrl ="http://10.10.5.155:6080/arcgis/rest/services/bijie/bijieouter/MapServer?token=1_k_qoYQrhFlshuH2AnPRou4_o7wqeFx0CbMfXGrrxOgHCSEiWas7WbyrBrmBJxr";


    var arcgistiledmapservicelayer =new esri.layers.ArcGISTiledMapServiceLayer(tiledUrl);


    var bijieLayer =new ArcGISDynamicMapServiceLayer(bijieUrl);


    map.addLayer(arcgistiledmapservicelayer);


    map.addLayer(bijieLayer);


});




再次访问,可以正常访问到地图


END 4 完成带token的调用示例


参考:  Arcgis for developers:Generate Token

前人经验:

ArcGIS 10.1 for Server Rest服务安全性管理:基于用户和角色权限

ArcGIS Server 基于Token安全验证

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • # 一度蜜v3.0协议 --- # 交互协议 [TOC] ## 协议说明 ### 请求参数 下表列出了v3.0版协...
    c5e350bc5b40阅读 3,856评论 0 0
  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 9,645评论 0 5
  • 这篇文章介绍了Mobile BI(移动商务智能)使用过程中涉及的各种身份认证的方式,主要目的是对这些方式的原理进行...
    雨_树阅读 6,291评论 1 2
  • 什么是CC攻击 CC攻击(Challenge Collapsar)CC攻击的本名叫做HTTP-FLOOD,是一种专...
    COOOK阅读 16,819评论 0 17