Azure.Identity 库(例如 DefaultAzureCredential)是否支持令牌缓存?

Does Azure.Identity library (e.g. DefaultAzureCredential) support token cache?

我还没有找到关于 Azure.Identity 库是否缓存令牌的任何细节。我想知道它是否正确缓存每个范围的令牌并在到期前更新它,或者我必须自己编写此功能。

也欢迎任何指向正确文档的指针。

图书馆里有一本 SharedTokenCacheCredential,但我相信它是别的东西。出于性能原因,我正在询问内存缓存 - 每次都不会获得新令牌。

它可能有缓存,具体取决于所使用的凭据。 例如,环境变量 credential 可以构建,例如a ClientSecretCredential,它在内部使用 MSAL ConfidentialClientApplication 的一个实例(参见 source)。 MSAL 有一个内存中的令牌缓存,所以这可以正常工作。

根据我的经验,Managed Identity 凭证不会缓存令牌,但 MI 端点会缓存。 每次需要令牌时调用该 HTTP 端点仍然不是完全可扩展的,因此在使用托管身份时,内存缓存是一个好主意,它可以将令牌缓存到到期前 4-5 分钟(不要更多)。

A​​zure SDK 本身在其 HTTP 管道中具有令牌缓存功能,因此在技术上不需要凭据来进行缓存。