首页 > 解决方案 > 启用应用程序网关时 Google Api 失败

问题描述

我已经从我们的应用程序开发了一个谷歌日历同步,在我们启用应用程序网关之前一切正常。

以下是获取访问令牌的 google api 请求

https://www.googleapis.com/oauth2/v4/token?code=xxxxxxxxxxxxxxxxxxxx&client_id=yyyyyyyyyyyyyy.apps.googleusercontent.com&client_secret=zzzzzzzzzzzzz&redirect_uri=https://mywebsite.com/Employee/GoogleAuth&grant_type=authorization_code

上述请求的响应是

requestUri":"/Employee/GoogleAuth?state=aaaaaaaaaaaaaaa&code=bbbbbbbbbbbbbbbbbb&scope=https://www.googleapis.com/auth/calendar%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/plus.me"

根据我的研究,很明显,启用应用程序网关后,上述响应在规则 93130 下失败

在此处输入图像描述

由于响应包含 google 域(https://www.googleapis.com/)的范围,应用程序网关将抛出错误,实际的 api 调用将导致 403 禁止错误。

在应用程序网关中禁用此规则将使 api 调用成功。但在这里我正在寻找一些建议,让 api 调用工作而不禁用应用程序网关中的规则。有没有办法排除少数域?

任何帮助,将不胜感激。提前致谢。

标签: c#azuregoogle-apiazure-application-gateway

解决方案


不,目前没有排除域的选项。您当前的做法是禁用该规则。或者,您可以将范围参数添加到排除列表,在这种情况下,WAF 不会评估参数的内容。


推荐阅读