hyperledger-labs / fabric-operations-console

A UI for managing Fabric peers, orderers, and CAs
Apache License 2.0
108 stars 62 forks source link

Hashicorp Vault wallet implementation proposal #568

Open TsvetanG opened 7 months ago

TsvetanG commented 7 months ago

Currently, the fabric operation console wallet implementation uses the local browser storage to store the user identities (cert and private key). The console user must download those identities locally to persist them. This can be a cumbersome process that requires additional steps to keep the downloaded data secure. Hashicrop Vault can be used to persist automatically the user identities and keep the data secure without the need to download and manage locally. The fabric operations console wallet can be extended to support Hashicorp Vault as a secure store of the user identities. The idea is to abstract the existing wallet implementation and introduce a new Hashicorp Vault based wallet. Furthermore, a configuration can be enabled to control what wallet impl to use based on the specific deployment needs. That way the console would support the current wallet impl and the new Hashicrop Vault based impl. My team at Senofi is willing to contribute the implementation to the project.

dshuffma-ibm commented 6 months ago

@TsvetanG thanks for the proposal, so what i think we could do is make the wallet more plug-able/modular. we could make a spec that a wallet would need to implement, and a user could configure their console to use 1 of many wallets, which could include hashicorp. the actual wallet code would sit in it's own repository, and it would be pulled into a console build when we bundle the fontend js.

i like the idea of this plug-able wallet solution, because ALL users don't have to download code and get maintenance updates from every different wallet implementation, when they are only using 1 particular kind.

dshuffma-ibm commented 6 months ago

so next steps would be to define the wallet api spec, and make some stubs to bring in other wallets during our esbuild process

TsvetanG commented 5 months ago

Yes, we are working on the technical details and a plan. Our existing impl is not using modules so we need to do a small re-work.

TsvetanG commented 5 months ago

@dshuffma-ibm Do you think we should be adding the Wallet vault implementation inside the fabric operations console git repo or we should use a dedicated repository?

dshuffma-ibm commented 5 months ago

@TsvetanG a dedicated repository

TsvetanG commented 3 months ago

Here are the technical details. In a nutshell the idea is to change the Fabric Operations Console front-end and backend so that it can support other identity storage (Hashicorp Vault). The following changes may achieve that:

@dshuffma-ibm : let us know what you think.

denyeart commented 1 month ago

@ckpaliwal What are your thoughts?

ckpaliwal commented 1 month ago

@TsvetanG I'm weighing my options and will let you know.

TsvetanG commented 1 month ago

@ckpaliwal Do you have any update?

denyeart commented 3 weeks ago

Discussed with @TsvetanG today. Current thinking is to keep the implementation simple by having console repository natively support both the browser storage and Hashicorp vault storage, with a simple configuration that determines which will be used.