Passaggio di credenziali al gestore estensione DSC di AzurePassing credentials to the Azure DSC extension handler

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Questo articolo illustra l'estensione DSC (Desired State Configuration) per Azure.This article covers the Desired State Configuration extension for Azure. Una panoramica del gestore estensione DSC è disponibile in Introduzione al gestore dell'estensione DSC (Desired State Configuration) di Azure.An overview of the DSC extension handler can be found at Introduction to the Azure Desired State Configuration extension handler.

Passaggio di credenzialiPassing in credentials

Nell'ambito del processo di configurazione, potrebbe essere necessario configurare account utente, servizi di accesso o installare un programma in un contesto utente.As a part of the configuration process, you may need to set up user accounts, access services, or install a program in a user context. Per eseguire queste operazioni, è necessario fornire le credenziali.To do these things, you need to provide credentials.

DSC consente di eseguire configurazioni con parametri in cui le credenziali vengono passate nella configurazione e archiviate in modo sicuro in file MOF.DSC allows for parameterized configurations in which credentials are passed into the configuration and securely stored in MOF files. Per semplificare la gestione delle credenziali, il gestore estensione di Azure offre la gestione automatica dei certificati.The Azure Extension Handler simplifies credential management by providing automatic management of certificates.

Considerare lo script di configurazione DSC seguente che crea un account utente locale con la password specificata:Consider the following DSC configuration script that creates a local user account with the specified password:

user_configuration.ps1user_configuration.ps1

configuration Main
{
    param(
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [PSCredential]
        $Credential
    )    
    Node localhost {       
        User LocalUserAccount
        {
            Username = $Credential.UserName
            Password = $Credential
            Disabled = $false
            Ensure = "Present"
            FullName = "Local User Account"
            Description = "Local User Account"
            PasswordNeverExpires = $true
        } 
    }  
} 

È importante includere node localhost come parte della configurazione.It is important to include node localhost as part of the configuration. Se l'istruzione manca, la successiva procedura non funzionerà dal momento che il gestore dell'estensione cerca specificamente l'istruzione node localhost.If this statement is missing, the following steps do not work as the extension handler specifically looks for the node localhost statement. È importante anche includere il cast di tipo [PsCredential], perché questo tipo specifico attiva l'estensione per crittografare la credenziale.It is also important to include the typecast [PsCredential], as this specific type triggers the extension to encrypt the credential.

Pubblicare questo script nell'archivio BLOB:Publish this script to blob storage:

Publish-AzureVMDscConfiguration -ConfigurationPath .\user_configuration.ps1

Impostare l'estensione DSC di Azure e specificare la credenziale:Set the Azure DSC extension and provide the credential:

$configurationName = "Main"
$configurationArguments = @{ Credential = Get-Credential }
$configurationArchive = "user_configuration.ps1.zip"
$vm = Get-AzureVM "example-1"

$vm = Set-AzureVMDSCExtension -VM $vm -ConfigurationArchive $configurationArchive 
-ConfigurationName $configurationName -ConfigurationArgument @configurationArguments

$vm | Update-AzureVM

Protezione delle credenzialiHow credentials are secured

Durante l'esecuzione del codice viene chiesta una credenziale.Running this code prompts for a credential. Una volta fornita, viene archiviata nella memoria per breve tempo.Once it is provided, it is stored in memory briefly. Quando viene pubblicata con il cmdlet Set-AzureVmDscExtension , viene trasmessa tramite HTTPS alla VM, dove Azure la archivia crittografata su disco, usando il certificato della VM locale.When it is published with Set-AzureVmDscExtension cmdlet, it is transmitted over HTTPS to the VM, where Azure stores it encrypted on disk, using the local VM certificate. Viene quindi brevemente decrittografata nella memoria e nuovamente crittografata per passarla a DSC.Then it is briefly decrypted in memory and re-encrypted to pass it to DSC.

Questo comportamento è diverso dall' uso di configurazioni sicure senza il gestore dell'estensione.This behavior is different than using secure configurations without the extension handler. L'ambiente di Azure offre un modo per trasmettere i dati di configurazione in maniera sicura tramite certificati.The Azure environment gives a way to transmit configuration data securely via certificates. Quando si usa il gestore dell'estensione DSC, non è necessario fornire $CertificatePath o una voce $CertificateID/$Thumbprint in ConfigurationData.When using the DSC extension handler, there is no need to provide $CertificatePath or a $CertificateID / $Thumbprint entry in ConfigurationData.

Passaggi successiviNext steps

Per altre informazioni sul gestore dell'estensione DSC, vedere Introduzione al gestore dell'estensione DSC (Desired State Configuration) di Azure.For more information on the Azure DSC extension handler, see Introduction to the Azure Desired State Configuration extension handler.

Esaminare il modello di Azure Resource Manager per l'estensione DSC.Examine the Azure Resource Manager template for the DSC extension.

Per altre informazioni su PowerShell DSC, vedere il centro di documentazione di PowerShell.For more information about PowerShell DSC, visit the PowerShell documentation center.

Per trovare altre funzionalità che è possibile gestire con PowerShell DSC, cercare in PowerShell Gallery altre risorse DSC.To find additional functionality you can manage with PowerShell DSC, browse the PowerShell gallery for more DSC resources.