从Bitwarden读取密码数据的keyring后端

bitwarden-keyring的Python项目详细描述


Bitwarden钥匙圈

Build StatusLicense: MITPyPI versioncodecov

使用Bitwarden-cli

概述

python包为任何保密系统提供了一个方便的单一入口点,允许将这些系统无缝集成到需要保密的应用程序中,如twine

这个项目实现了keyring,以便能够从bitwarden(一个开源的多平台云/自托管密码管理器)读取机密。

此后端假定它将在cli应用程序的上下文中使用,并且它可以使用sdtinstdoutstderr与用户通信。我们可以实现一个额外的后端,在库中使用,假设所有内容都已经解锁,或者使用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获取这些信息。

其他包管理器

安装和配置

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-clifrom brew
  • ubuntu,使用bw中的snap

如前所述,bitwarden-keyring仅在具有标准输入和输出访问权限的cli应用程序的上下文中工作。如果您需要的东西要么是静默读取,要么是使用另一种通信方法,最好的方法可能是制作另一个后端,并且大多数函数都可以重用。

许可

bitwarden-keyring是根据MIT License的条款发布的。 Bitwarden这个名字很可能是8bit Solutions LLC的财产。

贡献和行为准则

欢迎投稿,请参阅Contributing指南。 请记住,与项目的所有交互都需要遵循 Code of Conduct

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在依赖项上没有这样的方法异常   java如何将@Value注入setter?   验证输入java的最佳实践   java在使用kotlin的安卓项目中没有此类字段错误   我们可以强制java接口实现超时吗?   java将BasicAuth()与FormLogin()组合用于不同的路径   java无法在更新SDK后更新应用程序(未安装应用程序)   macos Java 8、Swing和OSX:对话框使UI对鼠标无响应   java自定义单元格格式以US格式显示,尽管使用了带UK语言环境的DataFormatter   java按升序排列列表字符串数据   java Hibernate OGM[PersistenceUnit:person]无法构建Hibernate SessionFactory   生命周期配置未涵盖java插件执行:com。乱穿马路。专家插件。安卓generation2:安卓mavenplugin:3.5.0:generatesources   java RecyclerView显示为空   当服务器不返回任何输入时,java InputStream read()会阻塞