SuperMap iServer 提供了服务级别的权限控制,可以对每一个服务实例分别进行角色授权,也可以对多个服务实例进行批量授权,服务实例与角色之间是多对多关系。如果系统管理员对某一角色授予了服务访问的权限,则与该角色关联的所有用户和用户组(主要指隶属于该用户组的用户)就同时拥有了该服务的访问权限。

服务授权

登录服务管理器 WebManager,依次点击“服务”、“服务管理”,在服务页面点击某个具体的服务,进入到服务基本信息描述页面,然后选择“安全”,即可查看每个服务实例的安全状态:如果锁的标识为打开状态,代表该服务实例是匿名可访问的,即没有锁定;如果锁的标识为关闭状态,则该服务需要登录验证后才可以访问。鼠标放在锁上后点击,可以查看和修改该服务实例的授权信息,也可以选择多个服务实例后点击页面左上角的“批量授权”按钮。

服务授权有两种选项:

  • 匿名可访问,即任何匿名用户都可以访问。SuperMap iServer 提供的示范服务默认对所有匿名用户可访问。
  • 指定用户可访问,即指定角色关联的用户才可以访问此服务,在表格中选择需要的角色即可指定。此外,服务仅面向指定用户访问时有三个额外的选项:
  • 任何登录用户可访问:勾选后所有登录的用户都可以访问当前服务。
  • 设置可访问服务实例的角色:只有当“任何登录用户可访问”按钮处于未勾选状态时才起作用,用于为服务实例绑定角色,只有与该角色关联的用户和用户组(主要指隶属于该用户组的用户)才拥有该服务的访问权限
  • 禁止访问角色:勾选后将禁止指定的角色访问当前服务。服务授权机制采用禁止优先策略,因此只要某个角色在禁止访问的列表中,关联的用户就不能访问服务,直到将该角色从禁止列表中移除。

 

已授权用户访问服务

如果用户所关联的角色已经获取了指定服务实例的授权,则访问该服务时 SuperMap iServer 会自动跳转到登录页面,用户输入自己的用户名和密码并通过验证后就可访问该服务的资源。

例如,角色“role1”已经获取了服务“data-world/rest”的授权,则该角色关联的用户“user1”就自动继承了该服务的范围权限,访问服务时即可成功登录。

已授权的用户在访问服务时如果直接登录,或开发应用程序需要频繁访问服务,可能会有暴露账户的风险。为避免已授权的用户在使用服务时暴露账户,SuperMap iServer 提供了基于 Token 的认证用于保护用户账户安全。