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

如何在Azure Bot与AKS间启用用户分配托管身份认证

解决AKS上Azure Bot用户分配托管身份认证失败问题

错误提示:[Managed Identity] Authentication unavailable. No response received from the managed Identity endpoint.

场景说明

基于Microsoft Bot Framework SDK开发的C# Azure Bot,已配置用户分配托管身份,部署在Azure Kubernetes Service (AKS)集群中,尝试通过托管身份访问Azure资源时触发上述认证错误。

基础配置确认

先确保Bot的核心配置项完全符合要求:

  • Bot Type:必须设置为"UserAssignedMSI",明确指定使用用户分配托管身份
  • Bot ID:填写用户分配托管身份的Client ID
  • Bot Password:留空,使用托管身份时无需该字段
  • Bot Tenant:填写Azure Active Directory的租户ID

AKS工作负载身份关键验证步骤

工作负载身份是AKS中Pod使用托管身份的核心机制,需逐一确认以下环节:

  1. 集群功能检查:确认AKS集群已启用OIDC Issuer和工作负载身份功能
  2. ServiceAccount关联验证:
    • 已创建与用户分配托管身份绑定的AKS服务账户(ServiceAccount),且该账户的注解azure.workload.identity/client-id值为托管身份的Client ID
    • 已完成Azure AD侧的权限配置:允许该ServiceAccount代表用户分配托管身份进行认证
  3. Pod配置检查:Bot的Deployment清单中,spec.serviceAccountName需指向上述关联了托管身份的ServiceAccount

Bot服务与资源权限配置

  • 确认用户分配托管身份已被授予访问目标Azure资源的对应权限(例如Storage Blob Contributor、Key Vault Reader等,根据Bot实际需求)
  • 确保Bot依赖的Azure SDK(如Azure.Identity)为最新稳定版,旧版本可能存在托管身份适配问题

快速错误排查

  1. Pod内端点测试:进入Bot的Pod容器,执行以下命令测试托管身份端点是否可用:
    curl http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/ -H Metadata:true
    
    若无法获取Token,说明Pod的工作负载身份链路存在问题,需重新检查ServiceAccount关联或集群配置
  2. 环境变量检查:在Pod内查看环境变量,确认是否存在AZURE_CLIENT_ID(值为托管身份Client ID)和AZURE_TENANT_ID,这两个变量由工作负载身份自动注入,缺失则说明配置错误
  3. 权限验证:通过Azure门户检查用户分配托管身份对目标资源的角色分配是否生效,确认分配范围和权限类型符合需求

内容的提问来源于stack exchange,提问作者Muthukumar kanagaraj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:09:57