我正在开发一个 SDK,我们将遥测(1000 个事件/分钟)发送到 Microsoft 拥有的摄取服务。(SDK 由托管在 Azure VMS 或应用服务上的 web 应用程序使用)摄取服务目前支持使用托管身份进行身份验证(系统和用户分配)。我的想法是依赖 Azure Identity SDK 并使用“TokenCredential”的现有 DefaultAzureCredential 或 ManagedIdentityCredential 实现来获取如下所示的令牌,并在初始化 sdk 时使用此 defaultCredential。初始化 sdk 后,我的想法是获取令牌并附加到每个请求的授权标头。
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<MANAGED_IDENTITY_CLIENT_ID>")
.build();
问题:
答案 0 :(得分:0)
在我看来,令牌不会自动刷新,如果您想知道过期时间,可以使用 fiddler 之类的工具来捕获使用令牌的请求并使用 jwo.io 对其进行解码,您将得到'exp'的声明,它是一个unix时间戳,你可以转换它然后你就可以知道过期时间。
并且过期时间由您租户的策略管理,您可以按照 the tutorial 为您的访问令牌创建策略。并且因为您的代码只是 new DefaultAzureCredential(),所以任何时候执行该行,它都会生成一个新实例,这样您就不必担心令牌过期了。