金鞍玉勒寻芳客,未信我庐别有春。这篇文章主要讲述应用服务 App Service App Service Rewrite 实例 -- 限制站点的访问相关的知识,希望能为你提供帮助。
问题描述在Azure App Service中,当需要限制某些特殊的情况对其进行访问时候,可以通过IP限制,逻辑代码判断,或者Rewrite规则。通过IP限制则需要知道客户端访问的IP,而通过逻辑代码则需要对应用代码进行修改导致在部署才改动则会导致成本大增,所以可以有效的使用Rewrite规则来完成需求,比如当需要访问目标站点B时候请求中必须携带password及正确的值才可以访问(password=123456)。
IP限制如何配置Rewrite规则通过 web.config 文件配置 rewrite 规则,并将该配置上传到 Kudu站点site/wwwroot/ 目录下。例如:如下的Web 应用 只允许 url 包含 password=123456 才能访问配置。在 rewrite 下添加如下的配置:
使用访问限制可以定义一个按优先级排序的允许/拒绝列表,用于控制在网络中对应用的访问。 该列表可以包含 IP 地址或 Azure 虚拟网络子网。 如果存在一个或多个条目,则在列表末尾会存在一个隐式的“拒绝所有”。
访问限制功能适用于所有应用服务托管工作负载,包括 Web 应用、API 应用、Linux 应用、Linux 容器应用和 Functions。
向应用发出请求时,将会根据访问限制列表中的 IP 地址规则评估 FROM IP 地址。 如果列表中的规则不允许访问该地址,则服务会以“HTTP 403”状态代码进行答复。
< ?xml version="1.0" encoding="UTF-8"?> < configuration> < system.webServer> < rewrite> < rules> < rule name="role1" patternSyntax="ECMAScript" stopProcessing="true"> < match url=".*" negate="false" /> < action type="CustomResponse" statusCode="403" statusReason="TypeInReasonHere" statusDescription="TypeInDescriptionHere" /> < conditions> < add input="{QUERY_STRING}" pattern="^.*password=123456.*$" negate="true" /> < /conditions> < /rule> < /rules> < /rewrite> < /system.webServer> < /configuration>
PS:以上匹配规则是对所有的请求URL的参数中是否包含password=123456,如不包含,则返回403. 测试效果如下:
文章图片 |
文章图片 |
参考资料Azure 应用服务访问限制: https://docs.azure.cn/zh-cn/app-service/app-service-ip-restrictions#adding-and-editing-access-restriction-rules-in-the-portal
如何使用重写规则限制 Azure Web 应用的网站访问: https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-qa-config-permission-only-allow-specified-site-to-access
URL Rewrite Module Configuration Reference: https://docs.microsoft.com/zh-cn/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference
推荐阅读
- Android数据跳转
- Android.5
- linux下virtualenvwrapper安装
- android软键盘弹出时如何处理页面布局
- 手机设置代理后,APP提示“网络错误”
- u盘多系统,本文教您u盘如何制作多个系统打开
- u盘变成光盘,本文教您u盘怎样变成打开盘
- 笔记本风扇转速调节,本文教您笔记本风扇转速怎样调节
- 制作u盘,本文教您如何迅速制作打开盘