Add-AzureAccount sin prompt: autenticándote en PowerShell y automatizando scripts

Si trabajas con Microsoft Azure y realizas tareas a través de PowerShell sabrás que antes de realizar cualquier operación debes autenticarte primero. Para ello puedes descargar el archivo de publicación (Get-AzurePublishSettingsFile) o hacer uso de Add-AzureAccount. Si lo que necesitas es automatizar tareas debes utilizar un sistema de autenticación que no exija la interacción con el usuario. En este post te voy a mostrar cómo autenticarte con Add-AzureAccount usando un usuario del  Azure Active Directory asociado a tu suscripción.

Lo primero que debes hacer es crear un nuevo usuario en la cuenta de Azure Active Directory asociada.

New user - Azure Active Directory
New user – Azure Active Directory

Una vez creado, debes agregar el mismo como co-administrador en el apartado SETTINGS > ADMINISTRATORS de tu suscripción.

Specify a co-administrator for subscriptions
Specify a co-administrator for subscriptions

Por último, la forma de autenticarnos con este nuevo usuario es de la siguiente:

$userName = “[email protected]”
$securePassword = ConvertTo-SecureString -String "My_Password" -AsPlainText -Force

$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
Add-AzureAccount -Credential $cred
Get-AzureSubscription

La diferencia en este caso es que utilizo New-Object System.Management.Automation.PSCredential($userName, $securePassword) para crear un objeto del tipo PSCredential y lo paso como parámetro en la llamada Add-AzureAccount -Credential $cred, permitiéndome acceso a mis recursos, sin un prompt que requiera interacción en un proceso automatizado.

¡Saludos!