Создайте хранилище SecretStore без пароля

#powershell

Вопрос:

Я пытаюсь более подробно ознакомиться с использованием несколько нового модуля PowerShell Microsoft.PowerShell.SecretManagement , используя модуль Microsoft.PowerShell.SecretStore расширения хранилища.

У меня возникли проблемы с тем, чтобы понять, как зарегистрировать секретный магазин без пароля с самого начала. АКА, вам вообще не нужно вводить пароль.

Вот что я пытаюсь сделать:

Установите модули:

 Install-Module Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore
 

Зарегистрируйте новый SecretVault, используя модуль SecretStore по умолчанию:

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

Теперь вот где я сталкиваюсь с проблемами…

Если я попробую это:

 Set-SecretStoreConfiguration -Interaction None -Authentication None
 

В итоге я получаю вот это:

 PS C:> Set-SecretStoreConfiguration -Interaction None -Authentication None

Confirm
Are you sure you want to perform this action?
Performing the operation "Changes local store configuration" on target "SecretStore module local store".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
Vault Microsoft.PowerShell.SecretStore requires a password.
Enter password:
****
A password is no longer required for the local store configuration.
To complete the change please provide the current password.
Enter password:
****
PS C:>
 

Я не могу сказать, делаю ли я что-то не так, или мне следует представить это как ошибку? Для него не имеет смысла запрашивать у меня пароль, если я говорю, что он ему не нужен, а затем прошу меня предоставить тот же пароль, чтобы удалить его.

Если это не ошибка, то единственное, о чем я могу думать, это то, что он все еще использует пароль за кулисами для процесса шифрования/дешифрования, и настройка Authentication больше касается использования хранилища, но сам пароль все еще используется для шифрования/дешифрования.


Я также попытался передать параметры регистрации по умолчанию, чтобы Register-SecretVault это выглядело так:

 -VaultParameters @{Authentication='None'; Interaction='None'}
 

И для этого все еще требовался пароль, на самом деле, он даже не применил настройки после регистрации, похоже, он их полностью игнорирует:

 PS C:> Register-SecretVault -ModuleName Microsoft.PowerShell.SecretStore -Name SecretStore -VaultParameters @{Authentication='None'; Interaction='None'} -DefaultVault
PS C:> Set-Secret -Name Testing -Secret 'Testing123'
Creating a new SecretStore vault. A password is required by the current store configuration.
Enter password:
****
Enter password again for verification:
****
PS C:> Get-SecretStoreConfiguration

      Scope Authentication PasswordTimeout Interaction
      ----- -------------- --------------- -----------
CurrentUser       Password             900      Prompt

PS C:>
 

Ответ №1:

Вы можете использовать $null для установки None значения параметров хранилища. Например:

 # To register the vault with Interaction amp; Authentication values to None
Register-SecretVault -Name test-secret-store -VaultParameters @{Authentication=$null; Interaction=$null} -ModuleName Microsoft.PowerShell.SecretStore

# Create a secret
Set-Secret -Name test-secret -Secret "my secret password" -Vault test-secret-store

# Get the secret value
Get-Secret -Name test-secret -AsPlainText -Vault test-secret-store
 

Чтобы получить дополнительную информацию о $null, вы можете прочитать эту статью.