Подтвердить что ты не робот

Основная команда авторизации для завитки

Как настроить основную авторизацию с использованием 64 кодированных учетных данных? Я пробовал под этими двумя командами, но бесполезно, пожалуйста, предлагайте.

curl -i -H 'Accept:application/json' Authorization:Basic <username:password> http://example.com
curl -i -H 'Accept:application/json' Authorization:Basic.base64_encode(username:password) http://example.com  
4b9b3361

Ответ 1

Используйте заголовок -H еще раз перед авторизацией: основные вещи. Так будет

curl -i \
    -H 'Accept:application/json' \
    -H 'Authorization:Basic username:password' \
    http://example.com

Ответ 2

Как настроить основную авторизацию?

Все, что вам нужно сделать, это использовать -u, --user USER[:PASSWORD]. За кулисами curl строит заголовок Authorization с вашими учетными данными base64 для вас.

Пример:

curl -u username:password -i -H 'Accept:application/json' http://example.com

Ответ 3

Один из способов, предоставить флаг --user как часть curl, следующим образом:

curl --user username:password http://example.com

Другой способ - получить закодированный Base64 токен "username: password" с любого веб-сайта, такого как https://www.base64encode.org/, и передать его в качестве заголовка Authorization curl следующим образом:

curl -i -H 'Authorization:Basic dXNlcm5hbWU6cGFzc3dvcmQ=' http://localhost:8080/

Здесь dXNlcm5hbWU6cGFzc3dvcmQ= - это кодированный Base64 токен имени username:password.

Ответ 4

Фон

Вы можете использовать инструмент CLI base64 для создания версии вашего имени пользователя и пароля в кодировке base64 следующим образом:

$ echo -n "joeuser:secretpass" | base64
am9ldXNlcjpzZWNyZXRwYXNz

-or-

$ base64 <<<"joeuser:secretpass"
am9ldXNlcjpzZWNyZXRwYXNzCg==

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

$ echo -n "joeuser:secretpass" | base64 | base64 -D
joeuser:secretpass

-or-

$ base64 <<<"joeuser:secretpass" | base64 -D
joeuser:secretpass

ПРИМЕЧАНИЕ: имя пользователя = joeuser, пароль = секретный пароль

Пример № 1 - использование -H

Вы можете сложить это вместе в curl:

$ curl -H "Authorization: Basic $(base64 <<<"joeuser:secretpass")" http://example.com

Пример № 2 - использование -u

Большинство, вероятно, согласятся с тем, что если вы собираетесь заняться этим, то вы можете просто использовать опцию curl -u.

$ curl --help |grep -- "--user "
 -u, --user USER[:PASSWORD]  Server user and password

Например:

$ curl -u someuser:secretpass http://example.com

Но вы можете сделать это более безопасным способом, если храните свои учетные данные в зашифрованном хранилище, таком как LastPass или Pass.

Например, здесь я использую CLI-инструмент LastPass, lpass, чтобы получить свои учетные данные:

$ curl -u $(lpass show --username example.com):$(lpass show --password example.com) \
     http://example.com

Пример №3 - использование конфигурации curl

Там еще безопасный способ передать свои полномочия прочь к curl, хотя. Этот метод использует переключатель -K.

$ curl -X GET -K \
    <(cat <<<"user = \"$(lpass show --username example.com):$(lpass show --password example.com)\"") \
    http://example.com

При использовании ваши данные остаются скрытыми, так как они передаются в curl через временный дескриптор файла, например:

+ curl -skK /dev/fd/63 -XGET -H 'Content-Type: application/json' https://es-data-01a.example.com:9200/_cat/health
++ cat
+++ lpass show --username example.com
+++ lpass show --password example.com
1561075296 00:01:36 rdu-es-01 green 9 6 2171 1085 0 0 0 0 - 100.0%       

ПРИМЕЧАНИЕ: выше я общаюсь с одним из наших узлов Elasticsearch, спрашивая о состоянии кластера.

Этот метод динамически создает файл с содержимым user = "<username>:<password>" и передает его в curl.

Базовая авторизация HTTP

Методы, показанные выше, облегчают функцию, известную как базовая авторизация, которая является частью стандарта HTTP.

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

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

  1. Имя пользователя и пароль объединяются одним двоеточием (:). Это означает, что само имя пользователя не может содержать двоеточие.
  2. Результирующая строка кодируется в последовательность октетов. Набор символов, используемый для этой кодировки, по умолчанию не определен, если он совместим с US-ASCII, но сервер может предложить использовать UTF-8, отправив параметр charset.
  3. Результирующая строка кодируется с использованием варианта Base64.
  4. Метод авторизации и пробел (например, "Базовый") затем добавляются к кодированной строке.

Например, если браузер использует Aladdin в качестве имени пользователя и OpenSesame в качестве пароля, то значением поля является base64-кодировка Aladdin: OpenSesame или QWxhZGRpbjpPcGVuU2VzYW1l. Тогда заголовок авторизации будет выглядеть так:

Авторизация: базовая QWxhZGRpbjpPcGVuU2VzYW1l

Источник: Базовая аутентификация доступа