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

使用用户分配MSI生成Bot Connector认证JWT遇AADSTS700016问题求助

关于用户分配托管标识生成Bot Framework JWT令牌的问题解答

1. 解决AADSTS700016异常

这个错误核心原因是令牌请求发送到了错误租户,或托管标识的服务主体未在Bot Framework租户中注册,解决步骤如下:

  • 明确指定请求令牌的租户为Bot Framework专属租户,ID为bf86a6cc-19d0-43aa-9494-28b4874471a0,而非你自己的Azure AD租户ID。
  • 用Azure CLI将托管标识注册到Bot Framework租户:az ad sp create --id <托管标识客户端ID> --tenant bf86a6cc-19d0-43aa-9494-28b4874471a0(需管理员权限)。
  • 确保请求资源为https://api.botframework.com,权限范围需追加/.default(如https://api.botframework.com/.default)。

2. C#中使用Azure.Identity生成令牌的实现

使用ManagedIdentityCredential直接指定托管标识客户端ID和Bot Framework租户ID,示例代码:

using Azure.Identity;
using Azure.Core;
using System.Threading;
using System.Threading.Tasks;

public async Task<string> GetBotFrameworkToken()
{
    // 替换为你的用户分配托管标识客户端ID
    string managedIdentityClientId = "<托管标识客户端ID>";
    string botResource = "https://api.botframework.com";
    // Bot Framework专属租户ID
    string botTenantId = "bf86a6cc-19d0-43aa-9494-28b4874471a0";

    var credential = new ManagedIdentityCredential(managedIdentityClientId);
    var tokenContext = new TokenRequestContext(new[] { $"{botResource}/.default" })
    {
        TenantId = botTenantId
    };

    AccessToken token = await credential.GetTokenAsync(tokenContext, CancellationToken.None);
    return token.Token;
}

若使用DefaultAzureCredential,需提前设置环境变量:

  • AZURE_CLIENT_ID:用户分配托管标识的客户端ID
  • AZURE_TENANT_ID:Bot Framework租户ID(bf86a6cc-19d0-43aa-9494-28b4874471a0)

3. 确保托管标识在Bot Framework目录中被识别的步骤

  • 关联到机器人资源:在Azure Portal打开你的Azure Bot资源,进入「身份」→「用户分配的标识」,添加已创建的用户分配托管标识。
  • 注册服务主体:执行问题1中的Azure CLI注册命令,将托管标识服务主体注册到Bot Framework租户。
  • 验证注册状态:执行az ad sp show --id <托管标识客户端ID> --tenant bf86a6cc-19d0-43aa-9494-28b4874471a0,返回服务主体信息即为注册成功。

4. 托管标识的Azure AD配置与权限要求

  • 绑定机器人资源:必须将用户分配托管标识绑定到你的Azure Bot资源(步骤同问题3第一条)。
  • 授予Bot Connector权限:在Azure AD中搜索企业应用「Bot Framework Connector」,进入「权限」→「添加权限」,为托管标识添加应用权限(如Connector.ReadWrite.All),并由租户管理员完成权限同意。
  • 跨租户访问配置:确保你的Azure AD租户未阻止托管标识向Bot Framework租户(bf86a6cc-19d0-43aa-9494-28b4874471a0)发起令牌请求。

内容的提问来源于stack exchange,提问作者Rajesh Prajapati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:13:29