arcgis token

身份验证(令牌)

HTTP: 是一种没有状态的协议,也就是它并不知道是谁是访问应用。这里我们把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证一下。

Session:当用户请求登录的时候,如果没有问题,我们在服务端生成一条记录,这个记录里可以说明一下登录的用户是谁,然后把这条记录的 ID 号发送给客户端,客户端收到以后把这个 ID 号存储在 Cookie 里,下次这个用户再向服务端发送请求的时候,可以带着这个 Cookie ,这样服务端会验证一个这个 Cookie 里的信息,看看能不能在服务端这里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给客户端。

Token:

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  • 客户端使用用户名跟密码请求登录

  • 服务端收到请求,去验证用户名与密码

  • 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

  • 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

  • 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

  • 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

Server 安全机制:

基于角色的访问控制体系:

角色:在访问设置了权限控制的服务时,我们只需要提供用户名密码,ArcGIS Server将找到其对应的角色,验证该角色是否对服务资源具备访问权限。

1、user

最普通的用户角色,能够访问已被授权访问的服务,通常在应用程序中使用该类角色。

2、publisher

能够访问所有的服务,发布新服务,管理已有的服务。此外还能够查看日志、创建缓存,部署/卸载SOEs,也可以查看用户、角色信息和存储配置

3、Administrator

Server最高管理员,拥有不受限制的完整权限,考虑到系统安全,应尽量减少这里角色的用户,并务必谨慎使用。

用户:

用户必须属于某类角色,ArcGIS Server默认只有一个账户,即主站点管理员。在实际应用中,需要根据部门资源分配情况,以及项目管理情况来划分用户。通常Administrator账户只有一两个,Publisher可根据需要适当设置几个,但也不宜太多;User账户则可根据实际情况进行设置,没有数量的限制。

权限:

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

Token:在访问这些经过权限设置的服务时,会有用户认证和权限验证两个主要的步骤:

  • 用户认证:判断用户输入的用户名是否存在,密码是否正确;
  • 权限验证:判断该用户是否对请求的资源具有访问权限。

认证的方式有两种:基于ArcGIS Token的认证和Web服务器认证

申请Token:

​ 可以通过http://myserver:6080/arcgis/admin/generateToken或http://myserver:6080/arcgis/tokens申请

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取 ArcGIS Server Token 可以通过调用 ArcGIS REST API 实现,具体步骤如下: 1. 构造请求 URL ``` http://<arcgis-server>/arcgis/tokens/generateToken ``` 其中 `<arcgis-server>` 是 ArcGIS Server 的主机名或者 IP 地址。可以根据需要添加端口号和上下文路径。 2. 添加请求参数 Token API 需要添加以下请求参数: - `username`: ArcGIS Server 用户名 - `password`: ArcGIS Server 密码 - `client`: 客户端类型,可以是 `requestip`、`referer` 或者 `ip` - `expiration`: Token 的过期时间,单位是分钟,默认为 60 分钟 - `f`: 返回结果的格式,可以是 `json` 或者 `xml` 示例请求 URL: ``` http://<arcgis-server>/arcgis/tokens/generateToken?username=myusername&password=mypassword&client=requestip&expiration=120&f=json ``` 3. 发送请求并解析结果 可以使用 Java 的 HTTP 客户端库,如 Apache HttpClient 或者 HttpURLConnection 发送请求,并解析返回结果。在返回结果中,可以获取 `token` 字段的值,即为生成的 ArcGIS Server Token。 示例代码: ``` String url = "http://<arcgis-server>/arcgis/tokens/generateToken?username=myusername&password=mypassword&client=requestip&expiration=120&f=json"; HttpClient httpClient = HttpClientBuilder.create().build(); HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); String response = EntityUtils.toString(httpResponse.getEntity()); JSONObject json = new JSONObject(response); String token = json.getString("token"); ``` 以上代码仅供参考,具体实现需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值