首页 > 解决方案 > Azure B2C Active Directory:更新所有用户的一个属性

问题描述

在我当前的项目中,我使用的是 Microsoft 的 Azure B2C Actice Directory。

testClaim我的计划是更新每个用户的特定属性 ( )。

我实际上正在做的是将所有用户加载到我的 AD 中并在foreach循环中更新每个用户。

        var requestBody = new SetTestClaimRequest
        {
            ClaimName = "testClaim",
            Value = "thisIsATestValue"
        };


        var client = new RestClient("myRes");
        var request = new RestRequest(Method.PUT);
        request.AddJsonBody(requestBody);

我面临的问题是,GraphApi 开始阻止我的请求,在几个之后,只是回答以下错误:

Error Calling the Graph API: 
{
  "odata.error": {
    "code": "Request_ThrottledTemporarily",
    "message": {
      "lang": "en",
      "value": "Your request is throttled temporarily. Please try after 150 seconds."
    },
    "requestId": "ccf8a936-490e-4c4a-87aa-125157b2e6dd",
    "date": "2020-04-17T12:37:44"
  }
}

有没有办法在不限制我的请求的情况下避免这种情况?在我看来,节流不是一种选择,因为更新我处理的用户数量需要几个小时。

标签: azure-active-directoryazure-ad-b2cazure-ad-graph-api

解决方案


不,没有办法绕过节流限制。以可接受的速度处理可能需要几个小时。最多尝试每分钟 1000 次操作。如果您收到 HTTP 429,请确保实现回退逻辑。


推荐阅读