You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过给定的Access Token实现Azure AD身份验证?

解决方案

你可以通过以下两种方式,在.NET Azure客户端库中使用现成的Access Token完成身份验证:

方法1:使用官方AccessTokenCredential类(推荐)

从Azure.Identity 1.7.0版本开始,官方提供了AccessTokenCredential类,直接支持传入已有的Access Token:

  1. 确保安装对应版本的NuGet包:
dotnet add package Azure.Identity --version 1.7.0
  1. 示例代码:
// 替换为你获取到的现成Access Token
var existingAccessToken = "your-valid-access-token";

// 创建AccessTokenCredential实例
var tokenCredential = new Azure.Identity.AccessTokenCredential(existingAccessToken);

// 将credential传入Azure服务客户端(以Blob存储为例)
var blobServiceClient = new Azure.Storage.Blobs.BlobServiceClient(
    new Uri("https://your-storage-account.blob.core.windows.net"),
    tokenCredential
);

方法2:自定义TokenCredential实现

如果你的Azure.Identity版本较低,或者需要更灵活的过期时间控制,可以自定义TokenCredential子类:

using Azure.Core;

public class CustomStaticTokenCredential : TokenCredential
{
    private readonly AccessToken _token;

    public CustomStaticTokenCredential(string tokenValue, DateTimeOffset expiresOn)
    {
        _token = new AccessToken(tokenValue, expiresOn);
    }

    public override ValueTask<AccessToken> GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken = default)
    {
        return new ValueTask<AccessToken>(_token);
    }

    public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken = default)
    {
        return _token;
    }
}

// 使用示例
var accessToken = "your-valid-access-token";
// 替换为token实际的过期时间
var tokenExpiresOn = DateTimeOffset.UtcNow.AddHours(1);

var customCredential = new CustomStaticTokenCredential(accessToken, tokenExpiresOn);

// 传入Azure管理客户端(以计算服务为例)
var computeClient = new Azure.ResourceManager.Compute.ComputeManagementClient(customCredential)
{
    SubscriptionId = "your-subscription-id"
};

注意事项

  • 确保传入的Access Token包含目标Azure服务所需的权限(即正确的scope),否则会触发权限不足的错误
  • 如果Token过期,需要重新生成新Token并创建新的Credential实例,或者在自定义实现中添加刷新逻辑
  • 使用AccessTokenCredential时,会默认将Token的过期时间设为当前时间加1小时,如果你的Token实际过期时间不同,建议使用自定义实现

内容的提问来源于stack exchange,提问作者Dika Arta Karunia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:25:19