c# - 启用应用程序网关时 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 调用工作而不禁用应用程序网关中的规则。有没有办法排除少数域?
任何帮助,将不胜感激。提前致谢。
解决方案
不,目前没有排除域的选项。您当前的做法是禁用该规则。或者,您可以将范围参数添加到排除列表,在这种情况下,WAF 不会评估参数的内容。
推荐阅读
- python - 如何使 MissingPermissions 命令处理程序的格式更好?
- javascript - 函数无法使用 useEffect 访问即时状态更改
- postgresql - 我可以假设所有数据库都会返回一个承诺吗?
- amazon-web-services - 如何将 S3 对象从一个 AWS 账户复制到另一个?
- laravel - 从 Laravel 到 Vuejs 的视频接收问题
- node.js - 是否可以将 Mongoose obj 模式推送到数组中?
- firebase - 错误::'StreamTransformer
' 不能分配给参数类型 'StreamTransformer >' - python - 如何根据以前的值向 DataFrame 列添加值
- excel - 如果范围内的值大于和小于值,则隐藏列
- kframework - K 框架:无法转换为子类型