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

本地连接Microsoft Graph API的最优配置方案咨询

本地开发时以应用身份访问Microsoft Graph的无密钥方案

核心思路

复用已部署环境中托管标识对应的应用注册(已配置Graph API应用权限并获得管理员同意),通过Azure CLI模拟该服务主体身份,无需新增客户端密钥或额外权限配置。

步骤1:确认托管标识权限配置

确保你已在Entra ID中为托管标识对应的应用注册添加了所需的Microsoft Graph应用权限(如User.Read.All),且已获得管理员同意。

步骤2:本地通过Azure CLI登录托管标识服务主体

无需客户端密钥,使用设备代码登录方式模拟托管标识身份:

az login --service-principal -u <托管标识的Client ID> --tenant <你的租户ID> --use-device-code

按照提示在浏览器中输入设备代码完成登录,登录后Azure CLI将以该托管标识的身份运行。

步骤3:修改代码实现环境自动适配

将原有的EnvironmentCredential替换为ChainedTokenCredential,组合部署环境用的ManagedIdentityCredential和本地开发用的AzureCliCredential,实现不同环境自动切换:

using Azure.Identity;
using Microsoft.Graph;

var credential = new ChainedTokenCredential(
    new ManagedIdentityCredential(),
    new AzureCliCredential()
);

var graphClient = new GraphServiceClient(credential, new[] { "https://graph.microsoft.com/.default" });

步骤4:本地运行验证

启动.NET 7 Web API,应用会自动通过Azure CLI获取托管标识的应用令牌,无需额外配置密钥或权限,与部署环境使用同一套权限规则。

替代方案:Visual Studio服务主体身份验证

若使用Visual Studio开发,可直接在IDE中配置托管标识身份:

  1. 打开Visual Studio → 工具 → 选项 → Azure服务身份验证
  2. 添加服务主体,填入托管标识的Client ID和租户ID,通过设备代码完成登录
  3. 代码保持ChainedTokenCredential配置,Visual Studio会自动使用该服务主体身份获取令牌

内容的提问来源于stack exchange,提问作者Roelant M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:17:18