问题描述 根据文档 https://docs.azure.cn/zh-cn/api-management/api-management-howto-log-event-hubs, 可以将Azure API Management中的请求记录到Azure 事件中心.文档中有详细的步骤描述.但是在对于如何创建APIM的Logger, 如何在API中配置策略描述非常不清楚,所以本文就补充如何创建Logger及在APIM的API中添加log-to-eventhub 策略. 前提条件 创建 Azure 事件…
问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Network Security Group)来控制出站,入站的端口,我们可以形象的把它比喻成一道门,需要满足条件的流量才能通过这道安全的大门. 通过安全大门以后,我们就需要有路,才能达到目的.而默认的网络路径由Azure的骨干网络控制,如果需要通过公司自己的防火墙(Azure Firewall或企业自己的防火…
问题描述 在APIM中,通过门户上的 Test 功能,可以非常容易的查看请求的Trace信息,帮助调试 API 对各种Policy,在Inbound,Backend, Outbound部分的耗时问题,对其进行错误消息的排查. 但是,当调用APIM 请求遇见错误,且不容易通过门户Test复现,需要在真实的请求中添加Trace,如何实现呢? 问题解答 问题的关键在于调用APIM请求时,Request Header 中必须包含的参数 Ocp-Apim-Trace, 并设置值为True.需要注意的是Oc…
问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure Active Directory graph due to error: An error occurred while processing this request. 有什么办法可以成功为APIM添加AAD Group呢? 问题分析 查阅官方文档(https://docs.azure.cn/zh…
问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure API 管理连接到虚拟网络:https://docs.azure.cn/zh-cn/api-management/api-management-using-with-internal-vnet?tabs=stv1) 当APIM配置好后,直接通过CURL命令访问APIM的网关接口(如:curl http…
问题描述 使用微信小程序调用APIM(API Management)中的接口,发现POST和PUT请求被拦截,返回的状态码为200,但是无消息内容. 在小程序中的调用JS代码如: 通过浏览器测试得到的响应体为: 如上图所见,微信小程序中发出的POST请求Status Code为200 OK,但Response Length为0.由于在模拟器(Chrome浏览器模拟)并没有如正常的CORS域名一样报错消息,所以无法明确知道是什么情况导致这一问题. 附:正常的CORS报错信息为: Access to…
API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API全部出现错误,无法收到客户端证书,通过浏览器中查看,发现证书也是无效的. 在API请求的Trace中,错误消息为: { "source": "client-certificate-handler", "timestamp": "2021-0…
问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求从指定 HTTP 标头或指定查询参数提取的 JSON Web 令牌 (JWT) 必须存在且有效.validate-jwt 策略支持 HS256 和 RS256 签名算法. 对于 HS256,必须在策略中以 base64 编码形式提供内联方式的密钥. 对于 RS256,密钥可以通过 Open ID 配…
问题描述 使用Azure API Management, 想对一些固定的IP地址进行访问次数的限制,如被限制的IP地址一分钟可以访问10次,而不被限制的IP地址则可以无限访问? ChatGPT 解答 最近ChatGPT爆火,所以也把这个问题让ChatGPT来解答,然后人工验证它的回答正确与否? 根据对APIM Policy的文档参考, choose 和 rate-limit 策略组合理论上的确可以实现要求, 接下来就让我们实际验证: choose策略:https://docs.azure.cn/…
在文章"从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能"中分析了CORS返回空200的问题后,进一步对APIM的CORS策略进行验证,深入学习<CORS 跨域资源共享>. 首先,我们已经学习到CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,整个CORS通信过程,都是浏览器自动完成,不需要用户参与.而服务端则不同,它是实现CORS通信的关键.只要服务器实现了CORS接口,就可以…