Condividi tramite


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.