你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure 应用服务配置部署凭据

为了让你从本地计算机安全地部署应用,Azure 应用服务支持两种类型的凭据,分别用于本地 Git 部署FTP/S 部署。 这些凭据与 Azure 订阅凭据不同。

  • 用户级凭据:一组适用于整个 Azure 帐户的凭据。 需要部署到任何订阅(Azure 帐户有权对其进行访问)中的任何应用的应用服务时,可以使用这组凭据。 这是在门户 GUI(例如应用的资源页的“概览”和“属性”)中呈现的默认组。 当通过基于角色的访问控制 (RBAC) 或共同管理员权限授予用户应用访问权限时,该用户便可使用其用户级别的凭据,直到被撤销访问权限。 请勿与其他 Azure 用户共享这些凭据。

  • 应用级凭据:一组适用于每个应用的凭据。 若要只部署到该应用,则可使用这组凭据。 每个应用的凭据在其创建时自动生成。 这些凭据不能手动进行配置,但可随时进行重置。 如果要通过 (RBAC) 授予用户访问应用级别凭据的权限,该用户必须是应用的参与者或更高级别身份(包括网站参与者内置角色)。 读者不可进行发布,因此无法访问这些凭据。

注意

Azure 门户中的“开发中心(经典)”页面(旧部署体验)将于 2021 年 3 月弃用。 此更改不会影响应用中的任何现有部署设置,你可以继续在“部署中心”页中管理应用部署。

配置用户范围凭据

运行 az webapp deployment user set 命令。 将 <username> 和 <password> 替换为部署用户的用户名和密码。

  • 用户名在 Azure 中必须唯一,并且为了本地Git推送,不能包含“@”符号。
  • 密码必须至少为 8 个字符,且具有字母、数字和符号这三种元素中的两种。
az webapp deployment user set --user-name <username> --password <password>

JSON 输出会将该密码显示为 null

对 FTP/FTPS 使用用户范围凭据

使用用户范围凭据向 FTP/FTPS 终结点进行身份验证时,需要使用以下格式的用户名:<app-name>\<user-name>

由于用户范围凭据是关联到用户而不是特定资源,因此用户名必须采用这种格式才能将登录操作定向到正确的应用终结点。

获取应用程序范围凭据

使用 az webapp deployment list-publishing-profiles 命令获取应用程序范围凭据。 例如:

az webapp deployment list-publishing-profiles --resource-group <group-name> --name <app-name>

对于本地 Git 部署,还可以使用 az webapp deployment list-publishing-credentials 命令获取应用的 Git 远程 URI(其中已嵌入应用程序范围凭据)。 例如:

az webapp deployment list-publishing-credentials --resource-group <group-name> --name <app-name> --query scmUri

重置应用程序范围凭据

使用 az resource invoke-action 命令重置应用程序范围凭据:

az resource invoke-action --action newpassword --resource-group <group-name> --name <app-name> --resource-type Microsoft.Web/sites

禁用基本身份验证

一些组织需要满足安全要求,因此宁愿禁用通过 FTP 或 WebDeploy 进行的访问。 这样一来,组织的成员就只能通过 Azure Active Directory (Azure AD) 控制的 API 访问其应用服务。

FTP

若要禁用对站点的 FTP 访问,请运行以下 CLI 命令。 将占位符替换为资源组和站点名称。

az resource update --resource-group <resource-group> --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<site-name> --set properties.allow=false

若要确认 FTP 访问被阻止,可以尝试使用 FTP 客户端(如 FileZilla)进行身份验证。 若要检索发布凭据,请转到站点的概览边栏选项卡,然后单击“下载发布配置文件”。 使用该文件的 FTP 主机名、用户名和密码进行身份验证,你会收到 401 错误响应,指示你未获得授权。

WebDeploy 和 SCM

若要禁用对 WebDeploy 端口和 SCM 站点的基本身份验证访问,请运行以下 CLI 命令。 将占位符替换为资源组和站点名称。

az resource update --resource-group <resource-group> --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<site-name> --set properties.allow=false

若要确认发布配置文件凭据在 WebDeploy 上被阻止,请尝试使用 Visual Studio 2019 发布 Web 应用

禁止对 API 的访问

上一部分的 API 支持 Azure 基于角色的访问控制 (Azure RBAC),这意味着你可以创建一个自定义角色,并将权限较低的用户分配给该角色,这样这些用户就无法在任何站点上启用基本身份验证。 若要配置自定义角色,请按照这些说明进行操作

你还可以使用 Azure Monitor 审核任何成功的身份验证请求,并使用 Azure Policy 对订阅中的所有站点强制实施此配置。

后续步骤

了解如何使用这些凭据通过本地 GitFTP/S 部署应用。