Azure Powershell - rester dans le système

J'ai besoin de pouvoir stocker beaucoup d'abonnements Azure et les télécharger si nécessaire.

J'ai sauvegardé le profil en utilisant ...

Save-AzureRmProfile -Path 'C:\Temp\profile.json'

Alors je peux le télécharger

Select-AzureRmProfile -Path 'C:\Temp\profile.json'

Quelques jours plus tard, le jeton expire, et je ne peux plus télécharger un abonnement

Vos informations d'identification Azure Non configuré ou le terme de leur action a expiré.

Comment mieux stocker des abonnements pour Resource Manager?
Invité:

Alice

Confirmation de:

En fait, vous ne pouvez pas éviter cela, la validité du jeton expire à des fins de sécurité et cela se fait intentionnellement.

Vous aurez besoin de mettre à jour le jeton tous les deux quelques jours ou de faire quelque chose comme
https://stackoverflow.com/ques ... ofile
.

Alice

Confirmation de:

Utilisez la méthode de certificat: - Pour cette méthode, vous devez créer un fichier. publishSettingFile sur le portail de contrôle Azure (par PowerShell), puis importer ce fichier dans PowerShell.

Entrez le compte sur le portail de gestion Azure. Console ouverte Azure PowerShell Avec des privilèges élevés. Entrez la commande suivante: Get-AzurePublishSettingsFile. Si vous avez entré votre compte azure, Le chargement sera lancé dans votre navigateur Web. [Remarque] Pour éviter les problèmes lors de l'installation de plusieurs navigateurs. Assurez-vous de saisir le portail Azure Utilisation du navigateur Web par défaut [/ note] Enregistrez le fichier de profil de publication. Entrez la commande suivante, en remplaçant le chemin d'accès à l'endroit où vous avez enregistré le fichier de profil de publication: Import-AzurePublishSettingsFile C: \ Users \\ Downloads \ -credentials.publishsettings

Babette

Confirmation de:

L'idée de l'expiration du jeton est actuellement l'option la plus sécurisée. Je pense que c'est un bon équilibre entre la sécurité et la commodité, et je serais inquiet si dans Azure mis en œuvre de toute autre manière. Cependant, si vous travaillez en voiture, ce qui a tout à fait confiance, il existe des moyens plus simples et pratiques.

Le moyen le plus simple - utilisation

ConvertTo-SecureString

Pour créer une chaîne sécurisée pouvant être enregistrée localement sur le disque. Ainsi, au lieu d'entrer dans Azure Avec un jeton, obtenu à partir de vos informations d'identification, vous entrez simplement le système à chaque fois avec vos informations d'identification. Le verso est qu'il ne fonctionnera que sur le même ordinateur, vous ne pouvez pas transférer des informations d'identification vers un autre ordinateur. Vous devrez créer un nouveau fichier de crétation sur chaque machine.

#Write password out to disk 
"password" | ConvertTo-SecureString -AsPlainText -Force |
ConvertFrom-SecureString |
Out-File E:\ps\tmp\test.txt

#Read Password from disk, convert to securestring, store in variable.
$secureStringPassword = Get-Content E:\ps\tmp\test.txt |
ConvertTo-SecureString

#Create credential with secure string,
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist "user@example.com", $secureStringPassword

#login with those credentials
Add-AzureRmAccount -Credential $cred

Ceci est une version considérablement simplifiée de la version distribuée créée par moi.
https://codereview.stackexchan ... 62300
Vous pouvez créer un compte de certificat pour Azure, Mais c'est un processus de mise en œuvre beaucoup plus complexe et il est beaucoup plus difficile de se retirer. Avec cette solution, le changement de mot de passe arrêtera le travail de tout cela.

Pour répondre aux questions, connectez-vous ou registre