Http авторизация basic: HTTP авторизация — HTTP | MDN

Содержание

HTTP авторизация — HTTP | MDN

HTTP предоставляет набор инструментов для разграничения доступа к ресурсам и авторизацией. Самой распространённой схемой HTTP авторизации является «Basic» (базовая) авторизация. Данное руководство описывает основные возможности HTTP авторизации и показывает способы ограничения доступа к вашему серверу с её использованием.

RFC 7235 определяет средства HTTP авторизации, которые может использовать сервер для запроса у клиента аутентификационной информации. Сценарий запрос-ответ подразумевает, что вначале сервер отвечает клиенту со статусом 401 (Unauthorized) и предоставляет информацию о порядке авторизации через заголовок WWW-Authenticate (en-US), содержащий хотя бы один метод авторизации. Клиент, который хочет авторизоваться, может сделать это, включив в следующий запрос заголовок Authorization с требуемыми данными. Обычно, клиент отображает запрос пароля пользователю, и после получения ответа отправляет запрос с пользовательскими данными в заголовке 

Authorization.

В случае базовой авторизации как на иллюстрации выше, обмен должен вестись через HTTPS (TLS) соединение, чтобы обеспечить защищённость.

Прокси-авторизация

Этот же механизм запроса и ответа может быть использован для прокси-авторизации. В таком случае ответ посылает промежуточный прокси-сервер, который требует авторизации. Поскольку обе формы авторизации могут использоваться одновременно, для них используются разные заголовки и коды статуса ответа. В случае с прокси, статус-код запроса 407 (Proxy Authentication Required) и заголовок Proxy-Authenticate (en-US), который содержит хотя бы один запрос, относящийся к прокси-авторизации, а для передачи авторизационных данных прокси-серверу используется заголовок Proxy-Authorization (en-US).

Доступ запрещён

Если (прокси) сервер получает корректные учётные данные, но они не подходят для доступа к данному ресурсу, сервер должен отправить ответ со статус кодом 403 Forbidden. В отличии от статус кода 401 Unauthorized или 407 Proxy Authentication Required, аутентификация для этого пользователя не возможна.

Аутентификация с помощью изображений

Аутентификация с помощью изображений, загружаемых из разных источников, была до недавнего времени потенциальной дырой в безопасности. Начиная с Firefox 59, изображения, загружаемые из разных источников в текущий документ, больше не запускают диалог HTTP-аутентификации, предотвращая тем самым кражу пользовательских данных (если нарушители смогли встроить это изображение в страницу).

Кодировка символов HTTP аутентификации

Браузеры используют кодировку utf-8 для имени пользователя и пароля. Firefox использовал ISO-8859-1, но она была заменена utf-8 с целью уравнения с другими браузерами, а также чтобы избежать потенциальных проблем (таких как баг 1419658).

WWW-Authenticate and Proxy-Authenticate headers

WWW-Authenticate (en-US) и Proxy-Authenticate (en-US) заголовки ответа которые определяют методы, что следует использовать для получения доступа к ресурсу. Они должны указывать, какую схему аутентификации использовать, чтобы клиент, желающий авторизоваться, знал, какие данные предоставить. Синтаксис для этих заголовков следующий:

WWW-Authenticate: <type> realm=<realm>
Proxy-Authenticate: <type> realm=<realm>

Here, <type> is the authentication scheme («Basic» is the most common scheme and introduced below). The realm is used to describe the protected area or to indicate the scope of protection. This could be a message like «Access to the staging site» or similar, so that the user knows to which space they are trying to get access to.

Authorization and Proxy-Authorization headers

The Authorization and Proxy-Authorization (en-US) request headers contain the credentials to authenticate a user agent with a (proxy) server. Here, the type is needed again followed by the credentials, which can be encoded or encrypted depending on which authentication scheme is used.

Authorization: <type> <credentials>
Proxy-Authorization: <type> <credentials>

Authentication schemes

The general HTTP authentication framework is used by several authentication schemes. Schemes can differ in security strength and in their availability in client or server software.

The most common authentication scheme is the «Basic» authentication scheme which is introduced in more details below. IANA maintains a list of authentication schemes, but there are other schemes offered by host services, such as Amazon AWS. Common authentication schemes include:

The «Basic» HTTP authentication scheme is defined in RFC 7617, which transmits credentials as user ID/password pairs, encoded using base64.

Security of basic authentication

As the user ID and password are passed over the network as clear text (it is base64 encoded, but base64 is a reversible encoding), the basic authentication scheme is not secure. HTTPS / TLS should be used in conjunction with basic authentication. Without these additional security enhancements, basic authentication should not be used to protect sensitive or valuable information.

Restricting access with Apache and basic authentication

To password-protect a directory on an Apache server, you will need a .htaccess and a .htpasswd file.

The .htaccess file typically looks like this:

AuthType Basic
AuthName "Access to the staging site"
AuthUserFile /path/to/.htpasswd
Require valid-user

The .htaccess file references a .htpasswd file in which each line contains of a username and a password separated by a colon («:»). You can not see the actual passwords as they are encrypted (md5 in this case). Note that you can name your .htpasswd file differently if you like, but keep in mind this file shouldn’t be accessible to anyone. (Apache is usually configured to prevent access to .ht* files).

aladdin:$apr1$ZjTqBB3f$IF9gdYAGlMrs2fuINjHsz.
user2:$apr1$O04r.y2H$/vEkesPhVInBByJUkXitA/

Restricting access with nginx and basic authentication

For nginx, you will need to specify a location that you are going to protect and the auth_basic directive that provides the name to the password-protected area. The auth_basic_user_file directive then points to a .htpasswd file containing the encrypted user credentials, just like in the Apache example above.

location /status {
    auth_basic           "Access to the staging site";
    auth_basic_user_file /etc/apache2/.htpasswd;
}

Access using credentials in the URL

Many clients also let you avoid the login prompt by using an encoded URL containing the username and the password like this:

https://username:[email protected]/

The use of these URLs is deprecated. In Chrome, the username:password@ part in URLs is even stripped out for security reasons. In Firefox, it is checked if the site actually requires authentication and if not, Firefox will warn the user with a prompt «You are about to log in to the site “www.example.com” with the username “username”, but the website does not require authentication. This may be an attempt to trick you.».

разработать http basic авторизации для формата html



У меня есть следующая конфигурация:

разработать :database_authenticatable config.http_authenticatable = истина

по запросу:

http://user:password@localhost:3000/

Разработать игнорирует http авторизации логин и перенаправляет на страницу входа

есть мысли?

С уважением

ruby-on-rails devise basic-authentication
Поделиться Источник user1001289     18 октября 2011 в 14:12

2 ответа




2

Что дает вам http_authenticatable, так это возможность использовать ваши базовые учетные данные HTTP для входа в собственную систему аутентификации. Вам все равно нужно самостоятельно закодировать блок http_auth, вот так:

def authenticate
  authenticate_or_request_with_http_basic do |username, password|
    username == "foo" && password == "bar"
  end
  warden.custom_failure! if performed?
end

Этот код должен войти в контроллер приложения. Убедитесь, что вы используете warden.custom_failure!, иначе устройство войдет в бесконечный цикл перенаправлений.

Поделиться caffo     09 августа 2012 в 16:47



2

Это сработало для меня

  before_filter :check_auth

  def check_auth
    authenticate_or_request_with_http_basic do |username,password|
      resource = User.find(username)
      if resource.valid_password?(password)
        sign_in :user, resource
      end
    end
    warden.custom_failure! if performed?
  end

Поделиться Marwa Hack     11 апреля 2014 в 07:54


Похожие вопросы:


Несколько заголовков авторизации HTTP?

Можно ли включить несколько заголовков авторизации в сообщение HTTP? В частности, я хотел бы включить один из типов токенов на предъявителя (передача токена доступа OAuth) и один из базовых типов…


HTTP basic авторизации для diigo определяет через C#: как прочитать ответ?

Я (пытаюсь) разработать приложение WPF (C#), которое просто получает (или, по крайней мере, должно получать) мои сохраненные закладки в профиле Diigo.com. Единственная полезная страница, которую я…


HTTP Basic Авторизации Исключить Один Файл

Часть моего файла .htaccess выглядит следующим образом- AuthUserFile /path/to/.htpasswd AuthName Authorization Required AuthType Basic require valid-user Для этого требуется базовая аутентификация…


Не удается установить заголовок HTTP Basic Auth в AngularJS

Я написал следующий контроллер для тестирования HTTP Basic Auth с использованием Angular JS. function TestCtrl($scope, $http, Base64){ $http.defaults.headers.common.Authorization = ‘Basic ‘ +…


Использование basic авторизации для прохождения проверки подлинности на основе маркеров

Разработать плагин позволяет использовать токены аутентификации . В документации говорится о опции Token Authenticatable: вход пользователя на основе токена аутентификации (также известного как…


Securing API Использование HTTP Basic Auth

Я изучаю HTTP Basic Auth, чтобы защитить свой Nodejs API (тоже используя SSL). Мне интересно, требуются ли как имя пользователя, так и пароль для базовой аутентификации, так как я просто хотел бы…


HTTP базовый заголовок авторизации в запросе с использованием AngularJS?

Я пытаюсь использовать AngularJS с внешним API. The API использует HTTP Basic для аутентификации. Я посмотрел вокруг, как это сделать, но, похоже, ничего не работает. Запрос OPTIONS всегда…


Angular $http GET пропуск авторизации

Можно ли передать логин и пароль для basic авторизации в AngularJS? Я использую $http, чтобы сделать запрос : var urlsave = myurl; $http({method: ‘GET’, url: urlsave}).success(function(data) {…


Spring Boot 2: Basic Http Auth заставляет незащищенные конечные точки отвечать 401 «Unauthorized», если заголовок авторизации прикреплен

После перехода на Spring Boot 2 и добавления базового требования авторизации для привода и другого приложения, управляющего конечной точкой, стало невозможно вызвать любую незащищенную конечную…


Изменить наименование заголовка в nginx для basic авторизации или Aspnetcore для JWT

У меня возникла трудная проблема. моя проблема в том, что я использую сайт asp.net core 2.0 с jwt . Когда JWT передает маркер имеет название заголовка аутентификации теперь мне нужно добавить HTTP…

HTTPS и BASIC аутентификация — CodeRoad



Когда я использую базовую аутентификацию HTTP вместе с HTTPS, надежно ли передаются имя пользователя и пароль на сервер?

Я был бы счастлив, если бы вы помогли мне с некоторыми рекомендациями.

Я имею в виду, что было бы здорово, если бы я мог цитировать StackOverflow Q&A в качестве ссылки, скажем, в заданиях, отчетах, экзаменах или даже в технической работе. Но мне кажется, что я еще не там.

https ssl basic-authentication
Поделиться Источник Afriza N. Arief     12 августа 2010 в 03:02

4 ответа


  • Java — HTTPS базовая аутентификация с Apache httpclient

    Я пытаюсь получить некоторые данные (json data — > restful server) с сервера HTTPS с базовой аутентификацией с использованием Apache httpclient. Сертификат SSL является самоподписанным. Сервер очень хорошо реагирует на вызов браузера, а также при использовании curl. Однако использование java…

  • Как совместить базовую аутентификацию и https?

    Я создал частный веб-сайт, который должен быть доступен только нескольким людям через интернет. Я хотел бы настроить комбинацию базовой аутентификации и https. До сих пор у меня все работает нормально, если я прямо набираю https://blah.com/location1 . Однако мне нужно , чтобы apache перенаправлял…



25

да. если вы используете https, разговор с веб — сервером полностью зашифрован.

Поделиться Don Dickinson     12 августа 2010 в 03:06



3

HTTP Базовая аутентификация и HTTPS-это разные понятия.

  • В HTTP Имя пользователя и пароль для базовой аутентификации отправляются открытым текстом (в HTTP Пароль для дайджест — авторизации отправляется в base64, закодированный с использованием алгоритма MD5)
  • В то время как HTTPS-это совершенно другая функциональность, здесь полное сообщение шифруется на основе ключей и сертификата SSL.

Пожалуйста, обратите внимание: Существует разница между авторизацией и безопасностью. HTTP Базовая авторизация-это концепция авторизации, а не безопасности

YES. В вашем случае сообщение HTTP с именем пользователя и паролем будет зашифровано, а затем отправлено на сервер.

Поделиться Alam     12 августа 2010 в 03:46



3

Да, они передаются надежно… если хакер может расшифровать вашу транзакцию https, он наверняка сможет расшифровать транзакцию base64 user:password…

Я знаю, чем больше камней ты кладешь, тем труднее это сделать… но base64 не по соображениям безопасности

Поделиться Garis M Suero     12 августа 2010 в 03:52



0

Если в вашей локальной системе установлен такой инструмент, как Fiddler, его можно использовать для пересылки расшифрованных передач https третьей стороне. Если кто-то настроил его для этого, он уже владеет вашей системой (либо имеет физический доступ, либо полный/корневой доступ).

Поделиться TroyJ     21 апреля 2011 в 22:07


Похожие вопросы:


HTTPS и Firebase аутентификация

Мне было интересно, как я могу аутентифицировать запросы на FireBase? Я создал новую учетную запись firebase, помеченную Enable Email & Password Authentication , создал пользователя с…


iOS5: аутентификация по https

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


WCF аутентификация по https

У меня есть служба WCF, которая использует https для связи и json для формата ответа. Я не хочу, чтобы мои методы были доступны кому-либо, поэтому я меняю аутентификацию в IIS с anonymous &…


Java — HTTPS базовая аутентификация с Apache httpclient

Я пытаюсь получить некоторые данные (json data — > restful server) с сервера HTTPS с базовой аутентификацией с использованием Apache httpclient. Сертификат SSL является самоподписанным. Сервер очень…


Как совместить базовую аутентификацию и https?

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


Как принудительно HTTPS в каталоге AND принудительно HTTPS аутентификация

Мне интересно, каков наилучший способ принудительной аутентификации HTTPS. Когда у меня есть это в моем файле .htaccess: AuthType Basic AuthName Developer AuthUserFile…


ПТД и basic авторизации

Я пытаюсь заставить WSMan работать, используя базовую авторизацию. Я всегда получаю ошибку отказа в доступе. Аутентификация Kerberos работает нормально. Служба удаленного управления Windows запущена…


Аутентификация и / или HTTPS с приложением Plack/PSGI/Poet

Мне нужно создать простое веб-приложение. Я решил сделать это с помощью Poet ( Mason2 ), который использует Plack. Приложение должно быть разрешено использовать только аутентифицированным…


Securing API Использование HTTP Basic Auth

Я изучаю HTTP Basic Auth, чтобы защитить свой Nodejs API (тоже используя SSL). Мне интересно, требуются ли как имя пользователя, так и пароль для базовой аутентификации, так как я просто хотел бы…


Аутентификация, перенаправление на HTTPS и переписывание url в Apache 2.4

Я управляю сервером Python http (официантка) за веб-сервером Apache 2.4. У меня есть правило перезаписи, чтобы заставить Apache фактически получить доступ к внутреннему порту (55555) в моей системе…

Метод авторизации HTTP Basic | UserGate Support & Service

Авторизация Basic позволяет авторизовать пользователей с явно указанным прокси сервером по базе локальных пользователей. Не рекомендуется использовать данный тип авторизации поскольку имя пользователя и пароль передаются в открытом виде по сети. Авторизация HTTP Basic можно использовать для автоматической авторизации утилит командной строки, которым необходим доступ в интернет, например:

Для авторизации HTTP Basic необходимо выполнить следующие действия:

Наименование

Описание

Шаг 1. Создать DNS-запись для сервера UserGate

На контроллере домена создать DNS-записи, соответствующие серверу UserGate для использования в качестве домена для auth.captive и logout.captive, например, auth.domain.loc и logout.domain.loc

В качестве IP-адреса укажите адрес интерфейса UserGate, подключенного в сеть Trusted.

Шаг 2. Изменить адрес Домен Auth Captive-портала

Изменить адрес домена Auth Captive-портала и опционально адрес домена Logout Captive-портала в разделе Настройки.

Для домена Auth Captive-портала необходимо указать созданную на предыдущем шаге запись DNS.

Для домена Logout Captive-портала необходимо указать созданную на предыдущем шаге запись DNS.

Подробно об изменении адресов доменов Auth Captive-портала и Logout Captive-портала смотрите в разделе Общие настройки

Шаг 3. Создать правило Captive-портала с авторизацией HTTP Basic

Настроить Captive-портал для использования метода авторизации HTTP Basic. Более подробно о Captive-портале рассказывается в следующих главах руководства

Шаг 4. Разрешить доступ к сервису HTTP(S) для зоны

В разделе Зоны разрешить доступ к сервису HTTP(S)-прокси для зоны, к которой подключены пользователи, авторизующиеся с помощью NTLM

Шаг 5. Настроить прокси-сервер на компьютерах пользователей

На компьютерах пользователей указать обязательное использование прокси-сервера, указать IP-адрес Trusted интерфейса UserGate в качестве адреса прокси сервера.

Авторизация в системе через REST API — Клеверенс

Последние изменения: 20.01.2021

Выберите уточнение:

Если в системе включена авторизация, то для начала работы с API необходимо пройти авторизацию в системе.

Реализованы несколько вариантов авторизации:

  • BASIC авторизация.
  • Авторизация методом GET по адресу /api/session с получением token.
  • Авторизация методом POST по адресу /api/session с получением token.

BASIC авторизация

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

При использовании данного метода необходимо в заголовке каждого запроса указывать:

Authorization: Basic {login}:{password}

Допускается base64 при формировании строки {login}:{password}

Авторизация методом GET

Еще один способ авторизации — отправить GET запрос по адресу /api/v1/session, при этом в url запросе указать параметры login и password:

     https://localhost:9000/api/v1/session?username=${Username}&password=${Password}

Ответ сервера:

{
Access_token:"123123123", Token_type:"bearer", Expires_in:86400, Refresh_token:"321321321",
}

Авторизация методом POST

Авторизация по логину и паролю происходит путем отправки POST запроса на сервер, в результате которого возвращается access_token и refresh token в формате JSON.

Пример запроса:

POST /oauth/token HTTP/1.1
Host: mobilesmarts.ru/api/session
Content-Type: application/x-www-form-urlencoded

grant_type=password&client_id=123&client_secret=user&[email protected]&password=123456

Ответ сервера:

{
Access_token:"123123123",
Token_type:"bearer", Expires_in:86400, Refresh_token:"321321321", }

Восстановление после окончания срока действия сессии

Восстановление после окончания срока действия сессии происходит путем отправки refresh_token на сервер, в результате приходит новый access_token и refresh_token

Пример:

POST /oauth/token HTTP/1.1
Host: mobilesmarts.ru/api/session
Content-Type: application/x-www-form-urlencoded

grant_type:refresh_token&client_id=123&client_secret=user&refresh_token=321321321

Ответ:

HTTP/1.1 200 OK
Content-Type: application/json

{
Access_token:"99999",
Token_type:"bearer",
Expires_in:86400,
Refresh_token:"789789789",
}

Вызов функций с использованием token

Для того чтобы обратиться к функциям(если не используется Basic авторизация), для которых необходима авторизация, необходимо в заголовке Authorization передавать токен:

Authorization: Bearer <token>

Иначе сервер вернет ошибку авторизации 401.

Была ли статья полезна?

Basic авторизация (http аутентификация) через htaccess

25.05.2019 | Категория Защита и безопасность

Чтобы включить basic авторизацию нам понадобиться всего 2 маленьких файла.

.htaccess — будет лежать в папке, в которую вы хотите закрыть доступ

.htpasswd — в нем будут записаны логин и пароль, его лучше поместить в то место куда обычные пользователи не имеют доступа.

например перед папкой public_html или перед папкой доменов.

В файле .htaccess указываем такой код:

AuthName "Enter login"
AuthType Basic
AuthUserFile /home/users/.htpasswd
require valid-user

Где AuthName — надпись над формой http авторизации, указывается в двойных кавычках

AuthType — метод авторизации, указываем Basic

AuthUserFile — абсолютный путь до файла .htpasswd с логином и паролем.

require valid-user — разрешаем доступ всем кто прошёл проверку.

А для файла .htpasswd генерируем пару логин:пароль. Сгенерировать можно здесь >>

И вставляем её в файл .htpasswd

Пароль должен находиться в зашифрованном виде (алгоритм MD5).
На этом всё, бейсик авторизация включена и готова к использованию.

Если при http авторизации возникает ошибка 500

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

Нужно указывать полный путь, посмотреть его можно в файле configuration.php, там где указаны пути до папок /log и /tmp

Ещё ошибка может появляться если допущена синтаксическая ошибка в .htaccess

В остальном всё должно работать.

 

P.S.: для обеспечения 100% сохранности вашего сайта рекомендую обратить внимание на скрипт AutoBackupMaster.

Скрипт позволяет создавать резервные копии сайта на полном автомате и загружать их в облачные сервисы.
Также есть функция «Умный бекап», которая предотвращает попадание вирусов в резервные копии.

Подробнее о скрипте резервного копирования сайта в облако можно посмотреть на официальном сайте >>

Базовая HTTP-аутентификация с помощью .htaccess

Привет! Сегодня я расскажу вам об одном из способов защиты консоли администратора WordPress от Brute-force атаки и несанкционированного доступа к файлу wp-login.php с помощью .htaccess. Брутфорс представляет собой метод полного перебора паролей — это один из видов хакерской атаки на сайт.

Злоумышленник с помощью специального программного обеспечения запрашивает доступ к файлу авторизации и POST-запросами подбирает пару логин-пароль. Как правило, подбор идёт по словарю, поэтому крайне важно использовать длинный сложный пароль, состоящий из цифр, букв верхнего и нижнего регистра, специальных символов.

Два-три года назад, если мне не изменяет память, в течение продолжительного времени на сайты WordPress (а также другие популярные CMS) велась массированная Brute-force атака и большинство сайтов не выдерживало нагрузки. Мои сайты, расположенные на виртуальном хостинге, нередко стали выдавать 500 ошибку.

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

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

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

Что интересно, посещаемость по данным Метрики оставалась на уровне предыдущих дней. А вот логи сервера сразу указали на причину — буквально каждую секунду с одного и того же IP шли запросы к админке. Естественно, я заблокировал доступ к сайту с этого IP-адреса через .htaccess таким образом:

Order Allow,Deny
Allow from All 
Deny from xxx.xxx.xxx.xxx

Где xxx.xxx.xxx.xxx — IP злоумышленника, вычисленный по журналу логов. В тот же день я отправил своему хостинг-провайдеру ответное письмо, в котором сообщил об атаке на мои сайты и принятых мерах по снижению нагрузки на сервер. Таким образом мне не пришлось повышать тарифный план и удалось избежать лишних финансовых затрат.

Защита файла wp-login.php паролем от взлома

Как оказалось, не только я столкнулся с этой проблемой, атака имела массовый характер и ей были подвержены большинство сайтов не только в рунете, а по всему миру. В компании Reg.ru ответственно подошли к решению этого вопроса и всем своим клиентам установили форму базовой HTTP-аутентификации для доступа к панели администратора:

<Files wp-login.php>
AuthType Basic
AuthName "please use your login and password"
AuthUserFile "/var/www/u12345/data/etc/.htpasswd"
Require valid-user
</Files>

WordPress является самой популярной CMS и поэтому часто становится мишенью хакерской атаки. Добавьте эти строки в свой файл .htaccess чтобы защитить сайт от взлома и повысить его безопасность.

Данная защита включает обязательное требование ввода дополнительного логина и пароля для доступа к файлу wp-login.php, исключая отправку POST-запросов при подборе пароля к админ-панели сайта. Здесь используются параметры:

  • AuthType — тип аутентификации, в нашем случае Basic — базовый,
  • AuthName — эту фразу видит пользователь, можете её заменить,
  • AuthUserFile — путь к файлу с логином и паролем,
  • Require — требования, valid-user разрешает доступ пользователям из AuthUserFile.

Путь к файлу с логином и паролем является абсолютным и отличается в зависимости от хостинга. Обратитесь за помощью к техподдержке или изучите справку, чтобы узнать путь к корневому каталогу. В моём примере файл называется .htpasswd. Содержимое файла представлено парой логин:пароль и имеет следующий вид:

login:zQh2Y7lpTrkA5

Мой хостинг-провайдер рекомендует пользоваться сервисом Htpasswd Generator для онлайн-генерации хэша пароля. Указываем логин, который хотим использовать для HTTP-аутентификации, затем пароль для его хэширования в MD5.

Важно: пароль в файле .htpasswd не должен быть указан в открытом виде, используйте его хэш с применением алгоритма шифрования MD5.

После нажатия кнопки «Create .htpasswd file» на выходе получаем нужную связку, которую следует скопировать и вставить в файл .htpasswd. Вот и всё, настройка защиты файла wp-login.php завершена. Теперь, прежде чем получить доступ к консоли администратора нам потребуется указать дополнительные логин и пароль (именно пароль, а не его хэш).

Внешний вид формы доступа отличается в зависимости от браузера и операционной системы пользователя. Наиболее симпатичным мне показалось окно авторизации в Internet Explorer, в остальных браузерах оно более сдержано и лаконично, без излишеств.

Используйте разные логины и пароли для HTTP-авторизации и входа в консоль WordPress! Это первая статья из серии уроков по защите сайта от взлома, в планах сформировать новую рубрику про безопасность. Продолжение следует…

Авторизация — HTTP | MDN

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

Заголовок Authorization обычно, но не всегда, отправляется после того, как пользовательский агент впервые пытается запросить защищенный ресурс без учетных данных. Сервер отвечает сообщением 401 Unauthorized , которое включает как минимум один заголовок WWW-Authenticate .Этот заголовок указывает, какие схемы аутентификации можно использовать для доступа к ресурсу (и любую дополнительную информацию, необходимую клиенту для их использования). Агент пользователя должен выбрать наиболее безопасную схему аутентификации, которую он поддерживает, из предложенных, запросить у пользователя учетные данные, а затем повторно запросить ресурс (включая закодированные учетные данные в заголовке Authorization ).

   
  

Обычная проверка подлинности

Дайджест-аутентификация

  Digest username = <имя пользователя>,
    realm = "<область>",
    uri = "",
    алгоритм = <алгоритм>,
    nonce = "",
    nc = ,
    cnonce = "",
    qop = ,
    response = "",
    opaque = "<непрозрачный>"
  

Схема аутентификации, определяющая способ кодирования учетных данных.Некоторые из наиболее распространенных типов (без учета регистра): Basic , Digest , Negotiate и AWS4-HMAC-SHA256 .

За исключением остальные директивы специфичны для каждой схемы аутентификации. Обычно вам необходимо проверить соответствующие спецификации для них (ключи для небольшого подмножества схем перечислены ниже).

Базовый

<учетные данные>

Учетные данные, закодированные по указанной схеме.

Дайджест

<ответ>

Строка шестнадцатеричных цифр, подтверждающая, что пользователь знает пароль. Алгоритм кодирует имя пользователя и пароль, область, cnonce, qop, nc и так далее. Подробно это описано в спецификации.

имя пользователя

Строка в кавычках, содержащая имя пользователя для указанной области в виде обычного текста или хэш-кода в шестнадцатеричной системе счисления.Если имя содержит символы, недопустимые в поле, то вместо него можно использовать username * (не «а также»).

имя пользователя *

Имя пользователя отформатировано с использованием расширенной нотации, определенной в RFC5987. Это следует использовать только в том случае, если имя не может быть закодировано в username и если userhash установлен «false» .

uri

Эффективный URI запроса .См. Спецификацию для получения дополнительной информации.

область

Область запрошенного имени пользователя / пароля (опять же, должно соответствовать значению в соответствующем ответе WWW-Authenticate для запрашиваемого ресурса).

непрозрачный

Значение в соответствующем ответе WWW-Authenticate для запрашиваемого ресурса.

алгоритм

Алгоритм, используемый для расчета дайджеста.Должен быть поддерживаемый алгоритм из ответа WWW-Authenticate для запрашиваемого ресурса.

гоп

Маркер, указывающий качество защиты , примененное к сообщению. Должно соответствовать одному значению в наборе, указанном в ответе WWW-Authenticate для запрашиваемого ресурса.

  • "auth" : аутентификация
  • "auth-int" : аутентификация с защитой целостности
cnonce

Строковое значение ASCII в кавычках, предоставляемое клиентом.Это используется как клиентом, так и сервером, чтобы обеспечить взаимную аутентификацию, обеспечить некоторую защиту целостности сообщения и избежать «выбранного открытого текста атаки ». См. Дополнительную информацию в спецификации.

NC

Количество одноразовых номеров. Шестнадцатеричное количество запросов, в которых клиент отправил текущее значение cnonce (включая текущий запрос). Сервер может использовать повторяющиеся значения nc для распознавания запросов на воспроизведение.

userhash Дополнительно

"true , если имя пользователя было хешировано. " false " по умолчанию.

Базовая аутентификация

Для аутентификации «Базовая» учетные данные создаются путем объединения имени пользователя и пароля с двоеточием ( aladdin: opensesame ), а затем путем кодирования полученной строки в base64 ( YWxhZGRpbjpvcYW1uc2V ).

 Авторизация: Базовая YWxhZGRpbjpvcGVuc2VzYW1l
 

Предупреждение: кодировку Base64 можно легко изменить, чтобы получить исходное имя и пароль, поэтому обычная проверка подлинности полностью небезопасна. HTTPS всегда рекомендуется при использовании аутентификации, но тем более при использовании аутентификации Basic .

См. Также HTTP-аутентификацию для примеров того, как настроить серверы Apache или nginx для защиты паролем вашего сайта с помощью базовой HTTP-аутентификации.

HTTP-аутентификация — HTTP | MDN

HTTP обеспечивает общую основу для контроля доступа и аутентификации. Эта страница представляет собой введение в структуру HTTP для аутентификации и показывает, как ограничить доступ к вашему серверу с помощью схемы HTTP «Basic».

RFC 7235 определяет структуру аутентификации HTTP, которая может использоваться сервером для проверки запроса клиента и клиентом для предоставления информации аутентификации.

Поток запросов и ответов работает следующим образом:

  1. Сервер отвечает клиенту статусом ответа 401 (Неавторизован) и предоставляет информацию о том, как авторизоваться с помощью заголовка ответа WWW-Authenticate , содержащего хотя бы один запрос.
  2. Клиент, который хочет аутентифицироваться на сервере, может сделать это, включив заголовок запроса Authorization с учетными данными.
  3. Обычно клиент представляет пользователю запрос пароля, а затем выдает запрос, включающий правильный заголовок Authorization .

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

Предупреждение: «Базовая» схема проверки подлинности, используемая на схеме выше, отправляет учетные данные в закодированном, но не зашифрованном виде.Это было бы совершенно небезопасно, если бы обмен не производился через безопасное соединение (HTTPS / TLS).

Аутентификация прокси

Тот же механизм запроса и ответа может использоваться для аутентификации прокси-сервера . Поскольку аутентификация ресурсов и аутентификация прокси могут сосуществовать, необходим другой набор заголовков и кодов состояния. В случае прокси-серверов, вызывающий код статуса — 407 (требуется аутентификация прокси), заголовок ответа Proxy-Authenticate содержит по крайней мере один запрос, применимый к прокси, а заголовок запроса Proxy-Authorization используется для предоставление учетных данных прокси-серверу.

Доступ запрещен

Если (прокси-сервер) получает недействительных учетных данных , он должен ответить 401 Неавторизованный или 407 Proxy Authentication Required , и пользователь может отправить новый запрос или заменить поле заголовка Authorization .

Если (прокси) сервер получает действительные учетные данные, которые не соответствуют для доступа к данному ресурсу, сервер должен ответить кодом состояния 403 Запрещено .В отличие от 401 Unauthorized или 407 Proxy Authentication Required , аутентификация для этого пользователя невозможна, и браузеры не предложат новую попытку.

Во всех случаях сервер может предпочесть возврат кода состояния 404 Not Found , чтобы скрыть существование страницы для пользователя без соответствующих прав или неправильно аутентифицированного.

Аутентификация изображений перекрестного происхождения

Потенциальной дырой в безопасности (которая с тех пор была исправлена ​​в браузерах) была аутентификация межсайтовых изображений.Начиная с Firefox 59 и далее ресурсы изображений, загруженные из разных источников в текущий документ, больше не могут запускать диалоговые окна HTTP-аутентификации (ошибка 1423146), предотвращая кражу учетных данных пользователя, если злоумышленники смогли встроить произвольное изображение на стороннюю страницу.

Кодировка символов HTTP-аутентификации

Браузеры используют кодировку utf-8 для имен пользователей и паролей.

Firefox когда-то использовал ISO-8859-1 , но был изменен на utf-8 для обеспечения паритета с другими браузерами и во избежание потенциальных проблем, как описано в ошибке 1419658.

Заголовки WWW-Authenticate и Proxy-Authenticate

Заголовки ответов WWW-Authenticate и Proxy-Authenticate определяют метод аутентификации, который следует использовать для получения доступа к ресурсу. Они должны указать, какая схема аутентификации используется, чтобы клиент, желающий авторизоваться, знал, как предоставить учетные данные.

Синтаксис этих заголовков следующий:

  <тип> область = <область>
 <тип> область = <область>
  

Здесь <тип> — это схема аутентификации («Базовая» является наиболее распространенной схемой и представлена ​​ниже).Область используется для описания защищаемой области или для обозначения объема защиты. Это может быть сообщение типа «Доступ к промежуточному сайту» или подобное, чтобы пользователь знал, к какому пространству он пытается получить доступ.

Заголовки авторизации и прокси-авторизации

Заголовки запроса Authorization и Proxy-Authorization содержат учетные данные для аутентификации пользовательского агента с (прокси) сервером. Здесь снова требуется <тип> , за которым следуют учетные данные, которые могут быть закодированы или зашифрованы в зависимости от того, какая схема аутентификации используется.

  <тип> <учетные данные>
 <тип> <учетные данные>
  

Общая структура аутентификации HTTP является основой для ряда схем аутентификации.

IANA поддерживает список схем аутентификации, но есть и другие схемы, предлагаемые хост-сервисами, например Amazon AWS.

Некоторые распространенные схемы аутентификации включают:

Базовый

См. RFC 7617, учетные данные в кодировке base64.Более подробная информация ниже.

На предъявителя

См. RFC 6750, токены-носители для доступа к ресурсам, защищенным OAuth 2.0.

Дайджест

См. RFC 7616. Firefox 93 и более поздние версии поддерживают шифрование SHA-256. Предыдущие версии поддерживают только хеширование MD5 (не рекомендуется).

HOBA

См. RFC 7486, раздел 3, H TTP O rigin- B ound A аутентификация на основе цифровой подписи

взаимное

См. RFC 8120

Согласовать / NTLM

См. RFC4599

VAPID

См. RFC 8292

SCRAM

См. RFC 7804

AWS4-HMAC-SHA256

См. Документацию AWS.Эта схема используется для аутентификации сервера AWS3.

Схемы могут различаться по степени защиты и доступности в клиентском или серверном программном обеспечении.

Схема проверки подлинности «Базовая» обеспечивает очень низкий уровень безопасности, но широко поддерживается и проста в настройке. Более подробно он представлен ниже.

«Базовая» схема аутентификации HTTP определена в RFC 7617, которая передает учетные данные в виде пар идентификатора пользователя и пароля, закодированных с использованием base64.

Безопасность базовой аутентификации

Поскольку идентификатор пользователя и пароль передаются по сети в виде открытого текста (кодировка base64, но base64 — обратимая кодировка), базовая схема аутентификации не является безопасной .HTTPS / TLS следует использовать с базовой аутентификацией. Без этих дополнительных улучшений безопасности базовая проверка подлинности не должна использоваться для защиты конфиденциальной или ценной информации.

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

Чтобы защитить паролем каталог на сервере Apache, вам потребуются файлы .htaccess и .htpasswd .

Файл .htaccess обычно выглядит так:

 AuthType Basic
AuthName "Доступ к промежуточному сайту"
AuthUserFile / путь / к /.htpasswd
Требовать действительного пользователя
 

Файл .htaccess ссылается на файл .htpasswd , в котором каждая строка состоит из имени пользователя и пароля, разделенных двоеточием (: ). Вы не можете увидеть фактические пароли, поскольку они хешируются (в данном случае с использованием хеширования на основе MD5). Обратите внимание, что вы можете назвать файл .htpasswd по-другому, если хотите, но помните, что этот файл не должен быть доступен никому. (Apache обычно настроен на предотвращение доступа к .ht * файлов).

 aladdin: $ apr1 $ ZjTqBB3f $ IF9gdYAGlMrs2fuINjHsz.
user2: $ apr1 $ O04r.y2H $ / vEkesPhVInBByJUkXitA /
 

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

Для nginx вам нужно будет указать местоположение, которое вы собираетесь защищать, и директиву auth_basic , которая предоставляет имя защищенной паролем области. Затем директива auth_basic_user_file указывает на файл .htpasswd , содержащий зашифрованные учетные данные пользователя, как и в приведенном выше примере Apache.

 местоположение / статус {
    auth_basic «Доступ к промежуточному сайту»;
    auth_basic_user_file /etc/apache2/.htpasswd;
}
 

Доступ с использованием учетных данных в URL-адресе

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

 https: // имя пользователя: [email protected]/
 

Использование этих URL-адресов не рекомендуется . В Chrome часть username: password @ в URL-адресах даже исключена из соображений безопасности.В Firefox проверяется, действительно ли сайту требуется аутентификация, и если нет, Firefox предупредит пользователя сообщением «Вы собираетесь войти на сайт« www.example.com »с именем пользователя« username », но веб-сайт не требует аутентификации. Это может быть попыткой вас обмануть «.

Заголовок авторизации · LoginRadius Engineering

Этот блог даст представление о заголовке запроса авторизации. Прежде чем мы углубимся в блог, давайте кратко рассмотрим заголовки запросов на авторизацию.

Что такое заголовок запроса авторизации?

Заголовок запроса HTTP-авторизации содержит учетные данные для аутентификации пользовательского агента на сервере.

API

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

Список заголовков запросов на авторизацию

Существует много типов заголовков запроса авторизации. Некоторые из них упомянуты ниже.

  • Базовая аутентификация
  • Жетон на предъявителя
  • Ключ API
  • Digest Auth
  • OAuth 2.0
  • Ястреб Аутентификация
  • Подпись AWS

1. Базовая аутентификация:

Это простая схема аутентификации, встроенная в протокол HTTP. Клиент отправляет HTTP-запросы с заголовком авторизации, который содержит слово Basic , за которым следует пробел и строка имя пользователя: пароль в кодировке base64 (не зашифрованная).Например, чтобы авторизоваться как имя пользователя / Pa $$ w0rd, клиент отправит.

  Авторизация: Базовая AXVubzpwQDU1dzByYM ==  

Примечание: кодировка Base64 не означает шифрование или хеширование! Следовательно, этот метод эквивалентен отправке учетных данных в виде открытого текста, такого как ABCXYZ (base64 — это обратимая кодировка). Предпочитайте использовать HTTPS вместе с базовой аутентификацией.

2. Жетон на предъявителя:

Обычно называется аутентификацией по токену. Это схема проверки подлинности HTTP, которая включает токены безопасности, называемые токенами носителя.Как видно из названия, «Аутентификация на предъявителя» дает доступ к носителю этого токена.

Маркер-носитель — это загадочная строка, обычно генерируемая сервером в ответ на запрос входа в систему. Клиент должен отправить этот токен в заголовке авторизации при запросе к защищенным ресурсам:

  Авторизация: предъявитель <токен>  

Как и обычная проверка подлинности, проверку подлинности носителя следует использовать только через HTTPS (SSL). Для аутентификации JWT рекомендуется аутентификация носителя

3.Ключ API:

Ключ API — это токен, который клиент предоставляет при выполнении вызовов API. С помощью API-ключа аутентификации вы отправляете пару «ключ-значение» в API либо в заголовках запроса, либо в параметрах запроса. Некоторые API используют ключи API для авторизации.

Ключ в строке запроса:

  GET / конечная точка? Api_key = abcdefgh223456789  

или как заголовок запроса:

  X-API-ключ: abcdefgh223456789  

4. Авторизация дайджеста:

Digest Authentication передает учетные данные в зашифрованном виде, применяя хеш-алгоритм к имени пользователя и паролю, пароль преобразуется в ответ, а затем отправляется на сервер.После этого сервер предоставляет значение nonce, метод HTTP и запрошенный URI.

HTTP-дайджест-аутентификация доступа — это более сложная форма аутентификации, которая работает следующим образом:

  1. Клиент отправляет запрос на сервер
  2. Сервер отвечает специальным кодом (называемым nonce, т.е. числом, используемым только один раз), другой строкой, представляющей область (хэш) для аутентификации от клиента.
  3. Клиент отвечает этим одноразовым номером и зашифрованной версией имени пользователя, пароля и области (хеш)
  4. Если хэш клиента совпадает с хешем сервера, сервер ответит запрошенной информацией.В противном случае будет передано сообщение об ошибке.
  Авторизация: дайджест имя пользователя = "admin" Realm = "abcxyz" nonce = "474754847743646", uri = "/ uri" response = "7cffhfr54685gnnfgerg8"  

5. OAuth3.0:

OAuth 1.0 позволяет клиентским приложениям получать доступ к данным, предоставляемым сторонним API. Например, как пользователь службы вы можете предоставить другому приложению доступ к вашим данным с помощью этой службы, не раскрывая свои данные для входа.

с OAuth 2.0, вы сначала извлекаете токен доступа для API, а затем используете этот токен для аутентификации будущих запросов. Получение информации через поток OAuth 2.0 сильно различается между поставщиками услуг API, но обычно включает несколько запросов назад и вперед между клиентским приложением, пользователем и API.

Поток OAuth 2.0 работает следующим образом:

  1. Клиентское приложение запрашивает у пользователя авторизацию доступа к его данным.
  2. Если пользователь предоставляет доступ, приложение затем запрашивает маркер доступа у поставщика услуг, передавая разрешение доступа от пользователя и данные аутентификации для идентификации клиента.
  3. Поставщик услуг проверяет эти данные и возвращает маркер доступа.
  4. Клиент использует маркер доступа для запроса данных пользователя через поставщика услуг.
  Авторизация: предъявитель hY_9.B5f-4.1BfE
// где «hY_9.B5f-4.1BfE» - ваш токен доступа OAuth  

6. Ястреб аутентификации:

Аутентификация

Hawk позволяет авторизовать запросы с использованием частичной криптографической проверки.

Параметры аутентификации Hawk следующие:

  • Hawk Auth ID : значение вашего идентификатора аутентификации API.
  • Hawk Auth Key : значение вашего ключа аутентификации API.
  • Алгоритм : алгоритм хеширования (sha266, sha1), используемый для создания кода аутентификации сообщения (MAC).

В заголовке запроса это выглядит так:

  Авторизация: Hawk, ts = "1592459563", nonce = "gWqbkw", mac = "vxBCccCutXGV30gwEDKu1NDXSeqwfq7Z0sg / HP1HjOU ="  

7. Подпись AWS:

AWS — это рабочий процесс авторизации для запросов Amazon Web Services.AWS использует настраиваемую схему HTTP, основанную на HMAC с ключом (Hash Message Authentication Code) для аутентификации.

Параметры аутентификации AWS следующие:

  • Ключ доступа : значение ключа доступа API.
  • Секретный ключ : значение секретного ключа API.

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

В заголовке запроса это выглядит так:

  Авторизация: AWS4-HMAC-SHA256 Учетные данные = abc / 20200618 / us-east-1 / execute-api / aws4_request, SignedHeaders = host; x-amz-date, Signature = c6c85d0eb7b56076609570f4db1401720827d09
  

Вывод:

В этом руководстве мы увидели, как можно использовать заголовок запроса авторизации different-2 для вызовов API. Я надеюсь, что это руководство поможет вам разобраться в заголовках запросов на авторизацию.

HTTP-аутентификация | HttpWatch

HTTP поддерживает использование нескольких аутентификаций. механизмы контроля доступа к страницам и другим ресурсам. Все эти механизмы основаны на использовании 401 код состояния и заголовок ответа WWW-Authenticate .

Наиболее широко используемые механизмы аутентификации HTTP:

Базовый

Клиент отправляет имя пользователя и пароль как незашифрованный текст в кодировке base64.Это должно только использоваться с HTTPS, так как пароль можно легко захвачены и повторно использованы через HTTP.

Дайджест

Клиент отправляет хешированную форму пароль к серверу. Хотя пароль не может быть захвачен через HTTP, возможно, запросы на воспроизведение с использованием хешированного пароля.

NTLM

Использует безопасный запрос / ответ механизм, предотвращающий захват или воспроизведение пароля атаки через HTTP.Однако аутентификация на соединение и будет работать только с HTTP / 1.1 постоянные соединения. По этой причине он не может работать через все HTTP-прокси и может ввести большое количество сетевых обходов, если соединения регулярно закрываются веб-сервером.

В этом разделе мы обсудим только основные механизм аутентификации, но более подробная информация о HTTP-аутентификацию можно найти в RFC 2617.

10.1 Базовая аутентификация

Если HTTP получает анонимный запрос на защищенный ресурс, он может принудительно использовать обычную проверку подлинности отклонение запроса с помощью номера 401 (доступ запрещен) код состояния и установка WWW-Authenticate заголовок ответа, как показано ниже:

  HTTP / 1.1 401 Доступ запрещен
WWW-аутентификация: Basic realm = "Мой сервер"
Content-Length: 0  

Слово Basic в WWW-Authenticate выбирает механизм аутентификации, который HTTP клиент должен использовать для доступа к ресурсу.Царство строка может быть установлена ​​на любое значение, чтобы идентифицировать безопасный область и может использоваться HTTP-клиентами для управления паролями.

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

  GET / securefiles / HTTP / 1.1
Хост: www.httpwatch.com
Авторизация: Базовая aHR0cHdhdGNoOmY =  

Авторизация определяет аутентификацию механизм (в данном случае Basic ), за которым следует имя пользователя и пароль. Хотя, строка aHR0cHdhdGNoOmY = может выглядеть зашифрованным, это просто Версия : в кодировке base64. В этом Например, незакодированная строка "httpwatch: foo" использовался и будет доступен всем, кто может перехватить HTTP-запрос.

Использование HttpWatch с примером 10

Чтобы просмотреть использование HTTP-аутентификации на этом страница:

  1. Откройте HttpWatch, щелкнув правой кнопкой мыши веб-страницу и выбрав HttpWatch из контекстного меню
  2. Нажмите Record , чтобы начать регистрацию запросов. в HttpWatch
  3. Нажмите кнопку Display Image выше
  4. Получен ответ 401 и логин отображается диалоговое окно.
  5. Если вы вводите имя пользователя httpwatch и некоторый уникальный текст в качестве пароля, запрос будет успешно обработан с 200 ответов.
  6. Выберите вкладку Заголовки , чтобы просмотреть использование WWW-Authenticate и Авторизовать заголовков
<9. Разбиение на части Кодировка 11. HTTPS>

Использование базовой аутентификации для доступа к Edge API | Apigee Edge

Вы просматриваете документацию Apigee Edge.
См. Документацию Apigee X.

Вы можете использовать базовую аутентификацию для доступа к Edge API для вашего Edge for the Cloud учетная запись. С помощью базовой аутентификации вы передаете свои учетные данные (адрес электронной почты вашей учетной записи Apigee и пароль) в каждом запросе к Edge API.

Обычная проверка подлинности - наименее безопасный из поддерживаемых механизмов проверки подлинности. Ваш учетные данные не шифруются и не хешируются; они только в кодировке Base64. Вместо базового Аутентификация, Apigee рекомендует использовать OAuth3 или SAML для доступа к Edge API.

ПРЕДУПРЕЖДЕНИЕ
Если в вашей учетной записи Apigee включена MFA, Обычная проверка подлинности не работает. Apigee рекомендует использовать токены OAuth3 с авторизацией на предъявителя для доступа к Edge API.

Для получения дополнительной информации об использовании OAuth3 и доступных служебных программах Apigee acurl и get_token , см. Использование OAuth3 для доступа к Edge API. Для информации о миграции с curl см. Миграция с curl.

В будущем Apigee откажется от базовой аутентификации как средства аутентификации на пограничном сервере.

Базовый формат аутентификации

Вы можете передать свои учетные данные как заголовок в кодировке Base64 или как параметры в HTTP клиент.

Когда вы передаете свои учетные данные в заголовке, вы должны закодировать их в кодировке Base64. Следующий это пример закодированного заголовка HTTP Basic Authentication:

 Авторизация: Базовая YWhhbWlsdG9uQGFwaWdlZS5jb206bXlwYXNzdzByZAo 

С таким клиентом, как curl , вы передаете свои учетные данные с помощью -u вариант, как показано в следующем примере:

 завиток https: // api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u  email_address :  пароль  

curl кодирует ваш адрес электронной почты и пароль и добавляет их в запрос Авторизация заголовок для вас.

Если вы не укажете пароль, вам будет предложено его ввести.

Обратите внимание, что вы должны использовать адрес электронной почты своей учетной записи Apigee, а не свое имя пользователя в Edge. Вызовы API.

Доступ к Edge API с помощью curl

Вы также можете вручную установить запрос заголовка Authorization при использовании curl для доступа к Edge API.

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

Для ручной настройки заголовков и доступа к Edge API с помощью curl :

  1. Base64 закодирует ваш адрес электронной почты и пароль с помощью такого инструмента, как base64 . Для пример:
        читает -es PASS 
        echo -n [email protected]: $ PASS | base64  

    Инструмент base64 возвращает закодированную строку:

     YWhhbWlsdG9uQGFwaWdlZS5jb206bXlwYXNzdzByZAo = 
  2. Добавьте закодированную строку в заголовок Authorization в Edge API запрос, как показано в следующем примере:
          читает -es PASS 
          ОСНОВНОЙ = $ (echo -n ahamilton @ apigee.com: $ PASS | base64 
          curl  -H "Авторизация: Basic $ BASIC"  \
        https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
        {
        "createdAt": 1491854501264,
        "createdBy": "[email protected]",
        "displayName": "ахамильтон",
        "среда": ["продукт", "тест"],
        "lastModifiedAt": 1491854501264,
        "lastModifiedBy": "[email protected]",
        "name": "ахамильтон",
        "характеристики" : {
        "имущество" : [ {
        "name": "features.isSmbOrganization",
        "значение": "ложь"
        }, {
        "имя": "особенности.isCpsEnabled ",
        "значение": "истина"
        }]
        },
        "тип": "испытание"
        }  

Этот запрос содержит подробную информацию об организации "ahamilton-eval". Для получения полного списка Конечные точки API Edge, см. Справочник по API Apigee Edge.

Вы должны включать заголовок Authorization в каждый запрос.

Отключить базовую аутентификацию

Вы можете отключить базовую аутентификацию (пока включен OAuth3 или SAML), отправив запрос в поддержку Apigee.

Рекомендации по написанию сценариев

В некоторых ситуациях сбор пароля при запуске сценария нецелесообразен. Для Например, вам может потребоваться запустить задание cron, которое запускается, когда администраторы отсутствуют. В этих ситуации, вам необходимо сделать пароль доступным для сценария без участия человека вмешательство.

Следуйте этим рекомендациям:

  1. Централизовать учетные данные в одном файле, который используется в качестве источника для программ и сценарии, которые вы пишете
  2. Защитите исходный файл учетных данных, насколько это возможно, с помощью средств безопасности файловой системы и разрешения
  3. Создайте клиент автоматизации с сильно ограниченными разрешениями на определенные ресурсы в ваша организация.
Примечание : пользователи компьютера не могут использовать MFA. Вы должны отключить MFA для пользователей компьютеров, независимо от того, используете ли вы базовую аутентификацию с помощью команды curl. или используя утилиты acurl и get_token с OAuth3. См. OAuth3 для пользователей компьютеров для пример сценария с использованием этих утилит Apigee, который не требует MFA.

HTTP Basic Authentication - LemonLDAP :: NG 2.0 документация

Презентация

Внимание

На данный момент эта функция поддерживается только Apache. обработчик.

Выдержка из Википедии статья:

В контексте транзакции HTTP базовая аутентификация доступа - это метод, позволяющий веб-браузеру или другой клиентской программе предоставить учетные данные - в виде имени пользователя и пароля - когда сделать запрос.

Перед передачей имя пользователя и пароль кодируются как последовательность символов base-64. Например, имя пользователя Aladdin и пароль открытый кунжут будет объединен как Аладдин: открытый кунжут, который эквивалент QWxhZGRpbjpvcGVuIHNlc2FtZQ == при кодировании в Base64.Чтобы перевести закодированную строку обратно в имя пользователя и пароль, и многие популярные инструменты безопасности расшифруют струны «на лету».

Таким образом, базовая аутентификация HTTP управляется через заголовок HTTP. ( Авторизация ), которую LL :: NG может подделать с помощью этого меры предосторожности:

  • Данные не должны содержать диакритических знаков или специальных символов, поскольку HTTP протокол допускает только значения ASCII в заголовке (но в зависимости от HTTP сервер, вы можете использовать значения в кодировке ISO)
  • Вам необходимо переслать пароль, который может быть основным паролем пользователя. (если пароль хранится в сеансе или любой другой атрибут пользователя (если вы храните вторичные пароли в базе данных пользователей).

Конфигурация

Базовая аутентификация полагается на определенный HTTP-заголовок, как описано выше. Итак, вам нужно просто объявить этот заголовок для виртуального хоста в Менеджер.

Например, для пересылки логина ( $ uid ) и пароля ( $ _password , если пароль хранится в сеансе):

 Авторизация => "Базовая" .encode_base64 ("$ uid: $ _ пароль", "")
 

LL :: NG предоставляет специальную функцию с именем базовый для создания этого заголовка.

Итак, приведенный выше пример можно записать так:

 Авторизация => базовая ($ uid, $ _ пароль)
 

Подсказка

Базовая функция также вызовет преобразование из UTF-8 ISO-8859-1, который должен быть принят большинством HTTP-серверов.

Обычная проверка подлинности | Справочные руководства Fastly