Introduzione al modulo SecretStore

I moduli SecretManagement e SecretStore sono disponibili nella PowerShell Gallery e possono essere installati usando i comandi PowerShellGet.

# Install with PowerShellGet 2.x
Install-Module Microsoft.PowerShell.SecretManagement
Install-Module Microsoft.PowerShell.SecretStore

# Install with PSResourceGet 1.x
Install-PSResource Microsoft.PowerShell.SecretManagement
Install-PSResource Microsoft.PowerShell.SecretStore

Dopo aver installato i moduli, è possibile caricare i moduli e iniziare a usare o creare nuovi segreti.

Import-Module Microsoft.PowerShell.SecretManagement
Import-Module Microsoft.PowerShell.SecretStore

Creare un insieme di credenziali e aggiungere un segreto

Prima di tutto è necessario registrare l'insieme di credenziali. Il parametro Name è un nome descrittivo e può essere qualsiasi stringa valida.

Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault

Il parametro DefaultVault rende l'insieme di credenziali predefinito.

È ora possibile creare un segreto.

Set-Secret -Name TestSecret -Secret "TestSecretPassword"

In questo esempio viene passata una stringa di testo non crittografato per il valore del segreto. Il valore del segreto può essere uno dei cinque tipi supportati:

  • byte[]
  • Stringa
  • Securestring
  • PSCredential
  • Hashtable

La prima volta che si accede all'insieme di credenziali, è necessario specificare una password per il nuovo insieme di credenziali. Questa password viene usata per bloccare e sbloccare l'insieme di credenziali.

Vault SecretStore requires a password.
Enter password:
********
Enter password again for verification:
********

Eseguire Get-Secret per recuperare il segreto. L'uso dell'opzione AsPlainText restituisce il segreto come stringa non crittografata.

PS> Get-Secret -Name TestSecret -AsPlainText
TestSecretPassword

Per ottenere l'elenco di tutti i segreti, è possibile eseguire:

PS> Get-SecretInfo

Name       Type   VaultName
----       ----   ---------
TestSecret String SecretStore

Note

Quando si esegue Set-Secret con il parametro Name per specificare il nome del segreto, il cmdlet chiama GetSecret() implementato dall'estensione dell'insieme di credenziali. Set-Secret passa attraverso il nome fornito dall'utente. L'estensione dell'insieme di credenziali cerca il segreto in base a tale nome. Se GetGecret() restituisce una corrispondenza, sovrascrive il segreto a Set-Secret meno che non si usi il parametro NoClobber . L'estensione dell'insieme di credenziali scrive sempre le informazioni segrete ricevute.

Spetta all'implementazione dell'estensione dell'insieme di credenziali decidere se usare o meno un confronto con distinzione tra maiuscole e minuscole sul nome. Ad esempio, i nomi dei segreti nell'insieme di credenziali delle estensioni Microsoft.PowerShell.SecretStore non fanno distinzione tra maiuscole e minuscole. Se il nome passato a Set-Secret è diverso solo per caso con il nome di un segreto esistente in un insieme di credenziali SecretStore, il nome viene sovrascritto con il nuovo valore specificato.