访问门户中GIS资源的安全

发送反馈


 SuperMap iPortal  对于用户注册到门户中的资源(数据、地图、服务、场景等)提供了多种安全保障机制。在门户访问的场景下,iPortal 提供了基于 HTTP Form 用户验证方式,保障门户中受保护的资源的安全;在通过 REST 和 Web Application 访问服务资源的场景下,iPortal 还提供了基于 Token 和 Resource Key 的两种认证机制,全面保障门户中的 GIS 服务的安全。下面将对以上三种认证机制进行详细介绍:

基于 HTTP Form 的认证

SuperMap iPortal 提供了基于 HTTP Form 的用户验证方式。门户中除了公开的资源可以匿名访问外,其他设置了访问权限的资源(如指定了部门/用户/群组的地图、服务等),则禁止匿名用户访问,需要在 HTTP Form 页面登录后才可访问。

在 iPortal 中,用户访问受保护的资源时,资源页面会自动跳转到登录界面(http://localhost:8190/iportal/web-ui/login),输入正确的用户名和密码后,您就可以访问门户中您有权限访问的 GIS 资源了。用户成功登录后,浏览器会记录 Cookie 信息,继续访问门户中的资源时请求会自动携带 Cookie 信息,而不需要再重新登录。

SuperMap iPortal 提供的用户登录功能除了 HTTP Form 这种实现形式外,也支持通过 REST 方式访问 login 资源来实现登录。基于 HTTP Form 的用户验证方式是一种简单易用且最常用的认证方式,最容易为用户所接受,但同时这种方式也存在用户名和密码泄露的风险。基于此,SuperMap iPortal 还提供了基于 Token 的认证基于 Resource Key 的认证,以实现对门户中 GIS 服务访问时的安全保障。

基于 Token 的认证

SuperMap iPortal 提供了一种基于 Token(令牌)的用户身份验证机制,使用户在访问受保护的服务资源时仅需提供 Token,而不需要提供用户名和密码。Token 是包含用户名、有效期和某些专有信息并通过共享密钥加密的信息字符串。用户向 iPortal 申请 Token 时需要提供用户名和密码,服务端验证通过后会将相应的 Token 返回给用户。

用户访问受保护的服务时,如通过 REST、Web Application 等方式,只需要提供正确的 Token 就可以访问相关服务资源。对于通过 Web Application 访问 GIS 服务的用户来说,这种认证方式可以有效避免服务器的用户账户泄露。目前,SuperMap iPortal 服务列表(http://localhost:8091/iserver/services)中的所有服务类型均支持基于 Token 的认证,包括各个 REST 服务模块、OGC 服务等。

在 iPortal 中获取和使用 Token 的总体流程与 iServer 相同,具体可参见 iServer 基于 Token 的认证

  1. 用户凭借自身的账户申请和获取 Token,详见获取 Token
  2. 携带已获取的 Token 访问受保护的服务资源,详见访问受保护的服务资源。SuperMap iPortal 提供的 GIS 服务(详见GIS 服务资源层次结构)和服务管理的所有资源(详见服务管理资源层次结构),均支持通过 Token 来访问。

 

Token 的生成除了需要获取 Token时用户输入的信息外,还需要服务器端指定的加密密钥。系统管理员可以对生成 Token 的共享密钥进行配置,详细请参考配置 Token 共享密钥

基于 Resource Key 的认证

除了使用基于 Token 的认证方式访问门户中受保护的服务资源外,SuperMap iPortal 还提供了一种基于 Resource Key (资源密钥)的服务访问认证机制,使用户在访问受保护的服务资源时仅需提供 Resource Key,而不需要提供用户名和密码。Resource Key 是服务的口令标识,由24位随机字母+数字组成。

与基于 Token 的认证方式不同的是, Resource Key 可以控制服务的访问范围,即只允许使用该密钥访问指定的一个或多个服务,还可以控制服务的访问量,即超出密钥的访问量配额后就无法使用该密钥访问服务了。

在开发 Web GIS 应用时,您可以通过服务调用的方式访问门户中服务资源。iPortal 开启服务代理(默认开启)后,对于门户中设置了查看权限的服务资源(包括:我的私有服务、共享给我的服务、我的部门及群组中的服务),需要在 iPortal 中生成密钥,即 Resource Key,然后在您的应用中使用代理服务地址(可在服务的详情页查看)加上 Resource Key 才可以访问 。目前,Resource Key 支持访问的服务类型包括 SuperMap Rest 服务、OGC 服务、ArcGIS REST 服务。

 Resource Key 的生成、使用及管理的详细介绍请参见:我的密钥