Introduzione al modulo SecretStore
I moduli SecretManagement e SecretStore sono disponibili nell'PowerShell Gallery e possono essere installati usando i comandi di PowerShellGet.
# Install with PowerShellGet 2.x
Install-Module Microsoft.PowerShell.SecretManagement
Install-Module Microsoft.PowerShell.SecretStore
oppure
# 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
Create 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 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()
che viene implementato dall'estensione dell'insieme di credenziali. Set-Secret
passa il nome come specificato dall'utente. L'estensione dell'insieme di credenziali cerca il segreto in base al nome. Se GetGecret()
restituisce una corrispondenza, Set-Secret
sovrascrive il segreto a meno che non si usi il parametro NoClobber . L'estensione dell'insieme di credenziali scrive sempre le informazioni segrete ricevute.
Si tratta dell'implementazione dell'estensione dell'insieme di credenziali per decidere se usare un confronto con distinzione tra maiuscole e minuscole sul nome. Ad esempio, i nomi segreti nell'insieme di credenziali delle estensioni Microsoft.PowerShell.SecretStore sono senza distinzione tra maiuscole e minuscole. Se il nome passato Set-Secret
è diverso solo per caso con il nome di un segreto esistente in un insieme di credenziali di SecretStore, il nome viene sovrascritto con il nuovo valore specificato.