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

如何将Azure应用注册绑定到订阅并分配对应权限?

解决Azure服务主体登录"Subscription is not found"问题及权限配置

一、将应用注册绑定到目标订阅

命令行操作步骤

  • 用拥有订阅管理权限的账号登录Azure CLI:
    az login
    
  • 查询目标订阅的ID(替换为你的订阅名称):
    az account list --query "[?name=='你的订阅名称'].id" -o tsv
    
  • 将应用注册(服务主体)关联到该订阅:
    az account set --subscription 你的订阅ID
    az ad sp create --id 19e4f82f-2010-4d91-a64d-7e599805e4d9
    
    注:若应用注册已存在,az ad sp create会返回已存在的提示,不影响后续操作

Azure Portal操作步骤

  • 登录Azure Portal,进入订阅页面,选中目标订阅
  • 左侧菜单点击访问控制(IAM)
  • 点击添加 → 添加角色分配
  • 在成员页签,选择用户、组或服务主体,点击选择成员,搜索你的应用注册名称并选中
  • 选择一个基础角色(如参与者)完成分配,此操作会自动将应用注册绑定到当前订阅

二、为应用注册分配订阅级权限

命令行操作步骤

  • 分配订阅级别的参与者权限(替换订阅ID和服务主体ID):
    az role assignment create --assignee 19e4f82f-2010-4d91-a64d-7e599805e4d9 --role "参与者" --scope "/subscriptions/你的订阅ID"
    
  • 若需细粒度权限(仅针对目标App Service),修改--scope为App Service资源ID:
    az role assignment create --assignee 19e4f82f-2010-4d91-a64d-7e599805e4d9 --role "网站参与者" --scope "/subscriptions/你的订阅ID/resourceGroups/你的资源组名/providers/Microsoft.Web/sites/你的App Service名"
    

Azure Portal操作步骤

  • 进入目标订阅(或直接进入目标App Service)的**访问控制(IAM)**页面
  • 点击添加 → 添加角色分配
  • 选择对应权限角色(如参与者、网站参与者),选中你的应用注册作为成员,完成分配

三、GitLab CI/CD部署到Azure App Service的其他实现方式

  • 登录时直接指定订阅:
    在服务主体登录命令后追加订阅设置命令,避免默认订阅不匹配问题:
    az login --service-principal -u 19e4f82f-2010-4d91-a64d-7e599805e4d9 -p 69f809f5-f428-4349-8f8b-9f50013ddb64 --tenant 你的租户ID && az account set --subscription 你的订阅ID
    
  • 使用GitLab预定义Azure模板:
    在.gitlab-ci.yml中直接使用GitLab提供的Azure App Service部署模板,只需在GitLab项目设置中配置Azure相关变量(租户ID、订阅ID、服务主体ID、密钥),无需手动编写登录逻辑
  • 借助Azure DevOps中转:
    通过GitLab webhook触发Azure DevOps Pipeline,利用Azure原生工具链完成App Service部署,适合已有Azure DevOps环境的场景

内容的提问来源于stack exchange,提问作者Semen Shekhovtsov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 16:57:17