Testare l'autenticazione con un account RunAs di Automazione di Azure

Al termine della creazione di un account di Automazione, è possibile eseguire un semplice test per verificare di poter completare l'autenticazione in Azure Resource Manager o nella distribuzione classica di Azure con l'account RunAs di Automazione appena creato o aggiornato.

Autenticazione con l'account RunAs di Automazione

Usare il codice di esempio seguente per creare un runbook di PowerShell per verificare l'autenticazione usando l'account RunAs e anche nei runbook personalizzati per autenticare e gestire le risorse di Resource Manager con l'account di Automazione.

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
       -ServicePrincipal `
       -TenantId $servicePrincipalConnection.TenantId `
       -ApplicationId $servicePrincipalConnection.ApplicationId `
       -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
   if (!$servicePrincipalConnection)
   {
      $ErrorMessage = "Connection $connectionName not found."
      throw $ErrorMessage
  } else{
      Write-Error -Message $_.Exception
      throw $_.Exception
  }
}

#Get all ARM resources from all resource groups
$ResourceGroups = Get-AzureRmResourceGroup 

foreach ($ResourceGroup in $ResourceGroups)
{    
   Write-Output ("Showing resources in resource group " + $ResourceGroup.ResourceGroupName)
   $Resources = Find-AzureRmResource -ResourceGroupNameContains $ResourceGroup.ResourceGroupName | Select ResourceName, ResourceType
   ForEach ($Resource in $Resources)
   {
      Write-Output ($Resource.ResourceName + " of type " +  $Resource.ResourceType)
   }
   Write-Output ("")
} 

Si noti che il cmdlet usato per l'autenticazione nel runbook (Add-AzureRmAccount) usa il set di parametri ServicePrincipalCertificate ed esegue l'autenticazione usando il certificato dell'entità servizio, non le credenziali.

Quando si esegue il runbook per convalidare l'account RunAs, viene creato un processo del runbook e viene visualizzato il pannello Processo con lo stato del processo nel riquadro Riepilogo processi. Lo stato del processo è inizialmente In coda per indicare che è in attesa della disponibilità di un ruolo di lavoro per runbook nel cloud. Lo stato passerà quindi ad Avvio in corso quando un ruolo di lavoro richiede il processo e quindi a In esecuzione quando l'esecuzione del runbook viene effettivamente avviata. Al termine del processo del runbook, lo stato visualizzato dovrebbe essere Completato.

Per visualizzare i risultati dettagliati del runbook, fare clic sul riquadro Output . Nel pannello Output dovrebbe risultare che l'autenticazione è stata completata e viene restituito un elenco di tutte le risorse in tutti i gruppi di risorse della sottoscrizione.

Ricordare di rimuovere il blocco di codice che inizia con il commento #Get all ARM resources from all resource groups quando si usa di nuovo il codice per i runbook.

Autenticazione con l'account RunAs classico

Usare il codice di esempio seguente per creare un runbook di PowerShell per verificare l'autenticazione usando l'account RunAs classico e anche nei runbook personalizzati per autenticare e gestire le risorse nel modello di distribuzione classica.

$ConnectionAssetName = "AzureClassicRunAsConnection"
# Get the connection
$connection = Get-AutomationConnection -Name $connectionAssetName        

# Authenticate to Azure with certificate
Write-Verbose "Get connection asset: $ConnectionAssetName" -Verbose
$Conn = Get-AutomationConnection -Name $ConnectionAssetName
if ($Conn -eq $null)
{
   throw "Could not retrieve connection asset: $ConnectionAssetName. Assure that this asset exists in the Automation account."
}

$CertificateAssetName = $Conn.CertificateAssetName
Write-Verbose "Getting the certificate: $CertificateAssetName" -Verbose
$AzureCert = Get-AutomationCertificate -Name $CertificateAssetName
if ($AzureCert -eq $null)
{
   throw "Could not retrieve certificate asset: $CertificateAssetName. Assure that this asset exists in the Automation account."
}

Write-Verbose "Authenticating to Azure with certificate." -Verbose
Set-AzureSubscription -SubscriptionName $Conn.SubscriptionName -SubscriptionId $Conn.SubscriptionID -Certificate $AzureCert
Select-AzureSubscription -SubscriptionId $Conn.SubscriptionID

#Get all VMs in the subscription and return list with name of each
Get-AzureVM | ft Name

Quando si esegue il runbook per convalidare l'account RunAs, viene creato un processo del runbook e viene visualizzato il pannello Processo con lo stato del processo nel riquadro Riepilogo processi. Lo stato del processo è inizialmente In coda per indicare che è in attesa della disponibilità di un ruolo di lavoro per runbook nel cloud. Lo stato passerà quindi ad Avvio in corso quando un ruolo di lavoro richiede il processo e quindi a In esecuzione quando l'esecuzione del runbook viene effettivamente avviata. Al termine del processo del runbook, lo stato visualizzato dovrebbe essere Completato.

Per visualizzare i risultati dettagliati del runbook, fare clic sul riquadro Output . Nel pannello Output dovrebbe risultare che l'autenticazione è stata completata e viene restituito un elenco di tutte le VM di Azure per nome VM visualizzate nella sottoscrizione.

Ricordare di rimuovere il cmdlet Get-AzureVM quando si usa di nuovo il codice per i runbook.

Passaggi successivi