Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] Двухфакторная авторизация при входе в админку (E-mail, Telegram, Viber) — Admin Security: Two-Factor-Authentication


Gixoc

Recommended Posts

Двухфакторная авторизация при входе в админку (E-mail, Telegram, Viber) — Admin Security: Two-Factor-Authentication


Двухфакторная авторизация при входе в админку (E-mail, Telegram, Viber) — Admin Security: Two-Factor-Authentication


Замечание от 07.05.2020 - в связи с найденными ошибками версия модуля (1.2.1 - уведомления для всех администраторов) была удалена, вместо нее восстановлена стабильная версия 1.1.10.

 

 

 

Генерирует случайный одноразовый пароль для входа в админку интернет-магазина на Opencart’e 

и направляет его по E-mail, Telegram или Viber.

 

 

Распространяется «как есть» (as is).

Версия Opencart 2.1, 2.2, 2.3, 3.0.

Техподдержка в свободное время

Установка через встроенный Ocmod

 

Обновление от 22.11.18

1. В связи с недоступностью сервиса http://ipgeobase.ru:7020/geo по определению адреса по ip, подключил сервис http://www.geoplugin.net/json.gp

 

Установка и настройка

Спойлер

 

а. Переходим в «Дополнения -> Дополнения -> Модули» (может называться по другому — все зависит от перевода), находим модуль «GixOC.ru — Admin Security: Two-Factor-Authentication» и нажимаем «Установить»
n6.png

б. После нажимаем на «Редактировать»
n7.png

в. Страница настроек:

      • Статус — «выключатель» для всего модуля
  • E-mail:
    • Направлять пароль по E-mail — включает/выключает отправку пароля по электронной почте.
    • Ваш E-mail — Ваш e-mail для получения пароля

Внимание!
а) Нет проверки на корректность и существование e-mail, т.е. если Вы ввели не правильный или несуществующий или вообще случайный комбинацию, модуль будет пытаться отправить письмо!
б) Есть проверка только на «существование», т.е. если ничего не введено, то даже при включенном Уведомлять по E-mail модуль не будет пытаться отправить сообщение.
в) Оправляются письма от e-mail, который прописан в настройках магазина.
г) Возможно попадание писем от модуля в Спам.
д) письмо отправляется функцией mail(), обязательно уточните у техподдержки вашего хостинга возможность ее применения.

  • Telegram:
    • Направлять пароль по Telegram — включает/выключает отправку пароля по Telegram

Информация для жителей Российской Федерации (и не только): если ваш сайт расположен на серверах на территории РФ — в связи с работой Роскомнадзора скорее всего не будет работать отправка через Telegram. Для избежания проблем, добавили проверку доступности серверов Telegram — как при отправке уведомления, так и в настройках модуля:
tel.png

  • Telegram Bot Ключ (токен) — ключ для отправки сообщений от бота Telegram. Как его создать можно прочитать под спойлером ниже
  • Ваш Telegram ID — это поле можно заполнить двумя способами:
    а) вручную, введя туда ваш id, который можно получить, отправив любое сообщение боту @userinfobot в Telegram
    б) автоматически — для этого нужно отправить любое сообщение вашему боту и нажать кнопку «Получить автоматически»
    telegram1.png

Viber:

  • Направлять пароль по Viber — включает/выключает отправку пароля по Viber.

Внимание!
Viber требует наличия у сайта защищенного соединения. Для избежания проблем, добавили проверку наличия защищенного соединения у сайта в настройках модуля:
viber12.png

  • Viber Ключ (токен) — ключ для отправки сообщений от бота Viber. Как его создать можно прочитать прочитать под спойлером ниже.
  • Зарегистрировать Webhook — для отправки сообщений от бота Viber необходимо сначала зарегистрировать Webhook. Для него и требуется защищенное соединение. Выполнить это необходимо один раз, но действие обязательное. Если у Вас на сайте уже есть защищенное соединение, то просто введите токен от бота, если же нет — то Вы можете воспользоваться скриптом на нашем сайте. Для этого после вывода ошибке о незащищенном соединении, нажмите кнопку «Решение от автора модуля»
    viber14.pngи после этого у вас появятся поля для ввода токена и кнопка «Зарегистрировать Webhook»
  • Ваш Viber ID — это поле можно заполнить только автоматически, т.к. Viber ID (в отличие Telegram ID) — уникальный для каждого бота. Для получения Viber ID, отправьте любое сообщение вашему боту после регистрации Webhook и нажмите кнопку «Получить автоматически»

viber15.png

 

 

 

ВНИМАНИЕ! 

Для отправки сообщения по Telegram и Viber необходимо создать бота. 

Как создать бота Telegram

Спойлер

 

Здесь мы расскажем, как создать бота в Telegram для модуля. Для этого нужен.. бот. Называется он @BotFather. Этот бот поможет вам создать новые боты и изменить настройки для существующих. (подробнее можно прочитать на официальном сайте).
botfarther-300x300.png

1. Зайдите в программу Telegram на вашем устройстве. В поиске введите @BotFather.
1-209x300.jpg

2. Нажмите «Начать».
2-208x300.jpg

3. Выведется весь список команд по управлению ботами. Нас интересует только команда «/newbot». Нажимите на её (ну или введите вручную на клавиатуре).
3-207x300.jpg

4. Вам предложат ввести название вашего бота. Оно будет отображается в контактной информации. Например — GixOC Bot
4-209x300.jpg

5. Далее попросят ввести короткое имя, которое будет использоваться ссылке. Оно имеет длину 5-32 символа и не чувствительно к регистру, но может содержать только латинские символы, цифры и символ подчеркивания. Оно должно заканчиваться на «Bot», например «GixOC_Bot» или «GixOCBot».
5-208x300.jpg

6. В появившемся сообщении после «Use this token to access the HTTP API:» Вы увидите ключ вида 111111111:ABCDEFGz53dghKds6eBp
6-209x300.jpg

7. Его введите в модуль 
7.png

8. Для того, что бы автоматически заполнилось поле «Ваш Telegram ID» в модуле после нажатия кнопки «Получить автоматически«,
telegram1.png
отправьте любое сообщение вашему боту

 

 Для этого перейдите по ссылке в сообщении с ключом от бота
9-209x300.jpg

И нажмите «Начать»
10-208x300.jpg

 Сообщение отправится боту, а при вводе ключа в модуль после нажатия «Получить автоматически«, поле «Ваш Telegram ID» заполнится самостоятельно.
telegram2.png

 

 

 

 

Как создать бота Viber

Спойлер

 

Сегодня мы расскажем, как создать бота в Viber для модуля.
1. С начала авторизуйтесь по следующей ссылке — https://partners.viber.com/
а. В открывшейся форме введите номер вашего телефона и нажмите кнопку «Login»

viber1.png

б. Далее вам в Viber придет одноразовый пароль, введите введите его в следующей форме и нажмите кнопку «Next». Попадёте в личный кабинет.

viber2.png

2. В левом меню нажмите кнопку «Create Bot Account»

viber3.png

3. Заполните открывшуюся форму
Account Image — выберете картинку бота (можно, к примеру, логотип)
В поле Account Name введите название бота
В поле Uri — короткое имя, которое будет использоваться ссылке
Выберете Category (категорию), Subcategory (подкатегорию), Language (язык).
В поле Account Description введите описание
В поле Website Address — адрес сайта (не обязательно)
Email Address — ваш e-mail
Location — местоположение
Country — страну (не обязательно)

viber4.png

4. Поставьте 2 «галочки» согласия с условиями и нажмите «Create»

viber5.png

5. Появится форма с необходимым токеном.

viber6.png

6. Скопируйте его и введите в модуль

viber7.png

 

 

 

Если вдруг что пошло не так (как удалить):

Спойлер

1) Заходим по FTP в корень нашего сайта и удаляем содержимое папки /system/storage/modification/admin
2) Заходим в админку и в Дополнениях (Модификаторах) удаляем модификатор, обновляем кэш.

 


  • Автор
  • долучення
    14.05.18
  • Категорія
  • Системные требования
  • Метод активации
    Без активации
  • Ioncube Loader
    Нет
  • ocStore
    3.0
    2.3
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
  • Звернення до сервера розробника
    Нет

 

Надіслати
Поділитися на інших сайтах

  • 5 months later...
В 20.02.2019 в 22:55, Tobolskiy сказал:

кто то уже пробовал? есть смысл ставить?

ну он бесплатный, не закодирован, установите, не понравится - всегда можете удалить

Надіслати
Поділитися на інших сайтах

  • 1 month later...

если сайт geoip лежит то немогу в админку зайти

Warning: file_get_contents(http://ipgeobase.ru:7020/geo?ip=78.102): failed to open stream: HTTP request failed! HTTP/1.1 502 Bad Gateway in /home/admin/controller/common/two_fa.php on line 87

 

The page you are looking for is temporarily unavailable.
Please try again later.
Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 2 months later...
В 12.07.2019 в 12:32, AlektroNik сказал:

День добрый.

Указывается конкретный единственный email, на который будет приходить пароль. Так?

А если админов несколько и у каждого свой email?

Поддерживаю

Надіслати
Поділитися на інших сайтах


  • 5 weeks later...
В 12.07.2019 в 11:32, AlektroNik сказал:

День добрый.

Указывается конкретный единственный email, на который будет приходить пароль. Так?

А если админов несколько и у каждого свой email?

 

В 10.10.2019 в 12:24, Zaurius сказал:

Поддерживаю

В ближайшее время добавлю расширенную версию с настройкой для каждого админа

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 2 months later...
В 08.11.2019 в 16:17, Gixoc сказал:

 

В ближайшее время добавлю расширенную версию с настройкой для каждого админа

Добрый день. А будет все таки версия для нескольких админов?

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Обновление от 23.02.2020:
1) Возможна отправка пароля для всех пользователей.
2) Модуль интегрирован с другим модулем «Уведомления администратора», его необходимо предварительно установить и настроить.
3) Прекращена поддержка для версий Opencart (OcStore) 2.1 и 2.2.
4) Геоположение теперь определяется локально с помощью SxGeo, без обращений к сторонним сервисам.

Надіслати
Поділитися на інших сайтах

В 01.02.2020 в 16:51, PRlena сказал:

Добрый день. А будет все таки версия для нескольких админов?

Версия добавлена

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Добрый день!

 

Версия магазина: ocStore 2.3.0.2.3

 

После установки модуля по модификаторам есть ошибка: не найдена строчка для модификации.

Вот ошибка из лога: 

NOT FOUND!
CODE: if (!in_array($route, $ignore) && !$this->user->hasPermission('access', $route))
FILE: admin/controller/startup/login.php
MOD: GixOC.ru - <b>Admin Security: Two Factor Authentication</b>

Искомой строчки нет в указанном файле.

Проверил в том числе на исходном дистрибутиве версии — такой строчки нет.

Есть похожая:

if (!in_array($route, $ignore) && (!isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token']))) {

Изменил в модификаторе search на эту строку.

Там всё равно before — по идее, должно быть ок. @Gixoc или нет?

Змінено користувачем krashman
  • +1 1
Надіслати
Поділитися на інших сайтах


Модуль бесплатный — и это большой плюс.

Но и в то же время совсем сырой оказался и не выполняет своей задачи.

 

ocStore 2.3.0.2.3

Вот проблемы:

 

1. После ввода логина/пароль и при переводе на страницу двухфакторки сверху выходит warning. Но все уведомления Telegram/email приходят как положено.

2. Видна верхняя панель, как будто пользователь залогинен:

 

 image.thumb.png.b90b8bce50490afebe018a7a8bbe2a09.png

 

А теперь самые главные проблемы:

 

3. Если на этой странице нажимать F5 (обновить страницу), то каждый раз будет приходить новое уведомление Telegram/Email с новым кодом.

В модуле нет таймаута по отправке кодов (раз в 5 минут например). Поэтому можно засыпать почту и телегу сообщениями с помощью бесконечного обновления страницы. Ну либо вообще сервер положить. Это прям очень серьёзная проблема.

 

4. Сама двухфакторка не выполняет своей задачи.

Да, приходят уведомления с кодами в телегу/email.

НО, как оказалось, системе пофигу, что вводить в это поле: можно ввести всё что угодно: любой набор символов. Или даже не вводить ничего - просто сразу нажать кнопку "Войти" при пустом поле с кодом - и Модуль авторизует в системе.

 

Идея, функционал, оформление, информационные сообщения — всё супер.

Но пока этим модулем пользоваться нельзя.

Вот бы доработать и сделать его платным — стало бы вообще отлично. Такие модули не должны быть бесплатными.

 

 @Gixoc, что считаете?

Исправите эти проблемы?

Либо это только на моей стороне такое...?

 

 

В журнале ошибок следующие записи:

Спойлер

2020-05-07 11:11:29 - PHP Notice:  Indirect modification of overloaded property ControllerExtensionAdminSecurityTwoFactor::$error has no effect in /var/www/admin/data/www/domain.ru/admin/controller/extension/adminsecuritytwofactor.php on line 212
2020-05-07 11:11:44 - PHP Warning:  Invalid argument supplied for foreach() in /var/www/admin/data/www/domain.ru/system/library/mail.php on line 21

 

 

Змінено користувачем krashman
добавил ошибки из журнала
Надіслати
Поділитися на інших сайтах


1 час назад, krashman сказал:

Добрый день!

 

Версия магазина: ocStore 2.3.0.2.3

 

После установки модуля по модификаторам есть ошибка: не найдена строчка для модификации.

Вот ошибка из лога: 


NOT FOUND!
CODE: if (!in_array($route, $ignore) && !$this->user->hasPermission('access', $route))
FILE: admin/controller/startup/login.php
MOD: GixOC.ru - <b>Admin Security: Two Factor Authentication</b>

Искомой строчки нет в указанном файле.

Проверил в том числе на исходном дистрибутиве версии — такой строчки нет.

Есть похожая:


if (!in_array($route, $ignore) && (!isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token']))) {

Изменил в модификаторе search на эту строку.

Там всё равно before — по идее, должно быть ок. @Gixoc или нет?

Спасибо за найденные ошибки, версия 1.2.1 что-то действительно вышла "сырой" и не оттестированной. Откатил до версии 1.1.10 - с ней не было проблем. 

Надіслати
Поділитися на інших сайтах

56 минут назад, krashman сказал:

Видна верхняя панель, как будто пользователь залогинен

Так и будет, так пользовательь залогинен уже

57 минут назад, krashman сказал:

После ввода логина/пароль и при переводе на страницу двухфакторки сверху выходит warning. Но все уведомления Telegram/email приходят как положено

 

57 минут назад, krashman сказал:

4. Сама двухфакторка не выполняет своей задачи.

Да, приходят уведомления с кодами в телегу/email.

НО, как оказалось, системе пофигу, что вводить в это поле: можно ввести всё что угодно: любой набор символов. Или даже не вводить ничего - просто сразу нажать кнопку "Войти" при пустом поле с кодом - и Модуль авторизует в системе.

Попробуйте версию 1.1.10, с ней не было таких проблем

58 минут назад, krashman сказал:

3. Если на этой странице нажимать F5 (обновить страницу), то каждый раз будет приходить новое уведомление Telegram/Email с новым кодом.

В модуле нет таймаута по отправке кодов (раз в 5 минут например). Поэтому можно засыпать почту и телегу сообщениями с помощью бесконечного обновления страницы. Ну либо вообще сервер положить. Это прям очень серьёзная проблема.

 

58 минут назад, krashman сказал:

Вот бы доработать и сделать его платным — стало бы вообще отлично. Такие модули не должны быть бесплатными.

подумаю над вашимм предложениями, возможно будет платныя версия с расширенным функционалом

Надіслати
Поділитися на інших сайтах

Замечание от 07.05.2020 - в связи с найденными ошибками версия модуля (1.2.1 - уведомления для всех администраторов) была удалена, вместо нее восстановлена стабильная версия 1.1.10.

Надіслати
Поділитися на інших сайтах

5 минут назад, Gixoc сказал:

Попробуйте версию 1.1.10, с ней не было таких проблем

 

при скачивании теперь очень много вариантов для скачивания:

image.png.b074e5a3c86684e28e3d0f879a69b78b.png

 

похоже , что затроилось всё

Надіслати
Поділитися на інших сайтах


6 часов назад, krashman сказал:

 

при скачивании теперь очень много вариантов для скачивания:

image.png.b074e5a3c86684e28e3d0f879a69b78b.png

 

похоже , что затроилось всё

Спасибо, посмотрю 

Надіслати
Поділитися на інших сайтах

8 часов назад, krashman сказал:

 

при скачивании теперь очень много вариантов для скачивания:

image.png.b074e5a3c86684e28e3d0f879a69b78b.png

 

похоже , что затроилось всё

Исправил, можете скачать

Надіслати
Поділитися на інших сайтах

55 минут назад, Gixoc сказал:

Исправил, можете скачать

отлично, спасибо.

посмотрел 1.1.10, конечно, очень сильно отличается по гибкости настроек от последней версии.

разбивка по пользователям была очень полезной.

1 бага всё равно есть:

допустим, я ввёл логин пароль и попал на шаг ввода кода аутентификации.

но передумал заходить в этот аккаунт, хочу войти в другой (ну вот реально была такая ситуация во время теста).

в верхней панельки нажимаю "Выйти" — но не выходит. Страница перезагружается, остаётся всё на том же шаге ввода кода аутентификации, а на почту/telegram приходят коды.

 

очень надеюсь, что доработаете последнюю версию до шика.

вещь стоящая.

 

ещё такой момент:

допустим, периодически необходимо привлекать фрилансеров на выполнение разовых задач.

и на админку настроена двухфакторка.

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

как-то так.

 

ну и верхнюю панель я бы тоже предложил всё таки скрыть. какой в ней смысл, палить её тому, кто ещё до конца не авторизовался.

достаточно будет только вынести кнопку "назад" - чтобы можно было отказаться от ввода кода аутентификации и вернуться на штатную форму авторизации.

Надіслати
Поділитися на інших сайтах


1 час назад, krashman сказал:

ещё такой момент:

допустим, периодически необходимо привлекать фрилансеров на выполнение разовых задач.

и на админку настроена двухфакторка.

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

как-то так.

это было в удаленной версии - там если не отметить ни один из способов уведомления (е-майл, телеграм или вайбер), то пользователь входит без запроса пароля

 

1 час назад, krashman сказал:

допустим, я ввёл логин пароль и попал на шаг ввода кода аутентификации.

но передумал заходить в этот аккаунт, хочу войти в другой (ну вот реально была такая ситуация во время теста).

в верхней панельки нажимаю "Выйти" — но не выходит. Страница перезагружается, остаётся всё на том же шаге ввода кода аутентификации, а на почту/telegram приходят коды.

За это спасибо, пофиксим

 

1 час назад, krashman сказал:

ну и верхнюю панель я бы тоже предложил всё таки скрыть. какой в ней смысл, палить её тому, кто ещё до конца не авторизовался.

достаточно будет только вынести кнопку "назад" - чтобы можно было отказаться от ввода кода аутентификации и вернуться на штатную форму авторизации.

тут придется модификатором в верхнее меню лезть, а я не сторонник большого количества правок модификаторами, но вообще логично не показывать панель, я подумаю, как поизящнее это сделать

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 5 months later...
  • 8 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.