web-dev-qa-db-fra.com

Où puis-je obtenir mon mot de passe de déploiement de site Web Azure réel?

Dans Visual studio 2015, lorsque je publie mon site Web/Webapp sur Azure, je peux créer automatiquement un nouveau profil de publication (en entrant mes informations d'identification de compte Azure personnelles), cela crée le .pubxml et .pubxml.user des dossiers. Le nom d'utilisateur de déploiement est au format "$websiteName "et le mot de passe est représenté par une longue série de puces. Le .pubxml.user Le fichier contient le mot de passe réel, qui est chiffré de telle sorte que seul mon Visual Studio peut le lire, en le déchiffrant avec mon compte d'utilisateur Windows local - en tant qu'humain, je n'ai aucun moyen de le voir. Également .user les fichiers sont exclus du contrôle de code source (mais le .pubxml les fichiers sont inclus dans le contrôle de source).

Lorsqu'une autre personne de mon équipe tente de déployer le site Web, elle obtient les mêmes paramètres de déploiement, mais est invitée à entrer le mot de passe pour le "$website ". Je ne sais pas d'où me procurer ce mot de passe - le portail de gestion Azure ne l'affiche pas.

Si la personne ouvre le portail et choisit de réinitialiser le profil de publication, elle peut télécharger un nouveau .pubxml fichier contenant un mot de passe chiffré que je comprends uniquement que leurs informations d'identification Azure personnelles peuvent déchiffrer, mais qui interrompt le déploiement pour moi et les autres utilisateurs, car maintenant leurs mots de passe enregistrés (dans le .user fichiers) est invalidé.

Je comprends qu'il s'agit d'un nom d'utilisateur + mot de passe différent du panneau "Informations d'identification de déploiement" sur le portail Azure, car actuellement, le site Web n'a pas défini d'informations d'identification de déploiement, en plus si je devais en définir un, le nom d'utilisateur est différent. Le portail indique que ces informations d'identification sont de toute façon pour l'accès FTP - aucune mention n'est faite de la fonctionnalité Web Deploy.

30
Dai

Vous pouvez obtenir les informations d'identification actuelles via le portail ou PowerShell/CLI.

Portail Azure

Sur le portail, il y a un bouton en haut du panneau d'application Web pour télécharger le profil de publication (pas le panneau d'informations d'identification de déploiement, mais le panneau d'application Web principal).

Screenshot of Azure Portal as of April 2019

Azure PowerShell

Tout d'abord, assurez-vous que les applets de commande Azure PowerShell sont installées: https://docs.Microsoft.com/en-us/powershell/Azure/install-azurerm-ps?view=azurermps-6.3.

  1. Ouvrez une fenêtre PowerShell élevée.
  2. Entrer $PSVersionTable.PSVersion. Assurez-vous que la sortie indique que vous disposez de la version majeure 5 ou ultérieure. Si cette commande vous donne une erreur, vous exécutez PowerShell v1 qui est ancien à ce stade.
  3. Entrer Install-Module -Name AzureRM (vous pouvez être invité à mettre à jour NuGet, auquel cas vous devez)
  4. Attendez qu'il termine l'installation.
  5. Entrer Import-Module AzureRM
  6. Entrer Connect-AzureRmAccount et terminer le processus d'authentification.
  7. Exécutez cette commande pour enregistrer le profil de publication dans un fichier sur le disque (des sauts de ligne ajoutés pour la lisibilité, en réalité, mettez cela sur une seule ligne). Ensemble $WebAppName et $ResourceGroupName selon le cas:

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

Fichier .publishsettings

Le .publishsettings fichier est un fichier XML (sans saut de ligne). À l'intérieur, vous trouverez un document avec cette structure. Recherchez l'attribut userPWD dans le <publishProfile> élément avec publishMethod="MSDeploy". N'utilisez pas les informations d'identification FTP (dans le deuxième <publishProfile> element) car le nom d'utilisateur est différent.

La valeur d'attribut userPWD n'est pas chiffrée, mais est le codage base64 (ou base62?) D'octets complètement aléatoires. Vous pouvez copier et coller cette valeur directement dans l'invite d'informations d'identification dans l'assistant de publication de 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

Si vous n'êtes pas familier avec PowerShell, vous pouvez essayer l'instruction ci-dessous pour obtenir le nom d'utilisateur et le mot de passe de déploiement à l'aide de Azure cli .

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

enter image description here

Vous ajoutez également --query pour récupérer le "userPWD"

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

La sortie sera comme

oMarhPTTJc6F7muHfz11232342342342342420tv5Lwikf1Xc

5
Andy Lai