Kinto中的Firefox账户支持
项目描述
Kinto中的Firefox账户支持
Kinto-fxa 允许使用 Firefox Accounts OAuth2 携带令牌在 Kinto 应用程序中进行身份验证。
- 注意。该项目曾被称为 cliquet-fxa,但随 cliquet 项目更名为 kinto 而更名为
kinto-fxa。
它提供
安装
如官方文档中所述 指出,Firefox Accounts OAuth 集成目前仅限于 Mozilla 依赖的服务。
安装 Python 包
pip install kinto-fxa
在项目配置中包含该包
kinto.includes = kinto_fxa
并使用 pyramid_multiauth 语法配置身份验证策略
multiauth.policies = fxa multiauth.policy.fxa.use = kinto_fxa.authentication.FxAOAuthAuthenticationPolicy
默认情况下,它将依赖于 Kinto 中配置的缓存。
配置
使用在应用程序注册期间获得的值填写这些设置
fxa-oauth.client_id = 89513028159972bc fxa-oauth.client_secret = 9aced230585cc0aaea0a3467dd800 fxa-oauth.oauth_uri = https://oauth-stable.dev.lcip.org/v1 fxa-oauth.requested_scope = profile kinto fxa-oauth.required_scope = kinto fxa-oauth.webapp.authorized_domains = * # fxa-oauth.cache_ttl_seconds = 300 # fxa-oauth.state.ttl_seconds = 3600
如果应用程序不应作为重传者(即禁用 OAuth 舞蹈端点)的行为
fxa-oauth.relier.enabled = false
如有必要,覆盖身份验证策略的默认值
# multiauth.policy.fxa.realm = Realm
处理多个 FxA 客户端
如果您想使用相同的 Kinto 服务隔离两个 FxA 应用程序之间的数据以同步它们,可以定义客户端特定配置
fxa-oauth.clients.notes.client_id = 89513028159972bc fxa-oauth.clients.notes.required_scope = profile app-notes fxa-oauth.clients.todo.client_id = 1805184631529d5a fxa-oauth.clients.todo.required_scope = profile app-todo
根据请求的作用域,Kinto Fxa 将分配一个用户 ID 或另一个(使用后缀)
fxa:{user_id}-notes 用于前者
fxa:{user_id}-todo 用于后者
注意,您仍然可以使用 fxa:{user_id} 来显式地在给定的 FxA 用户之间共享数据。
如果您不提供任何特定权限,则登录带有 app-notes 范围的 Bearer 令牌的用户将无法访问待办事项应用程序数据。
默认存储桶也将被隔离,一个用于 notes,一个用于 todo。
登录流程
OAuth 携带令牌
使用此标题使用 OAuth 令牌
Authorization: Bearer <oauth_token>
- notes:
如果令牌无效,这将导致返回 401 错误响应。
使用 Web UI 获取令牌
将客户端导航到 GET /fxa-oauth/login?redirect=http://app-endpoint/#。在那里,将设置会话 cookie,并将客户端重定向到 FxA 内容服务器上的登录表单;
在登录页面上提交凭据后,客户端将被重定向到 http://app-endpoint/#{token}(Web 应用程序)。
自定义获取令牌流程
可以使用 GET /v1/fxa-oauth/params 端点获取配置,以便用 Firefox Accounts BrowserID 与 Bearer Token 交换。 有关此行为的 Firefox Account 文档
$ http GET http://localhost:8000/v0/fxa-oauth/params -v
GET /v0/fxa-oauth/params HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Host: localhost:8000
User-Agent: HTTPie/0.8.0
HTTP/1.1 200 OK
Content-Length: 103
Content-Type: application/json; charset=UTF-8
Date: Thu, 19 Feb 2015 09:28:37 GMT
Server: waitress
{
"client_id": "89513028159972bc",
"oauth_uri": "https://oauth-stable.dev.lcip.org",
"scope": "profile"
}
脚本
《kinto-fxa》库安装了一个《kinto-fxa》命令,用于运行《kinto-fxa》插件附带的工具脚本。目前只有一个是《process-account-events》,它监听亚马逊SQS队列中的账户删除事件,并尝试删除用户数据以符合GDPR规定。
这些脚本有一些额外的依赖项;您可能需要使用 pip install kinto-fxa[scripts] 来安装它们。
要使用它们,请运行 kinto-fxa [脚本名称] [参数]。
变更日志
本文档描述了每个过去版本之间的变化。
2.5.3 (2019-07-02)
优化
尽可能延长 OAuthClient 的使用时间,以利用HTTP保持活动状态 (#133)。
2.5.2 (2018-07-05)
错误修复
修复 process-account-events 脚本,以考虑客户端用户ID后缀(修复 #61)
2.5.1 (2018-06-28)
在 process-account-events 脚本上设置指标 (#57)。
在 kinto_fxa.scripts 程序上设置日志 (#58)。
2.5.0 (2018-05-17)
引入新的 kinto_fxa.scripts。目前可用的唯一脚本为《process-account-events》,它监听SQS队列中的用户删除事件,并从该用户默认存储桶中删除数据,以符合GDPR。
2.4.1 (2018-03-15)
将 kinto-fxa 移动到 Kinto github org. (#54)
2.4.0 (2017-11-27)
添加对多个 FxA 客户端的支持 (#52)
2.3.1 (2017-01-30)
错误修复
确保令牌验证的缓存永远不会阻止验证请求(见 Mozilla/PyFxA#48)
2.3.0 (2016-12-22)
内部更改
将模式迁移到 Cornice 2 #38
2.2.0 (2016-10-27)
新功能
改进 FxA 错误消息(修复 #1)
错误修复
优化认证策略,以避免在每个请求中多次验证令牌(修复 #33)
内部更改
使用 kinto.core 中的 Service(修复 #28)
确保它不会捕获 Cornice 2 依赖项(修复 #36)
2.1.0 (2016-09-08)
在功能中添加插件版本。
2.0.0 (2016-05-19)
破坏性更改
项目重命名为 Kinto-fxa 以匹配《cliquet》到《kinto.core》的重命名。
更新到《kinto.core》以与 Kinto 3.0 兼容。此版本不再与 Kinto < 3.0 兼容,请升级!
在 Kinto > 2.12* 时,必须将设置 multiauth.policy.fxa.use 明确设置为 kinto_fxa.authentication.FxAOAuthAuthenticationPolicy
错误修复
修复当 python 以 -O 运行时检查 Authorization 标头的错误(ref mozilla-services/cliquet#592)
1.4.0 (2015-10-28)
更新到 Cliquet 2.9.0
破坏性更改
无法使用 pyramid.includes 设置包含 cliquet-fxa。请改用 cliquet.includes。
1.3.2 (2015-10-22)
错误修复
如果 OAuth 舞蹈中断,则返回 408 Request Timeout 错误而不是 401 Unauthenticated 错误。(#11)
不要从 cliquet-fxa 中调用 cliquet.load_default_settings。(#12)
1.3.1 (2015-09-29)
在登录 URL 中用 + 分隔多个作用域。
1.3.0 (2015-09-29)
错误修复
可以在登录流程中请求多个作用域。
应用可能需要多个作用域。
配置更改
fxa-oauth.scope 现已弃用。应使用 fxa-oauth.requested_scope 和 fxa-oauth.required_scope。
1.2.0 (2015-06-24)
添加默认设置以定义策略“fxa”。现在只需包含 cliquet_fxa 并将 fxa 添加到 multiauth.policies 设置列表即可。
初始化阶段不要检查cliquet缓存的存在。
不要使用Cliquet日志记录器以防止初始化错误。
1.1.0 (2015-06-18)
不要再以fxa_前缀标记已认证用户(#5)
1.0.0 (2015-06-09)
从Cliquet导入代码
贡献者
Alexis Metaireau <alexis@mozilla.com>
Mathieu Leplatre <mathieu@mozilla.com>
Nicolas Perriault <nperriault@mozilla.com>
Rémy Hubscher <rhubscher@mozilla.com>
Tarek Ziade <tarek@mozilla.com>
Lavish Aggarwal <lucky.lavish@gmail.com>
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
kinto-fxa-2.5.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 927b8bf6365a8f5d898e46428a2888d4007641b7e8de59aa37488cfebf22b3a8 |
|
MD5 | 62b80285acc1222053dda39783cd64b2 |
|
BLAKE2b-256 | 5cfcda80773fd4153f1c13b35c40166d3232c0121c0ab5ce4b7e0821c48f54c5 |
kinto_fxa-2.5.3-py2-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 86878cc3c3e93dfabd3298e3a7e557aa15bd92328902d8197b57bf6c9eda0c52 |
|
MD5 | 9e1b95e5b26e541bf2b02204c8df8b03 |
|
BLAKE2b-256 | 760dcf3c999dc16f0cacfb1cf48fdfa4ca0b6efb12b455fe267b12f4d9ca5f02 |