【问题标题】:Why are API tokens recommended with PyPI?为什么建议使用 PyPI 使用 API 令牌?
【发布时间】:2020-04-12 09:59:57
【问题描述】:

来自 PyPI 上关于 API 令牌的帮助文本 (link):

我们强烈建议您尽可能使用 API 令牌进行身份验证。

这是为什么呢?如果我是唯一一个使用 Python 包的人,那么使用我的登录名/密码会有什么问题?

【问题讨论】:

  • 用户名/密码不太安全。
  • @James 你怎么知道我的密码有多长?
  • 这与密码长度无关,而与密码重用有关。如果您在另一个站点上使用相同的密码并且它已被泄露,那么 PyPi 的密码也是如此
  • 谁说我没有使用自动生成密码的密码管理器?
  • 没有人,但是:我怀疑您是否为每个包裹使用单独的帐户(除非您只有一个);并且使用 CI 的 2FA 很棘手。

标签: python authentication token pypi


【解决方案1】:
  • 如果您在其他地方重复使用您的密码(您不应该,但人们会这样做),那么如果 PyPI 被盗用,您的其他帐户可能会被盗用。
  • 使用您的用户名和密码可以授予您所有项目的权限,但令牌可以限制为单个项目。
  • 您可以在多台机器上使用多个令牌,因此如果一个令牌被盗用,您可以撤销它而不会影响其他机器或项目。
  • PyPI 可以保证令牌是高熵的。

【讨论】:

  • 谢谢!实际上,由于令牌仅显示一次,因此在何处以及如何存储它(例如,在存储库本身中,在加密文件中,使用密码管理器,..)的良好做法是什么?
  • @JonathanH 您打算在哪里使用令牌?例如,如果要从 CI 发布,您可以将其设置为 env var,或者将其存储在设置文件中(例如,docs.travis-ci.com/user/encryption-keys 用于 Travis)。
  • @JonathanH 这取决于您的基础设施的其余部分,但一般来说,这属于“秘密管理”的主题,您可以通过搜索找到适合您的堆栈的正确解决方案。不要提交版本控制,除非它被未提交版本控制的密钥加密。
  • 非常感谢。这是我的第一个 PyPI 包,我正在努力使其易于更新/分发。提交加密文件听起来很简单,但我也会研究 CI!
猜你喜欢
  • 2018-04-17
  • 2013-08-28
  • 1970-01-01
  • 2020-10-13
  • 2021-12-02
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
相关资源
最近更新 更多