跳转到主要内容

BrowserID协议的Python库

项目描述

这是一个Python客户端库,用于BrowserID协议,该协议是Mozilla Persona的基础。

https://login.persona.org/

对于绝大多数部署,您只需调用模块级别的“verify”函数以验证给定的断言。

>>> data = browserid.verify(BROWSERIDASSERTION, "http://mysite.com")
>>> print data["email"]
"test@example.com"

此函数的精确实现将根据BrowserID团队的当前建议而变化。目前它将断言POST到远程验证器服务器的persona.org。

注意,您必须指定您网站的根URL作为该函数的第二个参数。这是“预期受众”,是BrowserID的关键安全特性。

如果您无法确定您的网站被访问的确切主机名(例如,由于虚拟主机),则可以指定一个或多个通配符模式,如下所示

>>> data = browserid.verify(BROWSERIDASSERTION, ["http://*.mysite.com"])
>>> print data["email"]
"test@example.com"

为了更精细地控制验证过程,您可以创建一个“Verifier”类的实例,避免反复指定受众模式。

>>> verifier = browserid.RemoteVerifier(["*.mysite.com"])
>>> data = verifier.verify(BROWSERIDASSERTION)
>>> print data["email"]
"test@example.com"

为了提高性能,或者如果您想走在最前沿,您可以使用LocalVerifier类显式地在本地上执行验证,如下所示

>>> verifier = browserid.LocalVerifier(["*.mysite.com"])
>>> data = verifier.verify(BROWSERIDASSERTION)
>>> print data["email"]
"test@example.com"

注意,BrowserID协议的详细信息仍在变化,因此本地验证可能会因为不兼容的更改而中断。随着事物的稳定,这将成为默认实现。

0.14.0 - 2018-01-12

  • 忽略关于断言格式更改的警告,因为现在没有这个风险。

0.13.0 - 2017-12-20

  • 现在托管验证器已关闭,默认使用LocalVerifier。

0.12.0 - 2017-05-29

  • 当使用LocalVerifier类时,添加对额外的“idpClaims”和“userClaims”的支持。

0.11.0 - 2016-05-11

  • 本地验证器将验证电子邮件地址是否格式良好,以避免将其传递给无法正确处理它们的代码,例如null字节。

0.10.0 - 2016-03-09

  • 当生成测试断言时,添加对“idpClaims”和“userClaims”的支持。这在使用此库与Firefox账户交互时很有帮助。

0.9.2 - 2014-04-13

  • 移除python3的元组参数解包。

  • 向错误对象添加“description”属性。

0.9.1 - 2012-11-26

  • 修复了回退加密例程中的数据解码错误。

0.9.0 - 2012-10-04

  • 支持Python 3。

0.8.0 - 2012-08-01

  • 修正了纯Python RSA实现。不幸的是,这需要在RSKey对象上执行小的向后不兼容的API更改(SIZE属性现在是DIGESTSIZE,它给出内部十六进制摘要字符串的字节数)

0.7.0 - 2012-07-26

  • 添加了JWT加密例程的纯Python实现,用于当M2Crypto不可用时使用。

  • 向键对象添加了“from_pem_data”和“to_pem_data”方法。目前这些方法仅在安装了M2Crypto时可用。

  • 添加了对授权委托的支持;感谢@kylef。

  • 使用https://verifier.login.persona.org/verify进行远程验证

0.6.2 - 2012-07-17

  • 将persona.org和相关网站添加到默认受信任的二级列表中。

0.6.1 - 2012-06-07

  • 暂时禁用证书链。此功能在野外没有任何服务器使用,并且其规范很快将发生变化。

0.6.0 - 2012-31-05

  • 移除使用自定义JWT解析器类的功能,它未使用并增加了不必要的复杂性。

  • 在通过CertificateManager获取证书时添加了跳过ssl验证的方法。

0.5.0 - 2012-04-18

  • 在检索证书时,使用requests而不是自定义代码来支持ssl检查。

  • 删除了secure_urlopen的补丁实用程序(我们现在使用requests)

  • 在处理RSA/DSA密钥时添加了更多详细的错误。

0.4.0 - 2012-03-13

  • 从PyVEP重命名为PyBrowserID,以符合Mozilla品牌。

  • 受众检查现在接受glob样式的模式以及固定的受众字符串。

  • 验证器对象现在接受受众模式列表作为其第一个参数。这是为了鼓励做正确的事情,而不是,例如,传递请求中的主机名。

  • 允许LocalVerifier使用自定义JWT解析器。

  • 已移除browserid.verify_[remote|local|dummy],因为它们只会造成混淆。您应该接受browserid.verify函数提供的默认值,或者使用完整的Verifier对象。

  • 将证书加载和缓存拆分为一个单独的类,在browserid.certificates:CertificatesManager中。

  • 为了支持browserid.tests.support中的函数,已移除DummyVerifier类。

项目详情


下载文件

下载您平台对应的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源代码发行版

PyBrowserID-0.14.0.tar.gz (36.6 kB 查看哈希值)

上传时间 源代码

构建发行版

PyBrowserID-0.14.0-py2-none-any.whl (49.8 kB 查看哈希值)

上传时间 Python 2

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面