Расширение:OATHAuth
Статус релиза: стабильно |
|
|---|---|
| Реализация | Права пользователя, Служебная страница, Действие страницы |
| Описание | Provides two-factor authentication for logging in |
| Автор(ы) | Ryan Lane |
| Последняя версия | Постоянные обновления |
| Политика совместимости | Снэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости. |
| Изменения в БД | Да |
| Таблицы | oathauth_types oathauth_devices oathauth_users |
| Лицензия | GPL-2.0-or-later AND GPL-3.0-or-later |
| Скачать | |
|
|
|
|
|
| Переведите расширение OATHAuth, если оно доступно на translatewiki.net | |
| Проблемы | Открытые задачи · Сообщить об ошибке |
The OATHAuth[1] extension provides two-factor authentication support. By default, this includes a time-based one-time password (TOTP) implementation that allows users to generate 2FA codes from their phone or desktop app. Клиент поддерживают большинство телефонов, смартфонов и настольных компьютеров.
Использование
The help page on Two-factor authentication provides information for end users on how to use this extension. However, the special page will also guide users.
Установка
- Скачайте и распакуйте файл(ы) в папку с названием
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' );
- Выполните скрипт обновления, который автоматически создаст необходимые таблицы, используемые расширением.
- Configure as required.
- It is strongly recommended to setup caching when using OATHAuth. This will improve performance, but also the security of your wiki if you're using OATHAuth. If you are only running one application/web server and have php-apcu installed, and no specific cache configured, MediaWiki will likely fallback to using APCu. If you are using multiple application/web server it is advised to set up local cluster caching that all hosts can use. Examples include Memcached.
Готово – Перейдите на страницу Special:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.
Настройка
Параметры
| Configuration Flag | Значение по умолчанию | Описание |
|---|---|---|
$wgOATHAuthWindowRadius
|
4
|
The number of token windows in each direction that should be valid.
This tells OATH to accept tokens for a range of effectively |
$wgOATHAuthDatabase
|
false
|
(устарело) The database domain. Only used in a multi-database environment. After MediaWiki 1.42, you should use $wgVirtualDomainsMapping['virtual-oathauth'] instead of this option. |
$wgOATHAuthAccountPrefix
|
false
|
The prefix used for the OATHAuth user account name and the issuer used for the account.
If |
$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. |
$wgOATHRolloutPercent
|
0
|
Percentage of users to add to two-factor authentication rollout. |
$wgOATHAllowMultipleModules
|
false
|
(устарело) Temporary (in the MW 1.45 development cycle) feature flag to allow users to have multiple two-factor authentication modules active at the same time. |
$wgOATHAuthNewUI
|
false
|
(устарело) Temporary (in the MW 1.45 development cycle) feature flag for the redesigned UI. (T401774) |
$wgOATHSecretKey
|
false
|
(введено в 1.45) Update to 1.45 (or later) and run the update script before enabling this feature and running its own maintenance script! A secret key value for encrypting OATH-related data which should be SODIUM_CRYPTO_SECRETBOX_KEYBYTES hexadecimal bytes (64 chars) in length. This variable is currently considered immutable. Do not publicly set this value. There are a few ways to create a cryptographically-secure, random key value, such as the unix command: $ hexdump -vn32 -e'8/8 "%08X" "\n"' /dev/urandom.
Run Note that it is not currently possible to change this value once it is set, and be able to update existing encrypted codes. See T403180 for more information. |
OATHAuth также добавляет ключ в массив $wgRateLimits для определения ограничений скорости для попыток аутентификации:
'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.
User permission
- Granting access to enable OATHAuth
Users should be given access to the oathauth-enable user right so that they can enable it at Special:OATHAuth (a link to which appears at Special:Preferences).
$wgGroupPermissions['user']['oathauth-enable'] = true;
The above will grant all registered users access to enable OATHAuth.
Administration
Сброс пользовательского токена
If a user loses both their token generator and the recovery tokens, two-factor authentication may be removed from the user by running the disableOATHAuthForUser maintenance script:
| Версия 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';
См. также
- Product_Safety_and_Integrity/Account_Security
- Two-factor authentication (TFA)
- Extension:WebAuthn - module for the OATHAuth extension that provides support for U2F devices (such as YubiKey) and password managers.
- Initiative for Open Authentication (OATH)
References
- ↑ OATH is an acronym for open authentication.
| Это расширение используется в одном или нескольких проектах Викимедиа. Вероятно, это означает, что расширение стабильно и работает достаточно хорошо, чтобы использоваться такими сайтами с высоким трафиком. Найдите название этого расширения в файлах конфигурации Викимедиа CommonSettings.php и InitialiseSettings.php, чтобы узнать, где оно установлено. Полный список расширений, установленных на конкретной вики, можно увидеть на странице Special:Version wiki. |
| Это расширение включено в следующие вики-фермы/хостинги и/или пакеты: Это не исчерпывающий список. Некоторые вики-фермы/хостинги и/или пакеты могут содержать это расширение, даже если они не перечислены здесь. Всегда сверяйтесь со своими вики-фермами/хостингами или комплектами/бандлами для подтверждения. |
- Stable extensions/ru
- User rights extensions/ru
- Special page extensions/ru
- Page action extensions/ru
- Extensions with unknown license/ru
- Extensions in Wikimedia version control/ru
- Extensions which add rights/ru
- AuthChangeFormFields extensions/ru
- GetPreferences extensions/ru
- LoadExtensionSchemaUpdates extensions/ru
- UnitTestsAfterDatabaseSetup extensions/ru
- UnitTestsBeforeDatabaseTeardown extensions/ru
- UserEffectiveGroups extensions/ru
- UserGetRights extensions/ru
- GetUserPermissionsErrors extensions/ru
- All extensions/ru
- Extensions bundled with MediaWiki 1.31/ru
- Extensions requiring Composer with git/ru
- Extensions used on Wikimedia/ru
- Extensions included in BlueSpice/ru
- Extensions included in Canasta/ru
- Extensions available as Debian packages/ru
- Extensions included in Miraheze/ru
- Extensions included in MyWikis/ru
- Extensions included in ProWiki/ru
- Extensions included in semantic::core/ru
- Extensions included in wiki.gg/ru
- Extensions included in WikiForge/ru
- Login extensions/ru
