Skip to content

Utilize the Windows Credential Manager as the secret store #103

@ohadschn

Description

@ohadschn

Summary of the new feature / enhancement

The current design allows 2 configurations:

  1. Password-based, which can get a bit tedious as each new session requires to input it again, and every 15 minutes even if you stay on the same shell
  2. No password, where they key is stored in some file in the user's location. This option is highly discouraged by the docs.

However, on Windows at least, there is a third option - use the built-in Credential Manager. As I understand the latter, it should be very secure, especially when Credential Guard is enabled (https://learn.microsoft.com/en-us/windows/security/identity-protection/credential-guard/). And since the current credentials are used, there is no need for passwords. As a bonus, you get a free editor/viewer built-in Windows.

Indeed, it seems exactly one such credential store has been created: https://www.powershellgallery.com/packages/SecretManagement.JustinGrote.CredMan/1.0.0. However, I can't even find the code for it, it hasn't been updated in more than 3 years, there was only one version ever released, and that version has only been downloaded around 6,600 times in all that time... so you can see why I find it hard to install and manage my passwords. Really in such matters I would typically only trust something much more popular, or something with a big company behind it - especially if that company was the one behind PowerShell itself...

Proposed technical implementation details (optional)

Perhaps you could contact the developer of said secret store, who I believe is @JustinGrote, to incorporate his code into this project. Alternatively, you could take the code from the "original" PS Credential Manager module (more precisely, it's current continuation where @echalone is carrying the torch): https://github.com/echalone/PowerShell_Credential_Manager

I just tested the latter and it works great - Windows already did all the hard work to let us access secrets conveniently and securely, would be a shame not to use it!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions