用于验证Yubikey一次性密码(OTPs)的库
项目描述
Yubico Python客户端
基于验证协议版本2.0的Python类,用于验证Yubico一次性密码(OTPs)。
Yubico网站: http://www.yubico.com
Yubico文档: http://www.yubico.com/developers/intro/
验证协议版本2.0描述: https://developers.yubico.com/yubikey-val/Validation_Protocol_V2.0.html
有关更多信息和使用示例,请参阅文档。
文档
安装
$ pip install yubico-client
注意:软件包最近已从yubico重命名为yubico-client,主模块也已从yubico重命名为yubico_client。这样做是为了避免命名冲突并简化特定分发的软件包的创建。
支持的Python版本
Python 2.7
Python 3.4
Python 3.5
Python 3.6
Python 3.7
Python 3.8
PyPy 2
PyPy 3
运行测试
要运行测试,请使用tox命令。这将自动在所有支持的Python版本上运行测试。
$ tox
许可
Yubico客户端遵循3-Clause BSD许可证进行分发。
变更日志
1.13.0 - 2020-05-21
更新客户端,默认情况下通过查询单个API服务器而不是多个服务器。
以前,我们出于高可用性和性能原因并行查询了6个Yubico API服务器。
现在api.yubico.com是全球分布式的,并且进行了负载均衡,所以我们不再需要这样做,我们只需查询单个API服务器,让服务器处理高可用性和负载均衡。
运行自己的内部Yubikey验证服务器的用户仍然可以通过传递客户端构造函数中的api_urls参数来指定服务器列表(与之前相同)。
由@mallensb和@nrw505贡献。是#31和#32的一部分。
1.12.0 - 2019-11-18
更新代码,以重试可能通过重试成功的服务器错误(服务器返回的5xx状态码)。这些错误可能只是网关或代理错误,可能在重试时成功。
由Nigel Williams (@nrw505) 贡献。#30
将requests依赖项的最低版本锁定为v2.22.0。
更新代码,以便在查询多个服务器时,如果一个服务器有问题,我们不会抛出异常。
我们并行查询多个服务器纯粹是为了可用性原因,而一致性/同步部分由服务器端处理。客户端在收到一个肯定或否定响应后立即返回。
由Nigel Williams (@nrw505) 贡献。#29
更新代码,以便在每个HTTP请求中发送包括客户端版本信息和平台字符串的User-Agent头。
还测试了Python 3.8.0的代码,并指出我们也支持Python 3.8。
1.11.0 - 2019-07-06
停止支持Python 2.6。#28
测试代码,并验证它以下Python版本都能正常工作:* Python 3.3 * Python 3.4 * Python 3.5 * Python 3.6 * Python 3.7 * PyPy 2 * PyPy 3 #28
1.10.0 - 2015-10-02
修复了与Python版本 >= 3.0 <= 3.3 的兼容性问题。#22
将requests依赖项锁定为最新版本(2.7)。#25 #27
由Wouter van Bommel,Vianney Carel 贡献。
确保在从响应中解析查询参数时参数未被转义。#23
由Tamás Gulácsi 贡献。
1.9.1 - 2014-02-05
修复了Python 3的兼容性问题。#21
1.9.0 - 2014-01-16
为了阻止不良实践,从Yubico类构造函数中完全移除use_https参数。同时更新DEFAULT_API_URLS变量,使其包含带有方案的完整URL(例如https://api.yubico.com/wsapi/2.0/verify)。
如果用户想使用自定义的非HTTPS URL或URLs,他们仍然可以通过将带有自定义非HTTPS URL的api_urls参数传递给构造函数来实现。
将模块级别的变量CA_CERTS_BUNDLE_PATH替换为可以传递给Yubico类构造函数的ca_certs_bundle_path参数。
将requests依赖项从1.2更新到2.2。
1.8.0 - 2013-11-09
修改verify_multi方法,如果otp_list参数包含少于两个项目,则抛出异常。
修改verify_multi方法中的max_time_window参数,使其以秒为单位(#19)
修改verify_multi方法,如果第一个和最后一个OTP时间戳之间的delta小于零,则抛出异常
允许用户在创建 Yubico 类的构造函数时传递 api_urls 参数。该参数可以包含用于验证令牌的 API url 列表。 https://github.com/Kami/python-yubico-client/pull/18
由 Dain Nilsson 贡献
依赖于 requests 库的新版本(1.2.3)。
更新代码和测试,以确保它们在 Python 3.3 下也能运行
1.7.0 - 2013-04-06
将 PyPi 包名从 yubico 更改为 yubico-client。
这样做是为了防止命名冲突,并使创建特定于分发版本的包(例如 Debian 包)更容易。
1.6.2 - 2013-04-02
如果有多个解释适用于特定的 OTP,首先尝试找到与输入 OTP 匹配的解释。如果找到了,则使用输入 OTP,否则使用随机解释。 - https://github.com/Kami/python-yubico-client/issues/14
由 Klas Lindfors 报告
1.6.1 - 2013-03-19
仅在运行测试时运行 logging.basicConfig,以防止在模块导入时初始化日志配置 - https://github.com/Kami/python-yubico-client/pull/13
1.6.0 - 2013-01-24
允许用户通过设置 CA_CERTS_BUNDLE_PATH 变量来指定用于验证服务器 SSL 证书的 CA 包路径。
在选择用于验证服务器 SSL 证书的 CA 包时,请查找以下常见位置 - https://github.com/Kami/python-yubico-client/pull/10
放弃对 Python 2.5 的支持
使用 requests 库执行 HTTP 请求,并默认启用 SSL 证书验证
等待响应时避免忙等待(添加 time.sleep) - https://github.com/Kami/python-yubico-client/pull/9
允许用户在 verify 和 verify_multi 方法中将 sl 参数的值传递为 0 - https://github.com/Kami/python-yubico-client/pull/8
如果发生超时或返回无效的状态码,则在 verify 和 verify_multi 方法中抛出异常 - https://github.com/Kami/python-yubico-client/pull/7
改进响应验证,并验证响应中包含的 otp 和 nonce 参数是否与请求中提供的一致 - https://github.com/Kami/python-yubico-client/pull/7
添加日志记录
项目详情
yubico-client-1.13.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e3b86cd2a123105edfacad40551c7b26e9c1193d81ffe168ee704ebfd3d11162 |
|
MD5 | 959295514f60127858a175348c0e6504 |
|
BLAKE2b-256 | a834201ac6111e1bc49b063d2ec1ed2888fa4166a2c00c65f93be2b9f53302ec |
yubico_client-1.13.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 59d818661f638e3f041fae44ba2c0569e4eb2a17865fa7cc9ad6577185c4d185 |
|
MD5 | f398cf918c8471b3387c5a133e72fb90 |
|
BLAKE2b-256 | 5e00afbc4852b620f49576e4ceccfd33d41391d32087d9e3b5cace48cdc5caab |