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

创建ARM服务连接失败:自动服务主体无法在AAD中创建应用

问题

我们的Azure环境包含多个App Services,此前通过Service Connection从DevOps流水线部署.NET Web项目已达2年多。上周服务连接密钥过期,尝试刷新令牌失败后,我们删除旧连接并尝试重建,却始终无法创建新连接。

操作步骤

  • 以Azure订阅Owner身份登录DevOps;
  • 进入项目设置>服务连接>创建服务连接;
  • 选择Azure Resource Manager类型;
  • 在弹出的认证对话框中登录Azure账号;
  • 选择Service principal (automatic)模式;
  • 设定范围级别为订阅并指定目标订阅;
  • 选择对应资源组(或留空);
  • 勾选「为所有流水线授予访问权限」;
  • 点击保存。

错误信息

  • 首次点击保存时触发:

    Failed to create an app in Azure Active Directory. Error: The requesting identity (CUID 1f0b82ec-5b86-7b51-8aff-5d7386cfb80c) does not have permission to access the tenant ().

  • 再次点击保存时触发:

    Failed to get access token from strong box. Key is invalid.

注:我是Azure AD租户成员(非来宾用户),用户设置允许执行该操作,且已被分配目标订阅的Owner、Contributor和Reader权限;团队另一成员执行相同操作也出现完全一致的错误。核心疑问:报错中提到的缺少权限的「requesting identity」究竟是哪个用户或实体?

回答

这里的requesting identity指的是你在DevOps中登录的当前Azure AD用户(错误里的CUID就是该用户的Azure AD唯一对象ID)——也就是触发自动创建服务主体操作的发起者。

你虽然拥有订阅层面的Owner权限,但自动创建服务主体的操作依赖的是Azure AD租户层面的权限:具体需要用户具备在Azure AD中创建「应用注册」(服务主体的关联对象)的权限。默认情况下,部分租户会限制普通用户创建应用注册,哪怕这些用户是订阅的Owner。

至于第二次出现的Failed to get access token from strong box. Key is invalid错误,是第一次创建失败后,DevOps缓存了无效的临时凭据,导致后续操作触发该报错,核心根源还是第一次的租户层面权限不足问题。

解决建议

  • 联系Azure AD全局管理员,检查租户的「用户设置」中「用户可以注册应用程序」的开关是否处于开启状态;
  • 若全局开关关闭,可让管理员给你的账号分配Application Developer角色,或直接授予单个的「创建应用注册」权限;
  • 也可以绕过自动创建流程,改用手动创建服务主体的方式:先在Azure AD中手动创建应用注册并生成密钥,再在DevOps中选择Service principal (manual)选项配置服务连接。

内容的提问来源于stack exchange,提问作者Brian Foley

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:42:39