【发布时间】:2021-06-19 15:40:18
【问题描述】:
我正在开发一个 SDK,我们将遥测数据(1000 个事件/分钟)发送到 Microsoft 拥有的摄取服务。(SDK 由托管在 Azure VMS 或应用服务上的 webapps 使用)摄取服务目前支持使用托管身份进行身份验证(系统和用户分配)。我的想法是依赖 Azure Identity SDK 并使用现有的 DefaultAzureCredential 或 ManagedIdentityCredential 实现 'TokenCredential' 来获取令牌,如下所示,并在初始化 sdk 时使用此 defaultCredential。初始化 sdk 后,我的想法是获取令牌并附加到每个请求的授权标头。
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<MANAGED_IDENTITY_CLIENT_ID>")
.build();
问题:
- 令牌的刷新频率如何?如何控制这些代币的过期时间?
- 当令牌过期时,托管身份是否足够智能以调用 AAD 并获取新令牌。还是 SDK(客户端)负责获取新令牌并更新标头。
【问题讨论】:
-
根据this doc,DefaultAzureCredential 提供了一个“GetToken”方法,这将返回访问令牌,然后您可以获取“ExpiresOn”属性来收集时间戳。你可以使用powershell来manage access token expire policy。
标签: azure-active-directory azure-managed-identity