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

管理 Azure 应用服务的部署凭据

可以使用本地 Git 部署FTP/S 部署将本地应用部署到 Azure 应用服务。 本文介绍如何为本地 Git 或 FTP/S 部署创建和管理部署凭据。

部署凭据不同于 Azure 订阅凭据。 应用服务支持用于安全本地应用部署的两种类型的凭据: 用户范围应用范围 凭据。

  • 用户范围 或用户级凭据为用户的整个 Azure 帐户提供一组部署凭据。 通过基于角色的访问控制(RBAC)或共同管理员权限授予应用访问权限的用户,只要他们具有这些权限,就可以使用其用户级凭据。

    可以使用用户范围凭据通过本地 Git 或 FTP/S 将任何应用部署到你的 Azure 帐户有权访问的任何订阅中的应用服务。 不会与任何其他 Azure 用户共享这些凭据。 可以随时重置用户权限范围凭据。

  • 应用范围 或应用程序级凭据是每个应用一组凭据,可用于仅部署该应用。 这些凭据在创建时会自动为每个应用生成,无法手动配置,但可以随时重置密码。

    用户必须至少具有对应用(包括内置网站参与者角色)的参与者级别权限,才能通过 RBAC 授予对应用级凭据的访问权限。 读取者 角色无法发布,无法访问这些凭据。

先决条件

若要设置、重置、访问或使用部署凭据,必须对应用服务应用具有 参与者级权限。

基本身份验证要求

若要通过本地 Git 或 FTP/S 发布应用服务应用,必须启用基本身份验证。 SCM 基本身份验证发布凭据FTP 基本身份验证发布凭据都必须在 Azure 门户的应用配置页上设置为 On

基本身份验证的安全性低于其他身份验证方法,默认情况下为新应用禁用。 如果禁用了基本身份验证,则无法在应用的 部署中心 中查看或设置部署凭据,也不能使用这些凭据进行发布。 有关详细信息,请参阅 “在 Azure 应用服务部署中禁用基本身份验证”。

设置用户范围凭据

对于 FTP/S 部署,需要用户名和密码。 本地 Git 部署只需要用户名。 用户名在 Azure 中必须唯一。

对于本地 Git 部署,用户名不能包含 @ 字符。

对于 FTP/S 部署:

  • 用户名必须遵循格式 <app-name>\<user-name>。 由于用户范围凭据已链接到用户而不是应用,因此此格式会将登录作定向到应用的正确 FTP/S 终结点。

  • 密码必须至少为 8 个字符,并且包含大写字母、小写字母、数字和符号。 Azure 门户不显示用户范围密码,JSON 输出将显示为 null。 如果丢失或忘记密码,可以 重置凭据 以获取新凭据。

可以使用 Azure CLI 或 Azure 门户配置用户范围凭据。

若要使用 Azure CLI 创建用户范围凭据,请运行 az webapp deployment user set 命令,并将 <username><password> 替换为您选择的值。

az webapp deployment user set --user-name <username> --password <password>

设置用户范围凭据后,可以在 Azure 门户的应用 “概述 ”页上看到部署用户名。 如果配置了本地 Git 部署,则标签为 Git/部署用户名。 否则,标签为 FTP/部署用户名

显示应用的“概述”页上的 Git 部署用户名的屏幕截图。

获取应用程序范围凭据

应用程序范围凭据在创建应用时自动创建。 FTP/S 应用范围用户名始终遵循格式 app-name\$app-name。 本地 Git 应用范围用户名使用格式 $app-name

注意

在使用美元符号进行变量内插的 shell(例如 Bash)中使用 git remote add 时,必须使用 \$ 来转义用户名或密码中的任何美元符号,以避免出现身份验证错误。

可以使用 Azure CLI、Azure PowerShell 或 Azure 门户获取应用范围凭据。

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

az webapp deployment list-publishing-profiles --resource-group myResourceGroup --name myApp

对于 本地 Git 部署,还可以使用 az webapp deployment list-publishing-credentials 命令。 以下示例返回一个 Git 远程 URI,其中包含已嵌入的应用的应用程序范围凭据。

az webapp deployment list-publishing-credentials --resource-group myResourceGroup --name myApp --query scmUri

返回的 Git 远程 URI 在末尾没有 /<app-name>.git 。 如果使用 URI 添加远程,请将 /<app-name>.git 追加到 URI 以避免 git-http-push 出现错误 22

重置凭据

可以使用 Azure CLI、Azure PowerShell 或 Azure 门户重置应用程序范围的部署凭据并获取新密码。 应用范围用户名保留其自动生成的值。

在 Azure CLI 和 Azure 门户中,还可以通过创建新凭据来重置用户范围凭据。 此操作会影响您帐户中所有使用用户范围的凭据的应用程序。

重置部署凭据时,通过发布配置文件进行的任何外部集成和自动化都会停止工作,并且必须使用新值重新配置。

在 Azure CLI 中,请使用 az resource invoke-action 命令和 newpassword 操作重置应用程序范围密码。

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

通过重新运行 az webapp deployment user set 命令以创建新的用户名和密码值来重置用户范围凭据。

az webapp deployment user set --user-name <new-username> --password <new-password>