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

如何通过AD应用ClientId和Client Secret使用MSAL获取访问令牌

使用MSAL通过Client ID和Client Secret获取访问令牌

首先需要安装Microsoft.Identity.Client NuGet包,这是MSAL的官方.NET库。

示例代码

using Microsoft.Identity.Client;

var clientId = ""; // 你的客户端应用ID
var clientSecret = ""; // 你的客户端密钥
var tenantId = "tenant domain or tenant ID"; // 可以是租户域名(如xxx.onmicrosoft.com)或租户GUID

// 构建机密客户端应用实例
var confidentialClient = ConfidentialClientApplicationBuilder
    .Create(clientId)
    .WithClientSecret(clientSecret)
    .WithAuthority(new Uri($"https://login.microsoftonline.com/{tenantId}"))
    .Build();

// 指定目标资源的权限范围,针对Microsoft Graph需使用`.default`后缀表示应用权限
var scopes = new[] { "https://graph.microsoft.com/.default" };

// 获取访问令牌
var authenticationResult = await confidentialClient.AcquireTokenForClient(scopes)
    .ExecuteAsync()
    .ConfigureAwait(false);

return authenticationResult.AccessToken;

关键差异说明

  • MSAL使用ConfidentialClientApplication替代ADAL的AuthenticationContext,专门适配拥有客户端密钥/证书的机密客户端场景
  • 权限范围需采用{resourceUri}/.default格式,这对应ADAL中直接传入资源地址的逻辑,用于请求应用权限(而非用户委派权限)
  • 认证权威地址推荐使用https://login.microsoftonline.com/{tenantId},原ADAL的login.windows.net地址仍可兼容,但前者是微软推荐的现代端点

内容的提问来源于stack exchange,提问作者Monte Cristo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:30:59