跳转到主要内容

使用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 应用(包括建议的条形码扫描仪)。

从任何页面,点击菜单中的“启用两步验证”(位于“注销”旁边)链接。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/01_menu_enable.png

这将带您到一个显示条形码的页面。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/02_two_step_verification_setup.png

您需要使用安装在移动设备上的条形码扫描仪扫描页面上的条形码,该扫描仪将用于验证。

成功扫描条形码后,在“输入验证码以激活两步验证”字段中输入显示的令牌,并点击“验证”按钮。

成功确认后(您应该会看到一个消息说明),您的账户已启用两步验证。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/03_enable_two_step_verification_confirmation_message.png

情况 2:两步验证

前置条件:用户未登录且已启用两步验证。

当您登录 Plone 网站(仅使用用户名和密码)时,您会看到一个额外的屏幕,要求您提供由 Google Authenticator 生成的令牌。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/04_login_token_form.png

然后,打开您的移动设备上的 Google Authenticator 应用,将显示的令牌输入到“输入代码”字段中。

如果令牌有效,您将成功登录。

情况 3:丢失令牌

前置条件:用户未登录,已启用两步验证。

可能会有您丢失令牌的情况(无论是意外将其从应用中移除还是丢失了移动设备)。对于此类情况,您可以重置条形码。

使用用户名和密码登录 Plone 网站,以查看要求您提供由 Google Authenticator 生成的令牌的额外屏幕,并遵循“输入代码”字段的帮助文本中的链接。然后,您将进入可以请求重置条形码的页面。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/05_request_to_reset_bar_code.png

在“用户名”字段中输入您的用户名,点击“提交”按钮。重置条形码的链接将很快出现在您的邮箱中。点击重置条形码的链接后,将带您到一个页面,您可以在其中扫描条形码,就像设置两步验证时一样。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/06_reset_two_step_verification_bar_code.png

使用您的移动设备扫描条形码,并在“输入验证码以激活两步验证”字段中输入代码。

成功确认后(您应该会看到一个消息说明),您的条形码已重置。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/07_bar_code_reset_confirmation_message.png

情况 4:禁用两步验证

前置条件:用户已登录并已启用两步验证。

从任何页面,点击菜单中的“禁用两步验证”(位于“注销”旁边)链接。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/08_menu_disable.png

之后,您将收到一条消息。

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/08_disable_two_step_verification_confirmation_message.png

安装

Buildout

>>> [instance]
>>> eggs +=
>>>     collective.googleauthenticator
>>> zcml +=
>>>     collective.googleauthenticator

ZMI

ZMI -> portal_quickinstaller

选择“Google Authenticator Plone”并安装它。

ZMI -> acl_users

  1. 选择“google_auth(Google Authenticator 插件(collective.googleauthenticator))”。

  2. 确保“认证”中的“活动插件”部分按以下顺序包含以下插件(“google_auth”应作为第一个 - critical!)

    • google_auth

    • session

    • source_users

配置选项

应用控制面板可在 http://your-plone-site.com/@@google-authenticator-settings 访问

https://github.com/collective/collective.googleauthenticator/raw/master/docs/_static/09_control_panel.png

密钥

站点密钥 - 可以是任何字符串。将其视为一种密码。

全局启用

如果勾选,则全局强制为所有网站用户启用两步验证,他们不再有禁用它的选项;这也适用于所有新用户(仅注册的账户)。

白名单 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 (38.1 kB 查看哈希值)

上传时间

由以下支持