0

我开始使用 Microsoft Graph 威胁评估 API 来报告网络钓鱼网站 URL。
(参考:https ://docs.microsoft.com/en-us/graph/api/informationprotection-post-threatassessmentrequests?view=graph-rest-1.0&tabs=http )

我的用例是通过 Slack 命令自动报告和手动报告。但是限制非常严格,所以我立即得到“429”响应。

    "code": "ActivityLimitReached",
    "message": "The client application has been throttled for reaching an activity limit. The request may be repeated after a delay, the length of which may be specified in a 'Retry-After' header.",

有谁知道节流的解决方法?据我确认,节流是1 request per 15 minutes (Limit per resource)默认设置。
150 requests per 15 minutes (Limit per tenant)虽然)

参考:https ://docs.microsoft.com/en-us/graph/throttling#information-protection

4

2 回答 2

0

我正在研究类似的用例。我计划使用 API 将 Msg Id/URL/file 提交给 Microsoft 进行网络钓鱼评估。我遇到了一个错误,显示“代码”:“未经授权”,

"message": "Required authentication information is either missing or not valid for the resource.",

"

非常感谢您的帮助!

于 2020-11-25T13:55:44.890 回答
0

我会尝试以下最佳实践来避免/处理节流。

实施错误处理时,请使用 HTTP 错误代码 429 来检测限制。失败的响应包括 Retry-After 响应标头。使用 Retry-After 延迟回退请求是从限制中恢复的最快方法,因为 Microsoft Graph 在客户端受到限制时会继续记录资源使用情况。

  1. 等待 Retry-After 标头中指定的秒数。
  2. 重试请求。
  3. 如果请求再次失败并显示 429 错误代码,则您仍然受到限制。继续使用推荐的 Retry-After 延迟并重试请求,直到成功。

Microsoft Graph 团队已经提供了节流指南,而且很简单。请仔细阅读此文档,寻找避免节流、处理节流等的最佳实践,并考虑节流/批处理以查看它是否适合您的场景(以便您可以优化调用)。

如果 retry-after 标头不存在,那么它会很困难 - 这就是处理节流的方式,除非提供了任何替代方式。如果您仍然相信微软会实施此功能,请考虑创建新的用户语音

更新:@rung 在此创建了一个新的用户语音。

于 2020-11-14T19:11:59.973 回答