lmr / duo_auth
Duo Security 为 Roundcube 提供的双因素认证。用户有多种认证方式,包括:1. 使用 Duo 移动应用的一键认证;2. 由 Duo 移动应用生成的一次性密码(即使没有手机信号也能使用);3. 任何支持短信的手机都能接收的一次性密码。
Requires
- php: >=7.4
- duosecurity/duo_universal_php: ^1.0.2
- roundcube/plugin-installer: ~0.3.1
README
这是一个 Roundcube 网络邮件插件,它使能了 Duo Security 的双因素认证。
在成功进行用户名/密码认证后,它会跳转到额外的页面,该页面需要使用 Duo Security 的第二因素进行认证(推送、短信、电话、硬件令牌代码)。
安装
使用 Composer (https://getcomposer.org.cn) 从 Roundcube 安装根目录安装
运行 $ composer update
运行 $ composer dumpautoload
运行 $ composer require "lmr/duo_auth:^1.0.9"
配置
-
进入 plugins/duo_auth/ 目录,并根据需要修改 duo_auth.conf。在 duo_auth.conf 文件中输入所有与 Duo 集成所需的关键信息。假设已经在 Duo 的管理面板中创建了一个 Duo 集成,你可以找到所有请求的信息。指定重定向 URI 的位置。在运行上述安装脚本后,
your_page_name_redirect.php
文件应该位于根 Roundcube 目录中。修改 duo.conf 文件中的 "rc_path" 键以符合您的特定需求。如果您有一个子目录,您可以通过该子目录访问您的 WebMail 应用程序,相应地调整,例如:rc_path = "/WebMail/" 或 rc_path = "/rc/"。如果您在您的 Web 服务器上安装了根目录,则不需要在 duo.conf 文件中进行任何更改,默认值("/")
已指定。 -
将以下行添加到您的 Roundcube 配置文件 - 位于 config/config.inc.php 的 config.inc.php
$config['session_storage'] = 'php';
- 修改您的 PHP 配置文件 (php.ini) 如下
session.save_handler = files
session.save_path = "/var/lib/php/sessions"
致谢
作者:Alexios Polychronopoulos - 为 Roundcube 编写了 duo_auth。
作者:Leonardo Mariño-Ramírez - 更新了插件以兼容 Roundcube 1.3.0。
作者:Johnson Chow - 添加了对 IPv4 CIDR 匹配和特定用户的 2FA 覆盖的支持。
作者:Pavlo Lyha - 重写了插件以兼容 Duo Web v4 SDK。