sourcePath |
---|
ru/tracker/api-ref/concepts/access.md |
Для доступа приложений к {{ api-name }} используется авторизация по протоколу OAuth 2.0.
Если ваше приложение написано на языке Python, для вызова API вы можете использовать Python-клиент.
В запросах к {{ api-short-name }} указывайте заголовки:
-
Host: {{ host }}
-
Authorization: OAuth <OAuth-токен>
— при доступе по протоколу OAuth 2.0.Authorization: Bearer <IAM-токен>
— при доступе при помощи IAM-токена. -
X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации>
Если у вас только организация {{ org-full-name }}, используйте заголовок
X-Cloud-Org-ID
, если только {{ ya-360 }} или оба типа организаций —X-Org-ID
.Скопировать идентификатор организации можно на [странице организаций {{ tracker-name }}]({{ link-tracker }}admin/orgs).
Протокол OAuth 2.0 позволяет приложениям работать с сервисами Яндекса от имени пользователя. С базовыми принципами OAuth, а также с особенностями реализации протокола в Яндексе вы можете ознакомиться в [документации сервиса OAuth для Яндекс ID]({{ link-OAuth-dev-guide }}).
Чтобы получить доступ к {{ api-name }}:
-
[Зарегистрируйте]({{ link-OAuth-register }}/#access-note) приложение в сервисе [Яндекс OAuth]({{ link-OAuth }}):
-
Перейдите по прямой ссылке [{{ link-OAuth }}client/new/]({{ link-OAuth }}client/new/).
-
В разделе Платформы приложения выберите платформу и укажите ее параметры.
Если вы разрабатываете или тестируете приложение, используйте [отладочный токен]({{ link-OAuth-debug-token }}). Для получения такого токена выберите Веб-сервисы и в поле Redirect URI подставьте значение по умолчанию, которое появится в подсказке Подставить URL для отладки:
{{ link-OAuth }}verification_code
. -
В разделе Доступ к данным выберите доступы к {{ tracker-name }}, которые необходимы приложению:
-
Запись в трекер (tracker:write) — все операции с данными: создание, удаление, редактирование.
-
Чтение из трекера (tracker:read) — только чтение данных.
-
-
-
Получите OAuth-токен:
-
В личном кабинете [Яндекс OAuth]({{ link-OAuth }}) выберите созданное ранее приложение и скопируйте его идентификатор из поля ClientID. Затем сформируйте ссылку для запроса токена:
{{ link-OAuth }}authorize?response_type=token&client_id=<идентификатор_приложения>
-
Перейдите по ссылке и скопируйте OAuth-токен.
{% note tip %}
Если для получения OAuth-токена вам требуется код подтверждения от пользователя, используйте инструкции в разделе [Запрос OAuth-токена при помощи кода подтверждения]({{ link-OAuth-codes }}).
{% endnote %}
-
-
Полученный токен используйте в заголовке
Authorization
в запросах к API {{ tracker-name }}. OAuth-токен предоставляет те же права, которые есть у аккаунта пользователя в {{ tracker-name }}. Например, если у пользователя нет прав на изменение настроек очереди, соответствующие запросы к API будут недоступны. -
Чтобы проверить наличие доступа к API, выполните запрос информации о текущем пользователе. Если доступ не был получен, запрос вернет ответ с кодом
401 Unauthorized
.
IAM-токен — уникальная последовательность символов, которая выдается пользователю после прохождения аутентификации. С помощью этого токена пользователь авторизуется в {{ api-name }} и выполняет операции с ресурсами. Подробнее об этом способе аутентификации читайте в документации сервиса идентификации и контроля доступа.
{% note info %}
IAM-токен действует не больше {{ iam-token-lifetime }} и ограничен временем жизни cookie у федерации. После истечения срока жизни вернется ошибка с кодом 401 Unauthorized
.
{% endnote %}
При разработке приложений на языке Python вы можете использовать пакет yandex_tracker_client — клиент, который облегчает работу с {{ api-short-name }}.
Чтобы начать пользоваться клиентом:
-
Скачайте и установите на свой компьютер актуальную версию Python с сайта https://www.python.org/downloads/.
-
В командной строке вашей ОС выполните команду:
pip install yandex_tracker_client
-
Получите OAuth-токен и идентификатор организации для доступа к API.
Чтобы узнать идентификатор организации, перейдите на [страницу настроек {{ tracker-name }}]({{ link-settings }}). Идентификатор указан в поле ID организации для API.
-
Инициализируйте клиент в коде вашей программы:
from yandex_tracker_client import TrackerClient client = TrackerClient(token=<OAuth-токен>, org_id=<идентификатор_организации>)
Здесь
<OAuth-токен>
— ваш OAuth-токен, а<идентификатор_организации>
— идентификатор организации.
В клиенте используйте такой же формат данных, как в API {{ tracker-name }}.
Подробнее о работе клиента и условиях использования читайте на его странице в GitHub: https://github.com/yandex/yandex_tracker_client.