我从哪里获取我的实际Azure网站部署密码?

wxclj1h5  于 2023-03-24  发布在  其他
关注(0)|答案(3)|浏览(118)

在Visual studio 2015中,当我将网站/Web应用程序发布到Azure时,我可以自动创建新的发布配置文件(通过输入我的个人Azure帐户凭据),这将创建.pubxml.pubxml.user文件。部署用户名的格式为“$websiteName”,密码由一长串的项目符号表示。.pubxml.user文件包含实际的密码,它被加密,只有我的Visual Studio可以读取它,通过用我的本地Windows用户帐户解密它-我,作为一个人,没有办法看到它。此外,.user文件被排除在源代码管理之外(但.pubxml文件被包括在源代码管理中)。
当我团队中的另一个人尝试部署网站时,他们会获得相同的部署设置,但会提示输入“$website”帐户的密码。我不知道从哪里获取此密码-Azure管理门户不显示它。
如果用户打开门户并选择重置发布配置文件,那么他们可以下载一个新的.pubxml文件,其中包含一个加密的密码,我知道只有他们的个人Azure凭据才能解密,但这会破坏我和其他用户的部署,因为现在他们保存的密码(在.user文件中)无效。
我知道这是一个不同的用户名+密码的Azure门户上的“部署凭据”刀片,因为目前该网站没有部署凭据集,此外,如果我要设置一个,用户名是不同的。门户指出,这些凭据是用于FTP访问反正-没有提到Web部署功能。

mwecs4sa

mwecs4sa1#

您可以通过门户或PowerShell/CLI获取当前凭据。

Azure Portal

在门户网站上,webapp刀片的顶部有一个按钮,用于下载发布配置文件(不是部署凭据刀片,而是主web应用刀片)。

Azure PowerShell

首先,确保已安装Azure PowerShell cmdlet:https://learn.microsoft.com/en-us/powershell/azure/install-azurerm-ps?view=azurermps-6.3.0
1.打开提升的PowerShell窗口。
1.输入$PSVersionTable.PSVersion。确保输出显示您拥有Major版本5或更高版本。如果此命令给您一个错误,则您正在运行PowerShell v1,这在这一点上是古老的。
1.输入Install-Module -Name AzureRM(可能会提示您更新NuGet,在这种情况下您应该更新)
1.等待它完成安装。
1.输入Import-Module AzureRM
1.输入Connect-AzureRmAccount并完成身份验证过程。
1.运行此命令将发布配置文件保存到磁盘上的一个文件中(为了可读性,添加了换行符,实际上将其放在一行中)。根据需要设置$WebAppName$ResourceGroupName

Get-AzureRmWebAppPublishingProfile
    -ResourceGroupName $ResourceGroupName
    -Name $WebAppName
    -OutputFile creds.xml
    -Format WebDeploy

.publishsettings文件

.publishsettings文件是一个XML文件(没有换行符)。在里面你会发现一个具有这种结构的文档。在<publishProfile>元素中用publishMethod="MSDeploy"查找userPWD属性。不要使用FTP凭据(在第二个<publishProfile>元素中),因为用户名不同。
userPWD属性值未加密,而是完全随机字节的base64(或base 62?)编码。可以将此值直接复制并粘贴到Visual Studio发布向导中的凭据提示符中。

<publishData>
    <publishProfile
        profileName="SITE - Web Deploy"
        publishMethod="MSDeploy"
        publishUrl="SITE.scm.azurewebsites.net:443"
        msdeploySite="SITE"
        userName="$SITE"
        userPWD="YOUR PASSWORD IS HERE"                    <-- This attribute here
        destinationAppUrl="http://SITE.azurewebsites.net"
        SQLServerDBConnectionString=""
        mySQLDBConnectionString=""
        hostingProviderForumLink=""
        controlPanelLink=""
        webSystem="WebSites"
    >
        <databases />
    </publishProfile>

    <publishProfile
        profileName="SITE - FTP"
        publishMethod="FTP"
        publishUrl="ftp://SITE.ftp.azurewebsites.windows.net/site/wwwroot"
        ftpPassiveMode="True"
        userName="SITE\$SITE"
        userPWD="FTP PASSWORD IS HERE"
        destinationAppUrl="http://SITE.azurewebsites.net"
        SQLServerDBConnectionString=""
        mySQLDBConnectionString=""
        hostingProviderForumLink=""
        controlPanelLink=""
        webSystem="WebSites"
    >
        <databases />
    </publishProfile>
</publishData>
myzjeezk

myzjeezk2#

如果您不熟悉PowerShell,可以尝试以下指令,使用azure cli获取部署用户名和密码。

az webapp deployment list-publishing-profiles --name your_web_app_name --resource-group your_resource_group

您还可以添加--query来检索“userPWD”

az webapp deployment list-publishing-profiles --name your_web_app_name --resource-group your_resource_group --query '[].userPWD' -o tsv

输出将像
oMarhPTTJc6F7muHfz11232342342342420tv5Lwikf1Xc

06odsfpq

06odsfpq3#

我发现了一种在Azure门户中获取部署凭据的更简单方法。在您的应用服务中,转到 Deployment Center 刀片。在 FTPS Credentials 选项卡中检查 Application scope 凭据。

相关问题