zoukankan      html  css  js  c++  java
  • geoserver 安全配置

    角色体系

    user group 与role

    user指某一个用户,登录时使用的admin就是一个用户; group是user的集合,与user的关系是一对多的关系。role指角色,用于权限配置。user或是group是否具有某个权限取决于其是否具有某个role信息,role是起决定作用的。

    如果用户属于某组织,那么该用户具有该组织所有的角色信息。

    OWS服务权限配置

    ows地图服务可以限制角色访问,没有权限的访问会显示401未认证错误。限制的方式有两种,一种是直接配置ows服务的角色访问,另一种是配置图层的角色访问。

    ows服务的角色配置

    // 修改geoserver目录, $geoserver_home/data_dir/security/services.properties
    // 格式: <service>.<operation|*>=<role>[,<role2>,...]
    
    /** 例子*/
    wms.GetMap=role1 // wms服务的GetMap请求仅role1角色可用
    wms.GetFeatureInfo=role2,role3 // wms服务的GetFeatureInfo请求role2角色和role3角色可用
    wms.*=role4 // wms服务的所有请求role4角色都可用
    

    ows图层的角色配置

    // 修改geoserver目录,$geoserver_home/data_dir/security/layers.properties
    // 格式 workerspace.layer.operation=<role>[,<role2>,...]
    
    /** 例子*/
    workspace1.layer1.r=role1 // workspace1工作空间内的layer1图层仅角色role1可读
    workspace2.layer2.w=role2,role22 // workspace2工作空间内的layer2图层角色role2和角色role22可写
    workspace3.layer3.a=* // workspace3工作空间内的layer3图层所有角色可读可写
    

    ows服务请求添加请求头

    假如某一wms服务的GetMap请求仅role1角色可用,用户user1(密码为123456)是role1角色,那么可在请求头中添加如下内容

    { Authorization: "Basic dXNlcjE6MTIzNDU2" }
    

    Basic是不变的字符串,dXNlcjE6MTIzNDU2是字符串user1:123456的base64编码(在线base64编/解码),注意二者中间有个空格

    注意:在请求头添加上面的认证信息有一定风险,因为base64是可以解码的,更严重的是解码后得到的结果是用户名和密码。所以不能使用管理员的账户来做验证,可以使用具有限制权限的用户。

    使用Key Authentication扩展

    安装扩展

    不同版本的安装包不同,这里可以下载对应的扩展包。包里面的内容应该是jar后缀的文件,将所有jar文件拷贝到GeoServer_HomewebappsgeoserverWEB-INFlib, 如果文件存在则覆盖。

    不要忘了重启geoserver服务

    配置扩展

    首先需要新增Authentication Filters, 如图所示

    新增Authentication Filters,选择AuthKey的方式

    Authentication key to user mapper有三种方式:

    • Property file: 使用属性文件来认证,属性文件保存在$geoserver_homedata_dirsecurityusergroupdefaultauthkeys.properties, 这个文件是需要在页面上点击Synchronize user/group service来生成的,本来是没有的

      这里的uuid是最终在ows请求中使用的

    • User Property:使用用户的UUID来认证,同样需要点击Synchronize user/group service来生成,生成后可以在对应的页面查看,如图

      同样,这里的uuid也是在ows会使用到的

    • Web Service:使用外部web服务认证,没有过多研究,这里不做解释

    接下来需要新增Filter Chain, 这里的设置是真正限制ows访问的

    设置完成后访问ows服务需要通过authkey的方式

    参考链接

    1. Geoserver扩展模块key authentication 中文帮助文档
    2. Geoserver安全模块中文说明
  • 相关阅读:
    NET Attribute
    net core HttpClient
    Nuget服务器
    JS-防抖节流
    Codeforces,Topcoder,SGU,Timus,ProjectEuler
    并发编程,高速缓存,原子操作,指令重排序
    C编译器的编译过程主要分成四步: (1) 预处理 (2) 编译 (3) 汇编 (4) 连接
    C#--Distinct
    PageRank算法的思想
    ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能
  • 原文地址:https://www.cnblogs.com/asdlijian/p/14846654.html
Copyright © 2011-2022 走看看