modBasicAuth

Базовая аутентификация для админки сайта
Автор дополнения
Prihod
Пакетов
35
Закачек
11 359
Обычно отвечает в течение суток
Автор дополнения
Пакетов
35
Закачек
11 359
Обычно отвечает в течение суток
Версия 1.0.1-beta
Дата выпуска 02.09.2018
Загрузки 8
Просмотры 4 893
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.4 !

Дополнение позволяет дополнительно к основной аутентификации для админки сайта подключить еще базовую авторизацию и легко администрировать ее пользователей.


За работу механизма так называемой базовой авторизации на стороне сервера отвечает не какое-то специфическое ПО, а сам сервер Apache или Nginx*


Базовой авторизации позволяет выявить попытки подбора пароля (в логе сервера будет соответствующая информация ) и автоматически** блокировать IP злоумышленника.


Для базовой аутентификации самым главным недостатком является передача пароля в открытом виде, данный недостаток можно решить применив протокол SSL.


Настройка и администрирование пользователей


После того как вы установили дополнение на странице редактирования информации конкретного пользователя появиться дополнительный раздел “BasicAuth пароль” где можно выбрать способ создания пароля, а также метод его получения.



ВАЖНО! После того как вы первый раз создадите пароль для какого либо пользователя на сервере будет непосредственно активирована “Базовая аутентификация”, а это значит что все пользователи которые сейчас авторизированы в админке или будут пытаться это сделать буду получать запрос на введения логина и пароль для базовой аутентификации, поэтому прежде всего вы должны создать пароль для своей учетной записи чтобы иметь возможность продолжить создать пароли для всех тех пользователей которые должны иметь доступ в админку сайта.


Сбросить активацию базовой аутентификации можно просто удалив файл

/manager/.htaccess
Файл с пароля .htpasswd для базовой аутентификации по умолчанию храниться в /manager изменить это можно в настройках модуля на стр. /manager/?a=system/settings, а также указать новый путь к файлу в /manager/.htaccess если это было сделано после активации базовой аутентификации


* Nginx должен иметь модуль ngx_http_auth_basic_module, а так же в конфик Nginx нужно добавить

location /manager/ {
        auth_basic "Private zone. Only for administrator!";
        auth_basic_user_file /полный путь к файлу/manager/.htpasswd;
        }

Если необходимо, чтобы файл с паролями находился в каталоге, доступном посетителям, скрыть его от всех можно следующим кодом:

server {
        listen 80;
        server_name example.com;
        location / {
        ...
        }
        location ~ /\.ht {
        deny all;
        }
        }

Этот код скроет от посетителя все файлы, начинающиеся с ".ht", так же, как в конфигурации Apache по умолчанию.


** На сервере должны быть настроены соответствующие скрипты или утилиты например Fail2ban


Консольное создание/обновление паролей


Для массового создание/обновление паролей можно использовать функцию setPasswords

/**
    * @param string $groups    Название групп через запятую. По умолчанию: Administrator
    * @param string $userIds   Id юзеров через запятую которые в зависимости от значения $exclude будут добавлены или удалены из тех юзеров группю. По умолчанию: пусто
    * @param bool $exclude     Добавлять или исключать из юзеров групп юзеров из $userIds. По умолчанию: false
    * @param bool $notify     Отправить данные о пароле на емайл юзера.  По умолчанию: false
    * @return array           Логин и пароль юзеров
    */
    setPasswords($groups = 'Administrator', $userIds = '', $exclude = false, $notify = false)

Вызов из консоли:

<?php
        $mba = $modx->getService('modbasicauth', 'Mba');
        $passwords = $mba->setPasswords('Administrator,manager');
        print_r($passwords);

modBasicAuth 1.0.1

  • Исправлено: Создать нового пользователя

Последние обсуждения в сообществе MODX.pro