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

  1. Создайте запрос GET и введите конечную точку как https://postman-echo.com/basic-auth

Нажмите отправьте и посмотрите на ответ

Примечание : Код состояния 401 соответствует несанкционированному доступу, а ответное сообщение гласит: Несанкционировано .

Код состояния и ответ сервера указывают на то, что мы не авторизованы для доступа к API , к которому мы пытаемся получить доступ( См. Ответы учебника  подробнее **). Позже в этом руководстве мы попытаемся получить доступ к тому же API , используя учетные данные, которые обсуждались в предыдущем разделе.

Необходимость авторизации

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

Базовая аутентификация доступа / Базовая аутентификация HTTP

A Базовая аутентификация доступа — самый простой и базовый доступный тип авторизации. Требуется всего имя пользователя и пароль для проверки авторизации любого лица ( Вот почему мы говорим базовый доступ аутентификация ). Имя пользователя и пароль отправляются как значения заголовка в заголовке авторизации . При использовании обычной аутентификации мы добавляем слово Basic перед вводом имени пользователя и пароля. Эти значения имени пользователя и пароля должны быть закодированы с помощью Base64, иначе сервер не сможет их распознать . Мы выполним следующие шаги, чтобы проверить, можем ли мы получить доступ к тому же API, который мы использовали выше, или нет

.

Проверка авторизации с использованием учетных данных

1.Введите конечную точку https://postman-echo.com/basic-auth в запросе GET .

  1. Перейти к Коллекторы
  1. Введите следующие пары "ключ-значение" в заголовок

Авторизация:    Базовый почтальон: пароль

Примечание : Мы используем имя пользователя как почтальон и пароль как пароль

  1. Нажмите Отправьте и увидите окно ответа и код состояния.

Он по-прежнему говорит 400 , Неверный запрос .( Эту часть мы уже рассмотрели в Ответы Глава  в разделе Коды состояния и их значение ). Можете ли вы догадаться, почему?*** Если вы помните, что мы узнали в предыдущем разделе, базовая аутентификация доступа требует, чтобы имя пользователя и пароль были закодированы в Base64, но здесь мы просто отправили имя пользователя и пароль в виде простого текста. В результате сервер вернул код состояния 400, Bad Request. Прежде чем двигаться дальше, будет полезно понять, что такое кодировка Base64 .

Что такое кодировка Base64?

Кодировка

используется при аутентификации, потому что мы не хотим, чтобы наши данные передавались напрямую по сети. Тому есть множество причин. Сетевые сканеры могут прочитать ваш запрос и получить имя пользователя и пароль, отправленные без кодирования. Кроме того, биты и байты, передаваемые напрямую, могут рассматриваться модемом или другим оборудованием в сетевой цепочке как встроенные командные биты. Например, если есть встроенная команда 0101101010 , что означает сброс модема, то при передаче мы можем захотеть получить последовательность данных 001101010 0101101010 11020. Здесь модем может интерпретировать это как команду сброса и сбросит себя . Чтобы избежать таких проблем, полезно кодировать данные.

Мы используем base64 , в частности, потому что он передает данные в текстовой форме и отправляет их в более простой форме, такой как данные формы HTML. Мы используем Base64 , особенно потому, что мы можем полагаться на одни и те же 64 символа в любом используемом языке кодирования. Хотя мы также можем использовать методы более высокого базового кодирования, но их очень сложно преобразовать и передать, что приводит к ненужной трате времени.

Возвращаясь к исходной проблеме с отправкой закодированной строки Base64 в заголовке Authorization . У нас есть два способа создать закодированную строку Base64 :

  • Через веб-сайт третьей стороны
  • Через почтальона

Мы увидим оба варианта один за другим. А пока выполните шаги для доступа к API путем декодирования со стороннего веб-сайта.

Аутентификация путем кодирования через сторонний веб-сайт

  1. Перейти на https://www.base64encode.org/

Примечание : Для той же цели доступны тысячи веб-сайтов. Вы можете использовать любого, просто убедитесь, что вы кодируете то же значение, что и мы. Кроме того, мы используем Microsoft Edge в качестве браузера, хотя это не должно иметь никакого значения .

  1. Вставьте в поле следующие значения

почтальон: пароль

3.Нажмите Закодируйте .

  1. Скопируйте закодированный текст.

Примечание : Не используйте пробелы между любыми двумя текстами или символами. почтальон: пароль будет кодироваться в другое значение, а 9Почтальон 0083: пароль будет закодирован в другой. Излишне говорить, что оба будут считаться неправильными. Используйте почтальон : пароль только .

  1. Зайдите в приложение почтальона и вместо почтальон: пароль вставьте закодированное значение
  1. Нажмите , отправьте и посмотрите значение в поле ответа и код состояния.

200 OK, аутентификация означает, что мы предоставили правильные учетные данные и теперь у нас есть доступ к данным.

Аутентификация путем кодирования через Postman

Вместо перехода на сторонний сайт попробуем закодировать с помощью Postman.

  1. Сотрите пару ключ-значение, которую мы ввели ранее, чтобы она теперь не имела значений.
  1. Перейти на вкладку авторизация

3.Выберите Basic Auth в раскрывающемся списке Type

4.Введите имя пользователя как почтальон и пароль как пароль

5.Нажмите Запрос предварительного просмотра

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

7.Нажмите отправить и вуаля! мы аутентифицированы.

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