Curl basic authorization php: rest — How do I make a request using HTTP basic authentication with PHP curl?
Содержание
Basic Authentication
OAS 3 Это руководство предназначено для OpenAPI 3.0. Если вы используете OpenAPI 2.0, см. наше руководство по OpenAPI 2.0.
Базовая аутентификация — это простая схема аутентификации, встроенная в протокол HTTP. Клиент отправляет HTTP-запросы с заголовком Authorization
, который содержит слово Basic
, за которым следует пробел и строка в кодировке base64 username:password
. Например, чтобы авторизоваться как demo / p@55w0rd
, клиент отправит
Авторизация: базовая ZGVtbzpwQDU1dzByZA==
Примечание: Поскольку base64 легко декодируется, базовую аутентификацию следует использовать только вместе с другими механизмами безопасности, такими как HTTPS/SSL.
Описание базовой аутентификации
Используя OpenAPI 3.0, вы можете описать обычную аутентификацию следующим образом:
опенапи: 3. 0.0
...
компоненты:
схемы безопасности:
basicAuth: # <-- произвольное имя схемы безопасности
тип: http
схема: базовая
безопасность:
- basicAuth: [] # <-- используйте здесь то же имя
Первый раздел, securitySchemes
, определяет схему безопасности с именем basicAuth (произвольное имя). Эта схема должна иметь тип : http
и схему : базовая
. Раздел security
затем применяет обычную аутентификацию ко всему API. Квадратные скобки []
обозначают используемые области безопасности; список пуст, поскольку обычная проверка подлинности не использует области. безопасность
может быть установлена глобально (как в примере выше) или на уровне операции. Последнее полезно, если только часть операций требует базовой аутентификации:
путей:
/что-нибудь:
получать:
безопасность:
- BasicAuth: []
Обычную аутентификацию также можно комбинировать с другими методами аутентификации, как описано в разделе Использование нескольких типов аутентификации.
401 Ответ
Вы также можете определить ответ 401 «Неавторизованный», возвращаемый для запросов с отсутствующими или неправильными учетными данными. Этот ответ включает заголовок WWW-Authenticate
, который вы можете упомянуть. Как и в случае с другими распространенными ответами, ответ 401 может быть определен в глобальном компоненты/ответы в разделе
и ссылки в другом месте через $ref
.
путей:
/что-нибудь:
получать:
...
ответы:
...
«401»:
$ref: '#/компоненты/ответы/UnauthorizedError'
почта:
...
ответы:
...
«401»:
$ref: '#/компоненты/ответы/UnauthorizedError'
...
компоненты:
ответы:
Несанкционированная ошибка:
описание: Информация для аутентификации отсутствует или недействительна
заголовки:
WWW_Аутентификация:
схема:
тип: строка
Дополнительные сведения о синтаксисе ответов
см. в разделе Описание ответов.
Не нашли то, что искали? Спросите сообщество
Нашли ошибку? Дайте нам знать
Как установить базовую аутентификацию в Postman для вызова REST
В предыдущих уроках мы получили в свои руки Postman и узнали, как использовать его в реальной жизни. Мы обсудили предварительный запрос и как мы можем динамически изменять значения переменных перед отправкой запросов. В почтальон навигации мы узнали, что нам нужна авторизация для доступа к защищенным серверам. Авторизация — самая важная часть при работе с защищенными серверами, что чаще всего происходит. Мы узнаем о
- Авторизация и аутентификация
- Авторизация и аутентификация
- Необходимость авторизации
- Базовая аутентификация в Postman
Вы также можете просмотреть запись Учебника Почтальона, где наши эксперты подробно объяснили концепции.
Что такое базовая аутентификация?
Базовая аутентификация в Postman: https://youtu.be/vrGRThiZ9CW
Что такое авторизация?
Значение авторизации можно рассматривать как вопрос: имеем ли мы право на доступ к защищенному ресурсу на сервере? Если ответ положительный, то технически можно сказать, что мы авторизованы для доступа к ресурсу. Если ответ Нет, мы можем сказать, что мы не авторизованы для доступа к ресурсу. Допустим, вы добавили в свой телефон отпечатки пальцев себя и своей сестры. Вы и ваша сестра можете открыть один и тот же мобильный телефон, что означает, что только вы и ваша сестра имеете право открывать телефон и просматривать данные . Точно так же, хотя в компании или проекте может быть много API . Не обязательно, чтобы у всех был доступ ко всем API. Только авторизованные пользователи могут получить доступ к защищенным API.
Авторизация и аутентификация
Авторизация и Аутентификация — два тесно связанных термина. Эти два термина также могут поначалу сбивать с толку. В этом разделе мы устраним путаницу в отношении этих двух терминов.
Аутентификация — это процесс представления ваших учетных данных системе и проверки системой ваших учетных данных. Эти учетные данные говорят системе о том, кто вы есть. Это позволяет системе обеспечивать и подтверждать личность пользователя. Здесь системой может быть что угодно, это может быть компьютер, телефон, банк или любое физическое офисное помещение.
Принимая во внимание, что Авторизация — это процесс разрешения или запрещения кому-либо доступа к чему-либо, один раз Аутентификация выполнена. Таким образом, с точки зрения непрофессионала Аутентификация говорит, кто вы, а Авторизация говорит, что вы можете делать .
Когда человек обращается к серверу с помощью ключа/пароля , сервер проверяет, доступен ли человек в каталоге, а также связан ли он с тем же ключом/паролем . Если это так, вы можете идти (Аутентификация). Если у вас есть доступ к ресурсу, то вам будет предоставлен доступ к ресурсу (Авторизованный) .
Мы рассмотрим следующий короткий пример, чтобы рассказать вам, как сервер отклоняет неавторизованного пользователя.
Авторизация с помощью Postman
Проверка авторизации
В этой главе мы будем использовать конечную точку https://postman-echo. com/basic-auth
- Создайте запрос GET и введите конечную точку как https://postman-echo.com/basic-auth
Нажмите отправьте и посмотрите на ответ
Примечание : Код состояния 401 соответствует несанкционированному доступу, а ответное сообщение гласит: Несанкционировано .
Код состояния и ответ сервера указывают на то, что мы не авторизованы для доступа к API , к которому мы пытаемся получить доступ( См. Ответы учебника подробнее **). Позже в этом руководстве мы попытаемся получить доступ к тому же API , используя учетные данные, которые обсуждались в предыдущем разделе.
Необходимость авторизации
В предыдущем разделе мы обсуждали, что владелец ресурса не разрешает доступ к ресурсам всем в компании. Это потому, что это может привести к возможным нарушениям безопасности. Если я позволю стажеру получить доступ к API моей базы данных, то он может непреднамеренно изменить данные, и эти данные могут быть потеряны навсегда, что может дорого обойтись компании . Тому же может быть множество причин. Может быть, человек меняет данные за деньги или человек может слить данные другой компании. Авторизация играет очень важную роль в разрешении доступа и усилении безопасности. Давайте посмотрим, какие типы аутентификации нам доступны.
Базовая аутентификация доступа / Базовая аутентификация HTTP
A Базовая аутентификация доступа — самый простой и базовый доступный тип авторизации. Требуется всего имя пользователя и пароль для проверки авторизации любого лица ( Вот почему мы говорим базовый доступ аутентификация ). Имя пользователя и пароль отправляются как значения заголовка в заголовке авторизации . При использовании обычной аутентификации мы добавляем слово Basic перед вводом имени пользователя и пароля. Эти значения имени пользователя и пароля должны быть закодированы с помощью Base64, иначе сервер не сможет их распознать . Мы выполним следующие шаги, чтобы проверить, можем ли мы получить доступ к тому же API, который мы использовали выше, или нет
.
Проверка авторизации с использованием учетных данных
1.Введите конечную точку https://postman-echo.com/basic-auth в запросе GET .
- Перейти к Коллекторы
- Введите следующие пары "ключ-значение" в заголовок
Авторизация: Базовый почтальон: пароль
Примечание : Мы используем имя пользователя как почтальон и пароль как пароль
- Нажмите Отправьте и увидите окно ответа и код состояния.
Он по-прежнему говорит 400 , Неверный запрос .( Эту часть мы уже рассмотрели в Ответы Глава в разделе Коды состояния и их значение ). Можете ли вы догадаться, почему?*** Если вы помните, что мы узнали в предыдущем разделе, базовая аутентификация доступа требует, чтобы имя пользователя и пароль были закодированы в Base64, но здесь мы просто отправили имя пользователя и пароль в виде простого текста. В результате сервер вернул код состояния 400, Bad Request. Прежде чем двигаться дальше, будет полезно понять, что такое кодировка Base64 .
Что такое кодировка Base64?
Кодировка
используется при аутентификации, потому что мы не хотим, чтобы наши данные передавались напрямую по сети. Тому есть множество причин. Сетевые сканеры могут прочитать ваш запрос и получить имя пользователя и пароль, отправленные без кодирования. Кроме того, биты и байты, передаваемые напрямую, могут рассматриваться модемом или другим оборудованием в сетевой цепочке как встроенные командные биты. Например, если есть встроенная команда 0101101010 , что означает сброс модема, то при передаче мы можем захотеть получить последовательность данных 001101010 0101101010 11020. Здесь модем может интерпретировать это как команду сброса и сбросит себя . Чтобы избежать таких проблем, полезно кодировать данные.
Мы используем base64 , в частности, потому что он передает данные в текстовой форме и отправляет их в более простой форме, такой как данные формы HTML. Мы используем Base64 , особенно потому, что мы можем полагаться на одни и те же 64 символа в любом используемом языке кодирования. Хотя мы также можем использовать методы более высокого базового кодирования, но их очень сложно преобразовать и передать, что приводит к ненужной трате времени.
Возвращаясь к исходной проблеме с отправкой закодированной строки Base64 в заголовке Authorization . У нас есть два способа создать закодированную строку Base64 :
- Через веб-сайт третьей стороны
- Через почтальона
Мы увидим оба варианта один за другим. А пока выполните шаги для доступа к API путем декодирования со стороннего веб-сайта.
Аутентификация путем кодирования через сторонний веб-сайт
- Перейти на https://www.base64encode.org/
Примечание : Для той же цели доступны тысячи веб-сайтов. Вы можете использовать любого, просто убедитесь, что вы кодируете то же значение, что и мы. Кроме того, мы используем Microsoft Edge в качестве браузера, хотя это не должно иметь никакого значения .
- Вставьте в поле следующие значения
почтальон: пароль
3.Нажмите Закодируйте .
- Скопируйте закодированный текст.
Примечание : Не используйте пробелы между любыми двумя текстами или символами. почтальон: пароль будет кодироваться в другое значение, а 9Почтальон 0083: пароль будет закодирован в другой. Излишне говорить, что оба будут считаться неправильными. Используйте почтальон : пароль только .
- Зайдите в приложение почтальона и вместо почтальон: пароль вставьте закодированное значение
- Нажмите , отправьте и посмотрите значение в поле ответа и код состояния.
200 OK, аутентификация означает, что мы предоставили правильные учетные данные и теперь у нас есть доступ к данным.
Аутентификация путем кодирования через Postman
Вместо перехода на сторонний сайт попробуем закодировать с помощью Postman.
- Сотрите пару ключ-значение, которую мы ввели ранее, чтобы она теперь не имела значений.
- Перейти на вкладку авторизация
3.Выберите Basic Auth в раскрывающемся списке Type
4.Введите имя пользователя как почтальон и пароль как пароль
5.Нажмите Запрос предварительного просмотра
- Перейдите к заголовку и убедитесь, что Почтальон преобразовал для вас имя пользователя и пароль.
7.Нажмите отправить и вуаля! мы аутентифицированы.
На этом мы завершаем наш урок. Надеюсь, вы много узнали об основных авторизациях в Postman. Это не так уж сложно, но никогда не помешает просто еще раз пройти обучение, чтобы получить хорошую руку на Authorization .