Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何授权访问geoserver图层_Security_Iis 7_Leaflet_Webserver_Geoserver - Fatal编程技术网

Security 如何授权访问geoserver图层

Security 如何授权访问geoserver图层,security,iis-7,leaflet,webserver,geoserver,Security,Iis 7,Leaflet,Webserver,Geoserver,使用url重写隐藏地理服务器没有问题,通过防火墙限制从web服务器访问地理服务器也没有问题,因此身份验证没有问题。问题是: 如何授权从web服务器访问层? 我想限制对特定用户组访问层。所有呼叫(wms,…)都来自客户端(请求来自传单,通过web服务器,然后传递到GeoServer)。是否有任何示例代码/方法允许我使用查看网站的用户名控制访问层?或者,如何从服务器(IIS)端而不是客户端(传单)向地理服务器发送请求?如果不这样做,用户可以更改图层名称,并查看不应该看到的图层(如果他们知道图层名称)

使用url重写隐藏地理服务器没有问题,通过防火墙限制从web服务器访问地理服务器也没有问题,因此身份验证没有问题。问题是:

如何授权从web服务器访问层?

我想限制对特定用户组访问层。所有呼叫(wms,…)都来自客户端(请求来自传单,通过web服务器,然后传递到GeoServer)。是否有任何示例代码/方法允许我使用查看网站的用户名控制访问层?或者,如何从服务器(IIS)端而不是客户端(传单)向地理服务器发送请求?如果不这样做,用户可以更改图层名称,并查看不应该看到的图层(如果他们知道图层名称)

我正在使用传单、IIS和Psql


这是此问题的一个范围

您可以配置GeoServer以使用Active Directory用户和角色为WMS的层提供身份验证。本文档中的内容将引导您完成所需的步骤


在gis.stackexchange.com上有许多验证。

您还没有说明使用了什么身份验证。您如何检查来自有效“用户”的请求?这称为身份验证,而不是授权。由于请求只能通过IIS发送,因此IIS负责身份验证,并且由于基础结构具有防火墙,路由53(AWS)Geoserver仅为来自IIS的请求提供服务。因此,无需在geoserver内部进行额外的身份验证,因为身份验证由两个功能强大的工具(IIS和防火墙(Route 53))完成。这是关于身份验证的。所以,我的问题是授权。有没有办法从服务器端发送请求并在客户端获得响应?在传单的所有示例中,对GeoServer的请求都是从客户端发送的。不幸的是,IIS不能。内置的身份验证方法以不同的方式将传入的请求映射到Windows/AD用户帐户。因此,您需要选择其中之一,或者开发自己的表单身份验证,或者使用任何基于OAuth的身份验证。一旦请求可以映射到用户帐户,您就可以相应地执行授权。我知道你想限制通过网络访问服务器,但通常这还不够。谢谢@LexLi,这是否意味着管理员需要创建两个帐户,一个在GeoServer,一个在IIS?这不是一个容易的选择,我还有什么其他选择?当管理员创建IIS帐户时,调用GeoServer API并在那里创建用户帐户如何?我还没有试过。只是一个猜测,也许像这样的事情我想我已经回答了你的答案!,谢谢你,伊恩,所以,我可以通过…/geoserver/wms?…&user=??&password=??将凭据传递到geosever??。如果我把它们放在传单上,每个人都会看到,我怎么能在IIS的服务器端隐藏它们呢?所有示例(带传单)都需要在客户端进行wms呼叫。另一个问题可能是需要在两个不同的时间/位置添加用户名(一个在IIS,一个在Geoserver,如果这两个不是AD域的一部分,但是,我认为我可以通过Geoserver API或其他一些技术来解决)