一个将配置和认证与程序逻辑分离的库
项目描述
orthauth
一个将配置和认证与程序逻辑分离的库
这不是加密的
这不是密码管理器
这不是安全的秘密存储系统
使用这个可能会自食其果
使用orthauth存储的秘密没有进行加密。Orthauth可以从多种来源获取凭证,但它是有意为之的不安全的。
如果您不理解这个用例以及在不安全环境中使用时的风险,那么请不要使用它。如果您被攻击,没有人能帮您。
用例
orthauth的主要用例是防止API密钥泄漏到源代码中,并最终出现在公共仓库中。orthauth不提供任何它使用的认证存储的操作安全。用户需要根据自身情况来确保这些存储和它们所在系统的安全性。
虽然orthauth试图防止秘密通过调试消息或日志泄露,但它不了解它返回的值的机密性,一旦它返回了该值,就取决于消费代码防止该值内容的泄露。
orthauth旨在统一两种常见的管理配置变量和凭证的方式:设置环境变量,以及将它们包含在权限设置为0600(最好保持在0700设置的文件夹中)的纯文本文件中。
例如,以下方式运行程序:export API_KEY=lolplzdonotstealthis; ./my-script-that-needs-the-key
或使用类似 ~/.pgpass
或 emacs .authinfo
的文件。请注意,对于大多数Python实现,pgpass可能不应该是一个来源,因为像psycopg2这样的库能够直接读取它。然而,在其他没有直接支持从pgpass读取的库的语言中,pgpass将是一个有用的来源。
通过提供多种方式无缝提供凭证,希望减少在不同环境中使用不同解决方案的需求,同时避免维护一个管理的认证基础设施的巨大复杂性。
方法
- 装饰器
- 在代码库中的名称和配置/秘密结构之间增加一层间接性。
- 明确了解什么应被视为公共信息。这样就可以防止将存储为秘密的信息用作找到另一个秘密的密钥。
- 存储静态配置信息的最低要求,任何更多都应该在消费配置的语言中实现,而不是在配置中实现。
当前支持的配置格式
格式 | 支持 | 安装 |
---|---|---|
json | 内置 | pip安装orthauth |
python字典字面量 | 内置 | pip安装orthauth |
yaml | 需要pyyaml | pip install orthauth[yaml] |
使用
import orthauth as oa
auth = oa.AuthConfig('path/to/config.yaml')
@auth.tangential_init('api_key', 'some-service-api-key')
class ThatNeedsAuth:
""" needs authenticated connection to some-service """
tna = ThatNeedsAuth()
print(tna.api_key)
还没有被吓倒吗?查看 开发者指南 了解更多示例。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
orthauth-0.0.18.tar.gz (31.8 kB 查看哈希)
构建分发
orthauth-0.0.18-py2.py3-none-any.whl (19.0 kB 查看哈希值)
关闭
orthauth-0.0.18.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8820eb6d41c0751313613adb7c7c7dec47357e30f1e9e2bc5e066fcbe24616f9 |
|
MD5 | 736260c3c1a2ae1054f80796a9469ecf |
|
BLAKE2b-256 | b3b8c74757c99c18f2d21acbdabe8674c477ee74549e235a63ad57ec45ea3f56 |
关闭
orthauth-0.0.18-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 87697dc037d329cd94722333220c732510c723c2c7eb1bc2661b63299c126d69 |
|
MD5 | 95a0e6054fcd0bdf8929078024f06f19 |
|
BLAKE2b-256 | 250891291fdd72833427fdcfad76bc5e6e51e3dcacaf9b26e73b4174481bae4c |