使用Google Authenticator应用程序为Plone 4提供双步验证。
项目描述
双步验证 使用 Google Authenticator 应用程序为Plone 4。此应用程序允许用户为其Plone账户启用双步验证。需要安装Google Authenticator应用程序的移动设备。除非站点管理员强制执行(可在应用程序控制面板中进行配置),否则双步验证的使用是可选的。管理员可以为跳过双步验证的IP地址创建白名单。
先决条件
移动设备上安装了Google Authenticator应用程序(Android、iPhone和Blackberry都有官方应用程序;Windows Phone有第三方应用程序)。
Plone 4(已与Plone >= 4.2.6测试)
使用方法
情况 1:启用两步验证
前置条件:用户未登录 Plone 网站,尚未启用两步验证,并在其移动设备上安装了 Google Authenticator 应用(包括建议的条形码扫描仪)。
从任何页面,点击菜单中的“启用两步验证”(位于“注销”旁边)链接。
这将带您到一个显示条形码的页面。
您需要使用安装在移动设备上的条形码扫描仪扫描页面上的条形码,该扫描仪将用于验证。
成功扫描条形码后,在“输入验证码以激活两步验证”字段中输入显示的令牌,并点击“验证”按钮。
成功确认后(您应该会看到一个消息说明),您的账户已启用两步验证。
情况 2:两步验证
前置条件:用户未登录且已启用两步验证。
当您登录 Plone 网站(仅使用用户名和密码)时,您会看到一个额外的屏幕,要求您提供由 Google Authenticator 生成的令牌。
然后,打开您的移动设备上的 Google Authenticator 应用,将显示的令牌输入到“输入代码”字段中。
如果令牌有效,您将成功登录。
情况 3:丢失令牌
前置条件:用户未登录,已启用两步验证。
可能会有您丢失令牌的情况(无论是意外将其从应用中移除还是丢失了移动设备)。对于此类情况,您可以重置条形码。
使用用户名和密码登录 Plone 网站,以查看要求您提供由 Google Authenticator 生成的令牌的额外屏幕,并遵循“输入代码”字段的帮助文本中的链接。然后,您将进入可以请求重置条形码的页面。
在“用户名”字段中输入您的用户名,点击“提交”按钮。重置条形码的链接将很快出现在您的邮箱中。点击重置条形码的链接后,将带您到一个页面,您可以在其中扫描条形码,就像设置两步验证时一样。
使用您的移动设备扫描条形码,并在“输入验证码以激活两步验证”字段中输入代码。
成功确认后(您应该会看到一个消息说明),您的条形码已重置。
情况 4:禁用两步验证
前置条件:用户已登录并已启用两步验证。
从任何页面,点击菜单中的“禁用两步验证”(位于“注销”旁边)链接。
之后,您将收到一条消息。
安装
Buildout
>>> [instance] >>> eggs += >>> collective.googleauthenticator
>>> zcml += >>> collective.googleauthenticator
ZMI
ZMI -> portal_quickinstaller
选择“Google Authenticator Plone”并安装它。
ZMI -> acl_users
选择“google_auth(Google Authenticator 插件(collective.googleauthenticator))”。
确保“认证”中的“活动插件”部分按以下顺序包含以下插件(“google_auth”应作为第一个 - critical!)
google_auth
session
source_users
配置选项
应用控制面板可在 http://your-plone-site.com/@@google-authenticator-settings 访问
密钥
站点密钥 - 可以是任何字符串。将其视为一种密码。
全局启用
如果勾选,则全局强制为所有网站用户启用两步验证,他们不再有禁用它的选项;这也适用于所有新用户(仅注册的账户)。
白名单 IP 地址
白名单IP地址列表 - 每行一个。如果用户来自这些地址之一,即使用户已启用两步验证或全局启用两步验证,也会跳过两步验证。
附加
控制面板的其他选项包括
为所有用户启用两步验证。
为所有用户禁用两步验证。
备注
在ZMI -> acl_users -> 认证中,Google Authenticator必须排在第一位。
与以下产品配合测试
Products.LoginLockout. GoogleAuthenticator 排在第一位,LoginLockout 排在第二位。一切正常。
实现细节
此软件包处于测试阶段。欢迎提出意见和建议。
Plone PAS插件,该插件检查尝试登录的用户是否启用了两步验证。如果是,则将用户重定向到另一个页面(视图),在该页面要求提供额外的凭证(Google Authenticator令牌)。
Google Authenticator令牌验证表单视图。如果令牌有效,则肯定验证了用户。
Google Authenticator设置表单视图,其中显示每个用户扫描的条形码图像,并填写由Google Authenticator应用程序生成的令牌。在成功验证令牌后,为用户启用两步验证。
- 用户记录扩展了两个字段
enable_two_factor_authentication(布尔值):指示用户是否为其个人资料启用了两步验证。
two_factor_authentication_secret(字符串):用户用于生成条形码图像的密钥。用户启用两步验证时自动填写。
Google Authenticator禁用视图,用户可以在其中禁用其账户的两步验证。
已覆盖Plone标准登录表单(skins/login_form.cpt)(已移除 came_from 表单字段)。尽管如此,“来自”功能仍然以完全相同的方式工作,只是略有不同——以这种方式它与Google Authenticator配合得很好。
已覆盖Plone标准的“popupforms.js”。由于Google Authenticator与覆盖层配合时存在问题,因此已移除显示在覆盖层中的登录表单部分。这个问题可能在应用程序的未来版本中得到解决。
文档
请参阅以下文档
故障排除
如果您足够快地输入由Google Authenticator应用程序生成的令牌(在Google Authenticator应用程序中明确指示剩余时间),但仍然收到“无效令牌或令牌已过期”的消息,请确保服务器上的时区设置准确。
支持
对于功能请求或错误,请打开一个问题。对于问题,请发送电子邮件至 info@gw20e.com。
许可证
GPL 2.0
TODOs和路线图
请参阅TODOS.rst文件以获取TODO列表。
变更日志
0.2.5
20-06-2014
改进PAS插件。
0.2.4
30-01-2014
小修。
0.2.3
29-01-2014
确保模板中重置条形码的URL未转义。
0.2.2
29-01-2014
使用“text/html”格式发送请求重置条形码模板的电子邮件。
0.2.1
29-01-2014
修复helpers.extract_ip_address_from_request中的拼写错误(与代理相关)。
0.2
23-01-2014
现在管理员可以强制所有用户进行两步验证(应用程序控制面板)。
对于白名单IP地址,省略两步验证(应用程序控制面板)。
启用/禁用两步验证的链接已从“个人设置”页面移动到Plone菜单(位于“注销”旁边)。
0.1.1
15-01-2014
对清单文件进行了修复。
0.1
13-01-2014
初始发布版(不再可在PyPI上获取),包含两步验证、条形码/令牌恢复、基本应用程序控制面板。
项目详情
collective.googleauthenticator-0.2.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 087dfbf88f7978c6b7645fe56b7413a8b6e3237f22fa3fff8d4819feda467fc4 |
|
MD5 | 6e3563f7cfab0bb8eeb6a173758016ae |
|
BLAKE2b-256 | e1a958ab1804390efc53a44caf701321c54a46ae6910e9cb30947c1f31178267 |