您好,欢迎访问三七文档
2010Esri中国区域用户大会服务安全设计王坚目标构建安全的GIS服务,供互联网用户使用REST/SOAP适用于ArcGISServerforJava和.Net提纲使用反向代理服务器为敏感服务添加访问控制对敏感信息的传输使用HTTPS保护Cache目录使用代理页获取token使用反向代理服务器企业级安全机制验证授权防火墙日志加密架构1——直接访问内网RESTSOAPTOKENSWeb服务器SOMSOCsArcGISServer用户和角色ManagerArcMap数据架构2——使用反向代理服务器RESTSOAPTOKENSWeb服务器SOMSOCsArcGISServer用户和角色ManagerArcMap数据DMZ反向代理服务器反向代理服务器与防火墙两台web服务器,两个防火墙反向代理服务器ArcGISServerweb服务器优点:隐藏细节ArcGISServer运行在内网环境配置反向代理服务器ArcGISServer10虚拟机:WindowsServer2008IP:192.168.137.2反向代理服务器Windows7,域名:IP:192.168.137.1&192.168.100.101Apache2.2.11添加虚拟路径修改服务的配置使用新添加的output和cache目录修改REST配置java\manager\web_output\rest\WEB-INF\classesserver.propertiesresources\rest-config.properties…com.esri.rest.SOAP_URL==……base.url=…添加映射ApacheProxyRequestsOffProxyPassMatch(?i)^/arcgis/services(.*)$://192.168.137.2:8399/arcgis/servicesProxyPassMatch(?i)^/arcgis/rest(.*)$://192.168.137.2:8399/arcgis/rest新的ServiceDirectory程序和SOAP应用所有的链接都通过反向代理服务器的域名地址访问(Demo)为敏感的服务添加访问控制访问控制的主要模块用户和角色存储支持LDAP,数据库,自定义提供访问这些信息的API可以不企业现有的用户管理策略结合权限存储每个角色拥有的访问权限提供访问这些信息的APIArcGISTokenServiceDemo配置存储管理用户和角色GIS服务的安全机制基于角色的访问控制访问权限是授予角色的验证的时候会检查用户拥有的角色通过Token进行访问控制访问安全的GIS服务时要求在URL中添加tokenArcGISTokenService用来生成token桌面客户端和WebADF程序可以自劢获取token并使用通过Manager配置访问权限Token包含的信息Token是一个包含一些加密信息的字符串:用户名有效期客户端IDIP地址或WebURL(HTTPReferrer)TokenService的使用方法开发人员5.把Token复制到代码Tokenservice2.请求tokenArcGISServer(用户/角色)3.身份验证1.访问Tokenservice页面4.返回TokenWebAPI/REST客户端如何使用Token客户端程序PermissionStore(.SEC文件)SOMWeb服务器GISServicesWebservicehandlerTokenservice用户/角色1.客户端携带token发送请求2.获取用户角色、服务授权的角色3.返回请求的数据Demo配置GIS服务的访问控制JavaScriptAPI程序(RESTAPI)访问非安全的GIS服务访问安全的GIS服务从TokenService获取Token对敏感信息的传输使用HTTPSHTTPS的实现方式导出TokenService,部署到配置了SSL的web服务器上在反向代理服务器上配置SSLTokenServiceHTTPSHTTP修改SOAP和REST的security.xml文件%INSTALL_PATH%\java\manager\web_outputservices\WEB-INF\classes\security.xmlrest\WEB-INF\classes\security.xml反向代理服务器entrykey=TokenServiceURL=TokenServiceURL(?i)^/arcgis/tokens(.*)$://192.168.137.2:8399/arcgis/tokensDemoFiddler抓取HTTPS和HTTP两种获取Token的方式保护Cache目录保护Cache目录目标阻止直接通过cache图片的URL地址访问ADFREST阻止直接通过RESTURL访问Cache图片设置访问控制只有提供token才能访问cache图片直接输入URL地址会重定向到登录页面Demo阻止直接通过Cache虚拟路径访问图片ADF程序默认是使用cache的虚拟路径来获取图片的(Demo)阻止直接通过Cache虚拟路径访问图片删除cache的虚拟路径先停止所有使用cache的地图服务重启地图服务去掉proxycache的反向代理映射设为空#ProxyPassMatch(?i)^/proxycache/(.*)$://192.168.137.2:8399/arcgis/server/proxycache/阻止直接通过Cache虚拟路径访问图片cache虚拟路径丌再可用,换成了SOAP形式的URL(Demo)阻止匿名访问?添加访问控制(Demo).../MapServer?format=png&mapname=Layers&level=1&row=5&column=6使用代理页获取token使用代理页获取token——proxypage主要针对REST开发方式,JavaScript、Flex、SilverlightASP.NET,JAVA/JSP,PHPToken如果过期HTTP错误代码498定期在源代码中更新Token值Proxypage在服务器端的代理页中嵌入Token优点:token丌会暴露给客户端缺点:token会过期,需要定期更新使用代理页获取token——步骤下载相应的proxypageproxypage_net.zip,proxypage_java.zip,roxypage_php.zip获取token指定IP使用代理页获取token——步骤修改proxypage修改页面代码String[]serverUrls={//url[,token]//(有访问控制的服务器):http://[host1]/arcgis/rest/services,[token]//(没有访问控制的服务器):http://[host2]/arcgis/rest/services[token]};esri.config.defaults.io.proxyUrl=proxy16.jsp;//指定proxy.jsp的位置esri.config.defaults.io.alwaysUseProxy=true;Demo丌使用代理使用代理
本文标题:服务安全设计
链接地址:https://www.777doc.com/doc-1594699 .html