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

如何在Azure DevOps部署Azure Web Apps时不使用Basic Authentication

解决方案

方案1:调整现有AzureRmWebAppDeployment@4任务配置

默认情况下,AzureRmWebAppDeployment@4在使用AzureRM服务主体连接时,可能仍会尝试获取Web App的发布配置文件(该过程依赖Basic Authentication)。你可以通过显式指定部署方式为RunFromPackage来规避这个问题:

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: '<service principal name>'
    appType: 'webApp'
    WebAppName: '<webapp name>'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/**/DeployApp.zip'
    # 显式设置部署方式为RunFromPackage,避免依赖发布配置文件
    deploymentMethod: 'runFromPackage'

runFromPackage方式直接通过Azure ARM API完成部署,全程使用服务主体的OAuth认证,不涉及Basic Authentication。

方案2:改用Azure CLI任务部署(更推荐)

Azure CLI的az webapp deploy命令原生支持服务主体认证,完全不依赖Basic Authentication,逻辑更透明:

- task: AzureCLI@2
  inputs:
    azureSubscription: '<service principal name>'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az webapp deploy \
        --name <webapp name> \
        --resource-group <resource group name> \
        --src-path $(Build.ArtifactStagingDirectory)/**/DeployApp.zip \
        --type zip

注意替换<resource group name>为你的Web App所在资源组名称,该命令直接通过服务主体上下文完成部署,彻底绕开Basic Authentication相关逻辑。

关键注意点

  • 确保服务主体拥有Microsoft.Web/sites/deployments/write权限(Web App部署权限),否则会出现授权失败。
  • 两种方案均无需启用Basic Authentication,符合合规要求。

内容的提问来源于stack exchange,提问作者Wildly Stunted

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:27:08