Testare l'autenticazione con un account RunAs di Automazione di AzureTest Azure Automation Run As account authentication

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.After an Automation account is successfully created, you can perform a simple test to confirm you are able to successfully authenticate in Azure Resource Manager or Azure classic deployment using your newly created or updated Automation Run As account.

Autenticazione con l'account RunAs di AutomazioneAutomation Run As authentication

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.Use the sample code below to create a PowerShell runbook to verify authentication using the Run As account and also in your custom runbooks to authenticate and manage Resource Manager resources with your Automation account.

$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 ServicePrincipalCertificateNotice the cmdlet used for authenticating in the runbook - Add-AzureRmAccount, uses the ServicePrincipalCertificate parameter set. ed esegue l'autenticazione usando il certificato dell'entità servizio, non le credenziali.It authenticates by using service principal certificate, not credentials.

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.When you run the runbook to validate your Run As account, a runbook job is created, the Job blade is displayed, and the job status displayed in the Job Summary tile. Lo stato del processo è inizialmente In coda per indicare che è in attesa della disponibilità di un ruolo di lavoro per runbook nel cloud.The job status will start as Queued indicating that it is waiting for a runbook worker in the cloud to become available. 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.It will then move to Starting when a worker claims the job, and then Running when the runbook actually starts running. Al termine del processo del runbook, lo stato visualizzato dovrebbe essere Completato.When the runbook job completes, we should see a status of Completed.

Per visualizzare i risultati dettagliati del runbook, fare clic sul riquadro Output .To see the detailed results of the runbook, click on the Output tile. 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.On the Output blade, you should see it has successfully authenticated and returns a list of all resources in all resource groups in your subscription.

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.Just remember to remove the block of code starting with the comment #Get all ARM resources from all resource groups when you reuse the code for your runbooks.

Autenticazione con l'account RunAs classicoClassic Run As authentication

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.Use the sample code below to create a PowerShell runbook to verify authentication using the Classic Run As account and also in your custom runbooks to authenticate and manage resources in the classic deployment model.

$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.When you run the runbook to validate your Run As account, a runbook job is created, the Job blade is displayed, and the job status displayed in the Job Summary tile. Lo stato del processo è inizialmente In coda per indicare che è in attesa della disponibilità di un ruolo di lavoro per runbook nel cloud.The job status will start as Queued indicating that it is waiting for a runbook worker in the cloud to become available. 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.It will then move to Starting when a worker claims the job, and then Running when the runbook actually starts running. Al termine del processo del runbook, lo stato visualizzato dovrebbe essere Completato.When the runbook job completes, we should see a status of Completed.

Per visualizzare i risultati dettagliati del runbook, fare clic sul riquadro Output .To see the detailed results of the runbook, click on the Output tile. 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.On the Output blade, you should see it has successfully authenticated and returns a list of all Azure VMs by VMName that are deployed in your subscription.

Ricordare di rimuovere il cmdlet Get-AzureVM quando si usa di nuovo il codice per i runbook.Just remember to remove the cmdlet Get-AzureVM when you reuse the code for your runbooks.

Passaggi successiviNext steps