На этой странице показано, как разрешить клиентам REST аутентифицироваться, используя базовую аутентификацию с именем пользователя и паролем.
Прежде чем вы начнете
Вы выбрали правильный метод аутентификации?
- Рассмотриваете OAuth? Мы рекомендуем использовать OAuth для базовой аутентификации, если вы не создаете такие инструменты, как личные скрипты или боты. При базовой аутентификации имя пользователя и пароль отправляются повторно с запросами и кэшируются в веб-браузере, что намного менее безопасно, чем OAuth (даже если учетные данные отправляются через SSL / TLS для базового HTTP). OAuth требует больше работы для реализации, но использует рабочий процесс на основе токенов, который намного более безопасен.
Этот учебник был последний раз проверен с помощью Jira Server 7.0.
Обзор
Jira REST API защищен теми же ограничениями, которые предоставляются через стандартный веб-интерфейс Jira. Это означает, что если вы не входите в систему, вы получаете доступ к Jira анонимно. Кроме того, если вы входите в систему и не имеете разрешения на просмотр чего-либо в Jira, вы не сможете просматривать его с помощью API JRE REST.
В большинстве случаев первым шагом в использовании JRE REST API является проверка подлинности учетной записи пользователя на вашем сайте Jira. Любая проверка подлинности, которая работает против Jira, будет работать против API REST. На этой странице мы покажем вам простой пример базовой проверки подлинности.
Простой пример
Для этого примера используется утилита curl. Однако вы можете использовать любой другой инструмент для отправки этих запросов.
Большинство клиентских программ обеспечивает простой механизм для предоставления имени пользователя и пароля и автоматически создает необходимые заголовки аутентификации. Например, вы можете указать аргумент -u с утилитой curl следующим образом:
curl -D- -u username:password -X GET -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue/createmeta
Поставка основных заголовков auth
Если вам нужно, вы можете самостоятельно создавать и отправлять Basic auth headers.
Выполните следующие действия:
- Создайте строку имени пользователя: пароль.
- Base64 кодирует строку.
- Поставьте заголовок «Авторизация» с содержимым «Базовый», за которым следует закодированная строка. Например, строка «fred: fred» кодируется в «ZnJlZDpmcmVk» в base64, поэтому вы должны сделать запрос следующим образом:
curl -D- -X GET -H "Authorization: Basic ZnJlZDpmcmVk" -H "Content-Type: application/json" "http://localhost:8080/rest/api/2/issue/QA-31"
Расширенные темы
Проблемы с аутентификацией
Поскольку Jira разрешает уровень доступа к анонимным пользователям по умолчанию, он не предоставляет типичную проверку подлинности.
Некоторые HTTP-клиентские программы ожидают получить проверку подлинности перед отправкой заголовка авторизации. Это означает, что он может вести себя не так, как ожидалось. В этом случае вам может потребоваться настроить его для предоставления заголовка авторизации, как описано выше, а не полагаться на его механизм по умолчанию.
CAPTCHA
CAPTCHA «запускается» после нескольких последовательных неудачных попыток входа в систему, после чего пользователь должен интерпретировать искаженное изображение слова и вводить это слово в текстовое поле с каждой последующей попыткой входа в систему. Если CAPTCHA была запущена, вы не можете использовать API REST Jira для аутентификации с сайтом Jira.
Вы можете проверить это в ответе об ошибке от Jira. Если есть заголовок X-Seraph-LoginReason со значением AUTHENTICATION_DENIED, это означает, что приложение отклонило логин, даже не проверив пароль. Это наиболее распространенное указание на то, что функция CAPTCHA от Jira была запущена.
Следующие шаги
- Прочтите обзор безопасности: узнайте разницу между аутентификацией и авторизацией, а также то, как пользователи авторизованы в Jira.
-
Ознакомьтесь с API Jira REST:
- Jira платформы REST API.
- JRE Software Server REST API.
- JRE Service Desk REST API.
По материалам Atlassian JIRA Server Developer Basic authentication