从Bitwarden读取密码数据的keyring后端
bitwarden-keyring的Python项目详细描述
Bitwarden钥匙圈
概述
python包为任何保密系统提供了一个方便的单一入口点,允许将这些系统无缝集成到需要保密的应用程序中,如twine。
这个项目实现了keyring,以便能够从bitwarden(一个开源的多平台云/自托管密码管理器)读取机密。
此后端假定它将在cli应用程序的上下文中使用,并且它可以使用sdtin
、stdout
和stderr
与用户通信。我们可以实现一个额外的后端,在库中使用,假设所有内容都已经解锁,或者使用pinentry
来询问用户。
光盘机
当前有一个solved bug在tween中保持keyring,因此这个lib不被使用。如果您计划将其用于捆绳,请等待捆绳释放或从主控台安装:
pip install git+https://github.com/pypa/twine
要求
这个项目在引擎盖下使用官方的bitwarden CLI,因为没有简单的官方python bitwarden库。以下是截至2018年10月的安装说明和指向up to date instructions
的链接您可以通过多种不同的方式安装Bitwarden CLI:
npm
如果系统上已经安装了node.js运行时,则可以使用npm安装cli。npm使您的安装保持更新变得容易,如果您已经在使用node.js,它应该是首选的安装方法。
npm install -g @bitwarden/cli
本机可执行文件
为每个不需要安装node.js运行时的平台提供了本机打包的cli版本。您可以从Bitwarden文档中的downloads section获取这些信息。
其他包管理器
- Chocolatey
chocoinstallbitwarden-cli
- Homebrew
brew install bitwarden-cli
- Snap
sudo snap install bw
安装和配置
pip install bitwarden-keyring
python打包生态系统可能相当混乱。
因此,很可能你的设置和我的设置不一样。keyringsupports一个配置文件,带有一个允许明确定义后端路径的选项。安装时可能需要,也可能不需要。
用法
用作普通的密钥环后端。它是以优先级10安装的,因此可能会被选中 第一。
如果你想和twine一起使用,好消息,你已经准备好了。请确保此软件包安装在与捆绳相同的位置。
bitwarden-keyring
将在需要时自动请求凭据。如果您不想每次都解除对保险库的锁定,请将保险库会话导出到您的环境中(使用bw unlock
,然后按照说明进行操作,或者启动export BW_SESSION=$(bw unlock --raw)
)。
注意事项
bitwarden-keyring
将尝试根据给定的服务名称选择适当的凭据,但到目前为止,它不能使用普通的Bitwarden URL匹配机制。由于this issue,当Bitwarden发布新版本的cli时,这种情况可能会发生变化。
为了知道是否需要登录或只是解锁保险库,bitwarden-keyring
读取bitwarden-cli
的内部数据存储,因此任何私有api都可能在不通知的情况下更改。
bitwarden-keyring
仅用:
- macos,使用
bitwarden-cli
frombrew
- ubuntu,使用
bw
中的snap
如前所述,bitwarden-keyring
仅在具有标准输入和输出访问权限的cli应用程序的上下文中工作。如果您需要的东西要么是静默读取,要么是使用另一种通信方法,最好的方法可能是制作另一个后端,并且大多数函数都可以重用。
许可
bitwarden-keyring
是根据MIT License的条款发布的。
Bitwarden这个名字很可能是8bit Solutions LLC的财产。
贡献和行为准则
欢迎投稿,请参阅Contributing指南。 请记住,与项目的所有交互都需要遵循 Code of Conduct。