Powershell - сделать SecureString доступным для другого пользователя - PullRequest
1 голос
/ 07 января 2020

У меня есть приложение, в котором я должен хранить пароль. Это приложение вызывается с пользователем SYSTEM. Я уже запутываю сценарий и храню его в безопасном месте.

Теперь мой вопрос: есть ли возможность создать SecureString, которая может быть расшифрована одним или несколькими другими пользователями?

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

Спасибо за вашу помощь:)

РЕДАКТИРОВАТЬ:
Чтобы уточнить мой вопрос: я хотел бы знать, есть ли другое решение, чем использование файла ключа.

1 Ответ

2 голосов
/ 07 января 2020

Да, обычно известно, что если вы заставляете пользователя вводить безопасную строку, он может быть отменен тем, кто ее ввел, используя

$credential = Get-Credential
$credential.UserName
$credential.Password

# Results
<#
cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:

$credential.UserName
testuser

$credential.Password
System.Security.SecureString
#>

или используя пространство имен. Net , Итак, как насчет подхода сохранения учетных данных в Windows Диспетчер учетных данных на компьютере пользователя. При установке приложения вы динамически генерируете кредиты для хранения, которые затем будете использовать для исполнения. Всякий раз, когда они запускают ваш код, ваш код вызывает кредит от Credential Manager, без взаимодействия с пользователем.

В MS PowerShellGallery.com есть несколько модулей, которые легко доступны и развернуты в системах при использовании менеджера учетных данных.

Find-Module -Name '*credential*'

<#
Version              Name                                Repository           Description                                                                           
-------              ----                                ----------           -----------                                                                           
2.0                  CredentialManager                   PSGallery            Provides access to credentials in the Windows Credential Manager                      
...
1.0.11               pscredentialmanager                 PSGallery            This module allows management and automation of Windows cached credentials.           
4.5                  BetterCredentials                   PSGallery            A (compatible) major upgrade for Get-Credential, including support for storing cred...
0.0.1                SecureCredentials                   PSGallery            This module allow to secure store encrypted credentials for running powershell daemon 
1.1.7                CredentialStore                     PSGallery            CredentialStore saves powershell credentials securely to file                         
...
1.1                  CredentialsManager                  PSGallery            The module Credentials Manager provides you with convenient and safe way to store y...
...
1.0.2                CredentialManagement                PSGallery            Manage Credentials stored in the Windows Credential Manager                           
1.1.0                PSCredentialTools                   PSGallery            PSCredentialTools provides various methods for securely storing and retrieving cred...
1.1                  New-Credential                      PSGallery            Simply creates an object (System.Management.Automation.PSCredential) that can be us...
...
#> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...