This page is a translated version of the page Extension:OATHAuth and the translation is 79% complete.
本页面的主题不是 Extension:OAuth.
此扩展随附于MediaWiki 1.31及更高版本。 因此您无需另外下载。 但是,您仍需遵循此页面提供的其他使用说明。
MediaWiki扩展手册
OATHAuth
发行状态: 稳定版
实现 用户权限 , 特殊页面 , 页面操作
描述 为登录提供双因素身份验证
作者 Ryan Lane
最新版本
持续更新
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki >= 1.43
数据库更改
oathauth_users
许可协议 GPL-2.0-or-later AND GPL-3.0-or-later
下載
  • $wgOATHAuthWindowRadius
  • $wgOATHRequiredForGroups
  • $wgOATHAuthAccountPrefix
  • $wgOATHExclusiveRights

  • oathauth-enable
  • oathauth-api-all
  • oathauth-disable-for-user
  • oathauth-view-log
  • oathauth-verify-user
季度下載量 74 (Ranked 70th)
正在使用的公开wiki数 1,459 (Ranked 205th)
前往translatewiki.net翻譯OATHAuth扩展
問題 开启的任务 · 报告错误

扩展OathAuth提供了双因素身份验证的支持。 默认情况下,这包括一个基于时间的一次性密码(TOTP)的实现,可讓用户通过手机或桌面应用程序生成双因素身份验证的代码。 大多数功能手机,智能手机和台式机都有客户端支持。

此扩展与OAuth无关,它是一個完全不同的协议。

用法

双因素身份验证上的帮助页面为终端用户提供了有关如何使用此扩展的信息。 然而,使用的特殊页面也将引导用户。

安裝

  警告: There is a bug with this extension where it does not update properly from the web (mw-config) updater and must instead use the update.php command line update script (phab:T371849)
  • 下载文件,并将解压后的OATHAuth文件夹移动到extensions/目录中。
    开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/OATHAuth
  • 只有從git安裝才运行Composer来安装PHP依赖,通过发行composer install --no-dev至扩展目录。 (参见工單T173141了解潜在问题。)
  • 将下列代码放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'OATHAuth' );
    
  • 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
  • 按需求配置。
  • 强烈建议在使用OATHAuth时设置缓存 。 如果使用OATHAuth,这不仅能提高性能,还能提高维基的安全性。 如果只运行一个应用程序或网络服务器并安装好了php-apcu,且未配置特定缓存,MediaWiki 很可能会退回到使用APCu。 如果您使用多个应用程序/网络服务器,建议设置对象缓存 缓存,供所有主机使用。 例子包括Memcached
  •   完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。

配置

参数

配置标志 默认值 描述
$wgOATHAuthWindowRadius 4 每个方向上应该有效的令牌窗口数。

这告诉OATH接受令牌的有效范围为((1 + 2 * $wgOATHAuthWindowRadius) * 30)秒。 此有效窗口范围以当前时间为中心。 此配置变量的目的是考虑用户时钟和服务器时钟之间的差异。 但是,建议尽可能降低它。

$wgOATHAuthDatabase false (已弃用) 数据库域。 仅用于多数据库环境。 After MediaWiki 1.42, you should use $wgVirtualDomainsMapping['virtual-oathauth'] instead of this option.
$wgOATHAuthSecret false 此Wiki的基本OATHAuth密钥,从中派生所有加密密钥。

如果为false,则使用$wgSecretKey的值。

$wgOATHAuthAccountPrefix false 用于OATHAuth用户帐户名称的前缀和用于该帐户的颁发者。

如果为false,则使用$wgSitename的值。

$wgOATHExclusiveRights [] Set of permissions that are revoked from users who did not login using two-factor authentication.
$wgOATHRequiredForGroups [] Sets a list of user groups that are required to have two-factor authentication enabled. Use 'user' if you want all logged-in users required to enable two-factor authentication.

OATHAuth also adds a key to the $wgRateLimits array to define rate limits for authentication attempts:

		'badoath' => [
			'&can-bypass' => false,
			'user' => [ 10, 60 ],
			'user-global' => [ 10, 60 ],
		]

Note that the user-global key is available only since 1.35. Earlier version have to rely on user and perhaps ip-all. See the documentation of $wgRateLimits for details.

用户权限

授予访问权限以启用OATHAuth

应该允许用户访问oathauth-enable用户权限,以便他们可以以Special:OATHAuth启用它(链接显示为Special:Preferences)。

$wgGroupPermissions['user']['oathauth-enable'] = true;

以上将授予所有注册用户启用OATHAuth的权限。

管理

重置用户令牌

在用户遺失了令牌生成器“和”恢复令牌這樣的事件中,双因素身份验证可通过运行disableOATHAuthForUser维护脚本而从用户身上移除:

MediaWiki版本:
1.40
$ ./maintenance/run OATHAuth:disableOATHAuthForUser <user>
MediaWiki版本:
1.39
$ php ./extensions/OATHAuth/maintenance/disableOATHAuthForUser.php <user>

Where ‎<user> is the name of the user to have 2FA disabled.

Shared database tables

Some Wikis may want to share the 2FA data amongst multiple Wikis.Shared database tables , the previous method for doing so is deprecated in MediaWiki 1.42 and later. For new wiki-farm installations where you want users to share their 2FA token amongst multiple wikis, please use $wgVirtualDomainsMapping and the extensions will automatically make its tables use the specified database name.

$wgVirtualDomainsMapping['virtual-oathauth'] = [ 'db' => 'sharedbname' ]

When using shared database tables, i.e., the same set of users for different wikis, add oathauth_devices and oathauth_types to $wgSharedTables.

$wgSharedTables[] = 'oathauth_devices';
$wgSharedTables[] = 'oathauth_types';


參見