Introduzione al modulo SecretStore

Important

Il team PowerShell ha deciso che i moduli Secret sono completi in funzionalità e non saranno più sviluppati attivamente. I moduli continueranno a essere supportati per la sicurezza e la correzione di bug critici. Il repository di codice verrà archiviato.

Le ultime versioni pubblicate sono:

La natura dei segreti è cambiata radicalmente da quando è stato progettato questo progetto. Metodi di autenticazione senza password come passkey, single sign-on e sistemi di credenziali federati come Microsoft Entra ID, biometria e chiavi di sicurezza hardware sono il futuro.

I moduli SecretManagement e SecretStore sono disponibili dalla 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

o

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

Una volta installati i moduli, puoi caricarli e iniziare a usare o creare nuovi segreti.

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

Crea una cassaforte e aggiungi un segreto

Prima devi registrare il caveau. Il parametro Name è un nome amichevole e può essere una stringa valida qualsiasi.

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

Il parametro DefaultVault rende questo il vault predefinito.

Ora puoi creare un segreto.

Set-Secret -Name TestSecret -Secret "TestSecretPassword"

Questo esempio passa una stringa di testo in chiaro per il valore del segreto. Il valore segreto può essere uno di cinque tipi supportati:

  • byte[]
  • Stringa
  • SecureString
  • PSCredential
  • Tabelle Hash

La prima volta che accedi al caveau devi fornire una password per il nuovo caveau. Questa password viene usata per bloccare e sbloccare il caveau.

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

Corri Get-Secret a recuperare il segreto. Usando lo switch AsPlainText , il segreto viene restituito come stringa non criptata.

PS> Get-Secret -Name TestSecret -AsPlainText
TestSecretPassword

Per ottenere la lista di tutti i tuoi segreti, puoi eseguire:

PS> Get-SecretInfo

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

Notes

Quando esegui Set-Secret con il parametro Name per specificare il nome del segreto, il cmdlet chiama GetSecret() che viene implementato dall'estensione vault. Set-Secret passa attraverso il nome fornito dall'utente. L'estensione della cassaforte cerca il segreto con quel nome. Se GetSecret() restituisce una corrispondenza, Set-Secret sovrascrive il segreto a meno che tu non usi il parametro NoClobber . L'estensione del vault scrive sempre le informazioni segrete che riceve.

Spetta all'implementazione dell'estensione vault decidere se usare o meno un confronto con la mastruzzina e minuscola sul nome. Per esempio, nomi segreti nel Microsoft. PowerShell.SecretStore extension vault non distingue le maiuscole e le cose. Se il nome a Set-Secret cui passi differisce solo a seconda del caso con il nome di un segreto esistente in un caveau SecretStore, il nome viene sovrascritto con il nuovo valore che hai fornito.