收到的来自ARM的访问令牌已过期

时间:2018-09-11 23:22:44

标签: c# azure azure-active-directory

我正在创建一个以编程方式创建计划作业的应用程序,因此,我使用的是Azure提供的REST API。我需要一个访问令牌,但是当我进行身份验证时,从请求返回的访问令牌在发送给我的同时也会过期。

客户端ID是我在Azure AD上注册并复制了该应用程序ID的应用程序。

我在“密钥”刀片中创建了秘密密钥。

我使用AzureEnvironment.AzureGlobalCloud.AuthenticationEndpoint/{My Azure ID}作为授权(https://login.microsoftonline.com/) 我正在使用AzureEnvironment.AzureGlobalCloud.ResourceManagerEndpoint请求Azure资源管理器的访问令牌。

private async Task<string> GetAccessToken()
{
    _authContext = new AuthenticationContext($"{AzureEnvironment.AzureGlobalCloud.AuthenticationEndpoint}{ _jobConfig.TenantId}");
    var credential = new ClientCredential(_jobConfig.AzureApplicationId, _jobConfig.AzureApplicationSecret);
    var authResult = await _authContext.AcquireTokenAsync(AzureEnvironment.AzureGlobalCloud.ResourceManagerEndpoint, credential);

    return authResult.AccessToken;
}

_jobconfig是包含上述数据并在代码中引用的数据的实例。

Debug Data

1 个答案:

答案 0 :(得分:0)

到期时间以协调世界时(UTC)显示,因此请确保查看您的时区。

如果Azure AD的令牌终结点立即到期,则可能是错误。 令牌一开始可能仍然可以工作,因为令牌验证通常会允许一点时钟偏斜。