【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改

Azure ,Service,Restrictions,Access · 浏览次数 : 49

小编点评

**调用REST API获取App Service的访问限制信息** 由于文档为Global Azure说明文档,所以中国区的 API URL为:**https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01** **步骤:** 1. **获取Web Apps配置信息**: - 使用浏览器打开Azure门户。 - 启动开发者模式(F12)。 - 在Azure门户上执行想要执行的操作。 - 查看Network Trace。 - 找到对于的API URL。 2. **获取API URL**: - 从Network Trace中找到API URL。 - 两种方式获取API URL: - Web Apps - Get Configuration:**https://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/get-configuration** - Web Apps - Update Configuration:**https://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/update-configuration** 3. **发送请求**: - 使用GET请求获取API的配置信息。 - 使用POST请求更新API的配置信息。 4. **验证请求**: - 查看API的返回结果。 - 确保配置信息正确。 **示例代码(Python SDK):** ```python import requests # 获取 Web Apps 配置信息 url = "https://management.chinacloudapi.cn/subscriptions/{subscription_id}/resourceGroups/{resource_group_id}/providers/Microsoft.Web/sites/{site_name}/config/web?api-version=2022-03-01" response = requests.get(url) # 更新 Web Apps 配置信息 url = "https://management.chinacloudapi.cn/subscriptions/{subscription_id}/resourceGroups/{resource_group_id}/providers/Microsoft.Web/sites/{site_name}/config/web?api-version=2022-03-01" data = {"properties": {"ipSecurityRestrictions": [ {"ipAddress": "183.220.92.41/32", "action": "Allow", "tag": "Default", "priority": 200, "name": "111111"}, {"ipAddress": "Any", "action": "Deny", "priority": 2147483647, "name": "Deny all", "description": "Deny all access"} ]} response = requests.patch(url, json=data) # 打印响应结果 print(response.json()) ```

正文

问题描述

昨天的博文中(https://www.cnblogs.com/lulight/p/17099179.html)介绍了使用Python SDK 来获取App Service的访问限制信息,那么如何调用REST API来实现呢? 

问题解答

如大家所知,Azure 不管是SDK, 门户UI,或者是PowerShell命令方式对Azure中资源进行操作,都是通过REST API方式处理请求。所以,如果不知道当前操作使用的是一个接口时,最简单的方法是:通过浏览器打开Azure门户,同时开启开发者模式(F12),在Azure门户上执行想执行的操作。然后查看Network Trace。

比如,想知道App Service的Access Restrictions操作是调用的哪一个API,找到点击保存时候,浏览器发出的请求即可找到。如下图中标记的1,2,3处。

在找到对于的API URL后,就可以知道大概的调查方向了。

以上两个接口,就可以实现获取,更新App Service的访问限制信息需求。
PS:  因文档为Global Azure说明文档,所以中国区的 API URL为:https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01
 

操作示例步骤为:

获取Web Apps 配置信息(其中包含Access Restrictions)

Request Method:GET
Request URL: https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01
Request Authorization:如是临时性操作,可以通过浏览器(开发者模式F12-->Network Trace)获取到请求所携带的Authorization Token(注:这个值过期时间为1个消失)。
Request Body:无
 
示例截图
没有Token的效果图:
Token过期效果图:

 

仅仅更新Access Restrictions部分

Request Method:PATCH
Request URL: https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01
Request Authorization:如是临时性操作,可以通过浏览器(开发者模式F12-->Network Trace)获取到请求所携带的Authorization Token(注:这个值过期时间为1个消失)。
Request Body:
{
	"properties": {
		"ipSecurityRestrictions": [
			{
				"ipAddress": "183.220.92.41/32",
				"action": "Allow",
				"tag": "Default",
				"priority": 200,
				"name": "111111"
			},
			{
				"ipAddress": "Any",
				"action": "Deny",
				"priority": 2147483647,
				"name": "Deny all",
				"description": "Deny all access"
			}
		]
	}
}

特别注意:以上JSON内容为覆盖模式,如果需要在以前的数据中新添加,需要在Body中包含之前的数据。否则,PATCH操作完成后,就只会剩下Body中的信数据。

示例截图

 

参考资料

Web Apps - Get Configurationhttps://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/get-configuration

Web Apps - Update Configurationhttps://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/update-configuration

 

与【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改相似的内容: