1

我正在使用 azure 托管标识,下面的代码生成所需的令牌来验证 api。我在用<PackageReference Include="Azure.Identity" Version="1.4.0" />

var credential = new ManagedIdentityCredential();
            var accessToken = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(new[] {"my_scope"}));
            return accessToken.Token;

现在在每个 api 调用中,我都调用上面的方法来获取令牌。问题是缓存此令牌并自动刷新的方法是什么?这是内置的东西吗?

4

1 回答 1

1

不幸的是,目前 Azure 标识库中没有用于 ManagedIdentityCredential 的内置缓存。缓存在调用 getToken 时在其他 SDK(如 Azure 存储、KeyVault 等)中实现。

但是,您可能需要评估在运行您的代码的应用服务/功能/VM 上的托管标识端点中已经存在的令牌缓存是否足以满足您的目的。它是一个本地端点,因此延迟可能会满足您的需求,即使您的代码中的本地缓存肯定会更快。而且您可能还想评估您的代码发出令牌请求的频率,因为我听说如果您在一秒钟内有太多请求,托管身份端点可能会限制这些请求。

于 2021-07-31T18:56:44.113 回答