web-dev-qa-db-ja.com

実際のAzure Website Deploymentパスワードはどこで入手できますか?

Visual Studio 2015では、Webサイト/ WebアプリをAzureに発行するときに、新しい発行プロファイルを自動的に作成できます(個人のAzureアカウントの資格情報を入力することにより)、.pubxmlおよび.pubxml.userファイル。展開ユーザー名の形式は「$websiteName」とパスワードは長い一連の箇条書きで表されます。.pubxml.userファイルには、ローカルのWindowsユーザーアカウントで復号化することにより、Visual Studioのみが読み取ることができるように暗号化された実際のパスワードが含まれています。私は人間として見ることができません。また、.userファイルはソース管理から除外されます(ただし、.pubxmlファイルはソース管理に含まれています)。

チームの別の人がWebサイトを展開しようとすると、同じ展開設定が取得されますが、「$website "アカウント。このパスワードの取得元がわかりません。Azure管理ポータルには表示されません。

ユーザーがポータルを開き、公開プロファイルをリセットすることを選択した場合、新しい.pubxml暗号化されたパスワードを含むファイルで、個人のAzure資格情報のみが解読できることを理解していますが、保存されたパスワード(.userファイル)は無効になります。

現在、Webサイトには展開資格情報が設定されていないため、これはAzureポータルの「展開資格情報」ブレードとは異なるユーザー名+パスワードであることを理解しています。ポータルは、これらの資格情報はいずれにせよFTPアクセス用であると述べています-Web配置機能については言及されていません。

30
Dai

ポータルまたはPowerShell/CLIを使用して、現在の資格情報を取得できます。

Azureポータル

ポータルのwebappブレードの上部には、公開プロファイル(展開資格情報ブレードではなく、メインWebアプリブレード)をダウンロードするためのボタンがあります。

Screenshot of Azure Portal as of April 2019

Azure PowerShell

最初に、Azure PowerShellコマンドレットがインストールされていることを確認します。 https://docs.Microsoft.com/en-us/powershell/Azure/install-azurerm-ps?view=azurermps-6.3.

  1. 管理者特権のPowerShellウィンドウを開きます。
  2. $PSVersionTable.PSVersionと入力します。出力に、メジャーバージョン5以降が表示されていることを確認します。このコマンドでエラーが発生した場合、この時点で古くなったPowerShell v1を実行しています。
  3. Install-Module -Name AzureRMと入力します(NuGetの更新を求められる場合がありますが、その場合は必要です)
  4. インストールが完了するのを待ちます。
  5. Import-Module AzureRMと入力します
  6. Connect-AzureRmAccountと入力して、認証プロセスを完了します。
  7. このコマンドを実行して、パブリッシングプロファイルをディスク上のファイルに保存します(読みやすくするために改行が追加されていますが、実際にはこれを1行に入れてください)。 $WebAppNameおよび$ResourceGroupNameを適切に設定します。

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

.publishsettingsファイル

.publishsettingsファイルはXMLファイルです(改行なし)。内部には、この構造を持つドキュメントがあります。 <publishProfile>を含むpublishMethod="MSDeploy"要素でuserPWD属性を探します。ユーザー名が異なるため、FTP資格情報(2番目の<publishProfile>要素)を使用しないでください。

userPWD属性値は暗号化されませんが、完全にランダムなバイトのbase64(またはbase62?)エンコードです。この値をコピーして、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>
42
bmoore-msft

PowerShellに慣れていない場合は、以下の手順を試して、 Azure cli を使用して展開のユーザー名とパスワードを取得できます。

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

enter image description here

また、「userPWD」を取得する--queryを追加します

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

出力は次のようになります

oMarhPTTJc6F7muHfz11232342342342342420tv5Lwikf1Xc

5
Andy Lai