modBasicAuth

Базовая аутентификация для админки сайта
Автор дополнения
Prihod
Пакетов
38
Закачек
13 369
Обычно отвечает в течение суток
Автор дополнения
Пакетов
38
Закачек
13 369
Обычно отвечает в течение суток
Версия 1.0.1-beta
Дата выпуска 02.09.2018
Загрузки 8
Просмотры 5 809

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


За работу механизма так называемой базовой авторизации на стороне сервера отвечает не какое-то специфическое ПО, а сам сервер 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