为什么 AzureServiceTokenProvider 返回过期的访问令牌?
Why is AzureServiceTokenProvider returning an expired access token?
我正在尝试使用 AzureServiceTokenProvider
获取访问令牌以调用自定义服务,但它会间歇性地返回过期令牌。我了解 AzureServiceTokenProvider ,但这是全新调试会话中的全新 令牌。示例调试会话:
当前 UTC 时间:3/6/2021 5:57:16 AM
但是返回的令牌已经过期了?? 3/6/2021 5:27:40 上午 UTC
我在本地和部署到 Azure 时遇到此行为,但它是间歇性的。
- 撰写本文时,我使用的是最新的
Microsoft.Azure.Services.AppAuthentication 1.6.1
。
- 我正在按照 https://docs.microsoft.com/en-us/dotnet/api/overview/azure/service-to-service-authentication#running-the-application-using-managed-identity-or-user-assigned-identity 在 Azure 中获取具有托管身份的令牌,并在使用 [=48= 在本地进行调试时使用我的 Azure 帐户(对自定义服务具有 API 权限) ].
更新:我还根据 https://github.com/Azure/azure-sdk-for-net/issues/16718 的建议尝试了将 forceRefresh 设置为 true 的 GetAuthenticationResultAsync,但仍然得到一个具有相同 3/6/2021 5:27:40 的过期令牌上午日期。
很难说是什么问题。最好的猜测是获取新令牌的调用失败,因此返回缓存的令牌。
但是,如您问题中的 link 所述,此方法是旧方法,不再推荐使用。
因此,您可以通过切换到 Azure 身份客户端库来“解决”问题 https://docs.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme
我正在尝试使用 AzureServiceTokenProvider
获取访问令牌以调用自定义服务,但它会间歇性地返回过期令牌。我了解 AzureServiceTokenProvider
当前 UTC 时间:3/6/2021 5:57:16 AM
但是返回的令牌已经过期了?? 3/6/2021 5:27:40 上午 UTC
我在本地和部署到 Azure 时遇到此行为,但它是间歇性的。
- 撰写本文时,我使用的是最新的
Microsoft.Azure.Services.AppAuthentication 1.6.1
。 - 我正在按照 https://docs.microsoft.com/en-us/dotnet/api/overview/azure/service-to-service-authentication#running-the-application-using-managed-identity-or-user-assigned-identity 在 Azure 中获取具有托管身份的令牌,并在使用 [=48= 在本地进行调试时使用我的 Azure 帐户(对自定义服务具有 API 权限) ].
更新:我还根据 https://github.com/Azure/azure-sdk-for-net/issues/16718 的建议尝试了将 forceRefresh 设置为 true 的 GetAuthenticationResultAsync,但仍然得到一个具有相同 3/6/2021 5:27:40 的过期令牌上午日期。
很难说是什么问题。最好的猜测是获取新令牌的调用失败,因此返回缓存的令牌。
但是,如您问题中的 link 所述,此方法是旧方法,不再推荐使用。
因此,您可以通过切换到 Azure 身份客户端库来“解决”问题 https://docs.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme