HTTP Basic Authentication или HTTP авторизация

Ромчик
5

Доброго времени суток. В данной статье мы остановимся на таком понятии как http basic authentication или http авторизация. Для чего нужна http basic authentication и как настроить http авторизацию. И в качестве примера мы сделаем HTTP авторизацию для админки WordPress. Ну что поехали.

Первое, что мы сделаем – это разберемся с понятием http авторизации.

HTTP authentication

HTTP authentication – это протокол, описанный в стандартах  HTTP 1.0/1.1. Работает следующим образом:

  1. При обращении неавторизованного пользователя к защищенному ресурсу сервер возвращает «401 Unauthorized» и добавляет заголовок «WWW-Authenticate»
  2. Браузер при получении ответа с заголовком «WWW-Authenticate» выкидывает форму для ввода логина и пароля. И в дальнейшем при обращении к данному ресурсу передает заголовок «Authorization», где хранятся данные пользователя для аутентификации.

Существуют несколько схем  http авторизации:

  • Basic
  • Digest
  • NTLM
  • Negotiate

Главное отличие – это уровень безопасности. Мы остановимся на basic – это самая небезопасная схема. Но при использовании HTTPS, является относительно безопасным.

Схема Basic является наиболее простой схемой, при которой логин и пароль передаются в заголовке «Authorization» в незашифрованном виде.

HTTP авторизация для админки WordPress

Если вы используете SSL на своем сайте, то вы можете дополнительно настроить http basic authentication для админки WordPress. А это дополнительная защита.

Небольшое отступление: у меня ОС Windows 10 и OpenServer, который расположен по адресу e:\OpenServer\

Первое, что нам необходимо сделать – это создать файл .htpasswd

Затем перейти на один из сервисов генерации пароля (или воспользоваться утилитой htpasswd у кого Linux), например https://truemisha.ru/tools/htpasswd-generator И сгенерировать пароль

генерация пароля для http авторизации

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

Admin:$apr1$grwacq2z$g1Z5bNYkD0vJKF2HllrRw/

Отлично. Теперь необходимо настроить apache с помощью файла .htaccess.

Переходим в каталог с админкой, по умолчанию это wp-admin и в нем создаем файл .htaccess.

И в него помещаем следующий код:

AuthType Basic
AuthName "Input username and password"
AuthUserFile e:\OpenServer\.htpasswd
Require valid-user

Где в AuthName указываем текст сообщения, в AuthUserFile указываем путь к файлу .htpasswd.

Сохраняем и проверяем.

При попытке перейти к админке WordPress сервер запросит http авторизацию.

http basic authentication

Если мы не введем логин и пароль, то сервер вернет ошибку «Authentication required»

сообщение об ошибке автоизации

Вводим логин и пароль (Логин: Admin, а пароль: admin)

страница авторизации WordPress

И нас пустило на стандартную страницу авторизации.

И видео к данной статье:

Заключение

Мы с вами дополнительно защитили админку WordPress http авторизацией. Но помните, что мы использовали http basic authentication, а данный тип передает логин и пароль в незашифрованном виде. Используйте https. А в следующей статье мы рассмотрим как организовать http авторизацию с помощью плагина для WordPress (когда у нас нет доступа к настройкам apache). Так, что не пропускайте выхода новых статей подписавшись: VK, facebook, twitter

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

  • Владимир - 04.01.2018 в 23:48

    Возник вопрос по basic auth. При неправильном вводе данных нужно выдавать свою страницу, это делается заменой 401, или по-другому?

  • Сергей - 18.04.2018 в 11:50

    Непонятно мне, какой логин и пароль? вводить при http авторизации:
    Логин: Admin
    Пароль: $apr1$grwacq2z$g1Z5bNYkD0vJKF2HllrRw/
    Такой не проходит.

    • Ромчик - 18.04.2018 в 14:20

      $apr1$grwacq2z$g1Z5bNYkD0vJKF2HllrRw/ — это не пароль, хеш пароля

    • Сергей - 18.04.2018 в 16:11

      Отлично, спасибо за ответ. Вопрос тот же:
      какой логин и пароль? вводить при http авторизации на Вашем примере

    • Ромчик - 19.04.2018 в 20:15

      Переходите, например, на этот сервис https://htmlweb.ru/service/htpasswd.php и генерируете хеш пароля, который вы сами задаете. Или с помощью утилиты htpasswd (если работаете под UNIX-системами)

  • ©2012-2018 По всем вопросам обращайтесь через форму обратной связи

    Яндекс.Метрика