.net - Azure.Identity 库(例如 DefaultAzureCredential)是否支持令牌缓存?
问题描述
我还没有找到有关Azure.Identity
库是否缓存令牌的任何详细信息。我想知道它是否正确缓存每个范围的令牌并在到期前更新它,或者我必须自己编写这个功能。
也欢迎任何指向正确文档的指针。
图书馆里有一个SharedTokenCacheCredential
,但我相信它是别的东西。出于性能原因,我正在询问内存缓存 - 每次都不会获得新令牌。
解决方案
它可能具有缓存,具体取决于使用的凭据。例如,环境变量 credential 可以构建例如 a ClientSecretCredential
,它在内部使用 MSAL 的实例ConfidentialClientApplication
(请参阅源代码)。MSAL 有一个用于令牌的内存缓存,因此可以正常工作。
根据我的经验,托管身份凭证不会缓存令牌,但 MI 端点会缓存。每次需要令牌时调用该 HTTP 端点仍然不完全可扩展,因此在使用托管身份时,内存缓存是一个好主意,它将令牌缓存到到期前 4-5 分钟(不多)。
Azure SDK 本身在其 HTTP 管道中具有令牌缓存功能,因此在技术上不需要凭据来进行缓存。
推荐阅读
- c++ - clang thread sanitizer 报告使用条件变量时的问题
- java - 在 windows 10 中使用 jpackage 创建 windows 包的问题?
- python - PANDAS(填充日期时间和 ffill() 大熊猫数据框中的数据)
- apache-spark - 在列中查找可变长度字符串
- c - 如何在vim中更改宏后大括号的缩进
- wordpress - 如何在 wordpress 中自动运行 cron 作业而不进行任何操作?
- regex - 正则表达式 XML
- python - 无法在 macOS 中从 3.7.7 升级 python 3.8
- reactjs - 项目未在 Heroku 中推送
- python - 将多个列表转换为字典