Русский
  • Персональный токен доступа
  • Аутентификация

Что такое персональный токен доступа (PAT)? Более безопасный токен API

Объясните, как работают персональные токены доступа (PAT), когда их использовать, как поддерживать аутентификацию API в ваших сервисах и чем они отличаются от ключей API, токенов API, токенов Bearer, OAuth-токенов и паролей.

Ran
Ran
Product & Design

Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Начать
Product screenshot

Персональные токены доступа (PAT) — это генерируемые пользователем токены, которые заменяют пароли для вызовов API. Предназначенные для конкретных пользователей, PAT обеспечивают безопасный и контролируемый доступ к ресурсам.

Безупречная аутентификация. Гранулярный контроль доступа. Упрощённые рабочие процессы. Вот лишь несколько причин, почему разработчики и продуктовые команды по всему миру полагаются на персональные токены доступа для повышения производительности, будь то управление CI/CD-пайплайнами, интеграция API или доступ к инструментам.

Интересно, как работают PAT, в чём их преимущества или когда их использовать? Этот гид расскажет всё.

Что такое персональный токен доступа?

Персональный токен доступа — это временный и безопасный способ аутентификации для доступа к вашим персональным ресурсам и сервисам через API. В основном используется разработчиками для упрощения и автоматизации задач, таких как доступ к API или автоматизация рабочих процессов.

Представьте персональный токен доступа как «ключ» к API, который заменяет необходимость использовать пароль. В отличие от пароля, PAT имеют определённые разрешения и сроки действия, что гарантирует их использование только для нужных целей, например для доступа к пользовательским профилям или платёжным системам, но не для административного контроля.

Основные особенности персональных токенов доступа:

  • Удобны для разработчиков: Персональные токены доступа проще в управлении по сравнению с полноценными OAuth-процессами, что делает их идеальными для скриптов, автоматизации или CI/CD.
  • Несколько токенов: Пользователи могут создавать и управлять сразу несколькими персональными токенами доступа, каждый из которых предназначен для определённого сервиса или задачи.
  • Доступ, привязанный к пользователю: В отличие от глобальных ключей API, персональные токены доступа связаны с конкретными учетными записями пользователей. Это значит, что участникам команды может понадобиться создавать отдельные токены для совместного доступа.
  • Гибкие разрешения: С помощью персональных токенов доступа можно определить конкретные области прав, предоставляя доступ только к тем ресурсам и действиям, которые нужны.
  • Ограниченный по времени доступ: Персональные токены доступа могут быть настроены на автоматическое истечение срока действия, что минимизирует риски при их утечке.
  • Простое аннулирование: В отличие от паролей, персональные токены доступа можно отозвать или сгенерировать заново без риска для основных учетных данных.

Персональный токен доступа vs. Bearer-токен vs. API-токен

  1. Персональный токен доступа — это разновидность API-токена: Персональный токен доступа — это токен API на уровне пользователя, связанный с его аккаунтом. Он даёт право на доступ к системным ресурсам от имени пользователя. PAT безопаснее, чем традиционные ключи API, так как позволяют детально контролировать права (например, ограничить доступ только к определённым репозиториям или организациям) и имеют срок действия для повышения безопасности.
  2. Персональный токен доступа может использоваться как Bearer-токен: Bearer-токен — это способ авторизации API-запросов, обычно создаваемый динамически с помощью протоколов OAuth или JWT. Персональный токен доступа — это статическая версия bearer-токена, который пользователь генерирует вручную (например, на GitHub). Например, используя PAT GitHub для API-запросов, вы добавляете его в заголовок запроса как authorization: bearer <ваш-pat>. В таком случае PAT действует как bearer-токен.
  3. API-токен — общее понятие: API-токен — это общий термин для любого токена, который используется для аутентификации в API. В этот термин входят различные виды токенов, такие как bearer-токены, OAuth-токены и персональные токены доступа. PAT и bearer-токены — просто конкретные виды API-токенов.

Выбор механизмов AuthN и AuthZ

Перед использованием персонального токена доступа важно понимать его роль в общей системе механизмов аутентификации. Необходимо знать, как они соотносятся друг с другом. В таблице ниже приведены ключевые отличия между персональными токенами доступа (PAT), паролями, ключами API и OAuth-токенами, чтобы вы смогли сделать обоснованный выбор.

  1. Персональный токен доступа: Лёгкий способ аутентификации, идеально подходящий для автоматизированных задач или доступа к API. Предоставляет тонкую настройку прав для безопасного и индивидуального доступа.
  2. Пароль: Традиционный метод аутентификации, используемый для входа в личные кабинеты через пользовательский интерфейс. Дает такие же права, как у владельца аккаунта, без детализации разрешений.
  3. OAuth-токен: Самый безопасный способ предоставить сторонним сервисам ограниченный доступ. Позволяет пользователям определять области доступа для сторонних приложений, не раскрывая свои учётные данные, что обеспечивает и безопасность, и гибкость.
  4. API-ключ: Обычно служит для автоматизации доступа к API, привязан к сервисным аккаунтам, а не к личным. Однако не предоставляет столь подробного контроля над правами, как PAT или OAuth.
ФункцияПарольПерсональный токен доступаOAuth-токенAPI-ключ
ОпределениеАутентификация пользователя с помощью идентификатора и пароля.Токен для доступа к определённым ресурсам или API, часто с ограниченными правами.Система, позволяющая пользователям предоставлять сторонним приложениям доступ к своим данным без передачи пароля. Например, вход через GoogleУникальная строка, используемая клиентом для аутентификации запросов к API.
Ограничение областиОбычно после входа предоставляется полный доступ к аккаунту пользователя.Позволяет детально контролировать разрешения.Позволяет пользователю определить, к чему у стороннего приложения будет доступ.Обычно даёт доступ к определённым ресурсам API. Нет детализации прав.
Отзыв (аннулирование)Сложно отозвать без смены пароля, что влияет на множество сервисов.Легко отзывается самим пользователем или администратором.Может быть отозван без влияния на учётные данные пользователя.Можно отозвать или пересоздать на уровне API-службы.
Срок действияНет срока действия, если пользователь сам не поменяет пароль.Обычно долгоживущие, но настраиваемые для автоматического истечения.Токены доступа истекают через заданное время, refresh-токены могут продлить доступ.Обычно долгоживущие, но могут ротироваться или ограничиваться со стороны провайдера API.
УдобствоЛегко запомнить, рискованно при неправильном обращении.Просто сгенерировать и использовать для автоматических задач.Требует начального взаимодействия пользователя, но даёт безопасную передачу прав.Легко использовать в запросах, но не подходит для аутентификации пользователей.
Лучше всего дляБазовая аутентификация и верификация со стороны пользователей.Автоматизация, ограниченный доступ к ресурсам API, CI/CD.Сторонние приложения, которым нужен ограниченный доступ к данным пользователя без хранения паролей.Бэкенд-сервисы, server-to-server API, публичные API.
Риск безопасностиВ случае кражи даёт полный доступ к аккаунту.В случае утечки даёт доступ только к выбранным ресурсам, легко отзыть.В случае утечки сторонние приложения могут действовать в рамках предоставленных прав.В случае кражи — используют для автоматизированного доступа между серверами.

Как работает персональный токен доступа?

Персональные токены доступа работают аналогично OAuth-токенам, но обычно представляют собой строки без открытых данных о своём содержимом. Когда вы аутентифицируетесь в сервисе (например, GitHub), можно сгенерировать PAT, связанный с вашим аккаунтом, и назначить ему определённые разрешения. Такой токен служит безопасной альтернативой паролю при выполнении запросов (например, доступ к приватному репозиторию по API).

Как правило, PAT указывается в заголовке запроса, как в этом примере:

Передавая PAT таким образом, сервис сможет проверить вашу личность, оценить разрешения, связанные с токеном, и либо предоставить запрошенные данные, либо выполнить требуемое действие.

Как использовать персональный токен доступа?

  • Создать персональный токен доступа: Начните с создания персонального токена доступа в используемой вами платформе и выберите необходимые области (scopes), определяющие права доступа.
  • Аутентифицировать API-запросы: Используйте свой персональный токен для аутентификации в сервисах, требующих защищённого доступа. Включайте токен в заголовок авторизации как bearer-токен при выполнении ваших API-запросов.
  • Отозвать персональный токен доступа: Если токен больше не нужен, просто отзовите его через настройки аутентификации платформы. После аннулирования любые запросы с этим токеном будут автоматически отклоняться.

Когда стоит использовать персональные токены доступа?

Персональные токены доступа идеально подходят, когда нужен безопасный, удобный для разработчиков и настраиваемый доступ к вашим API. Вот типичные сценарии использования:

  • Автоматизация задач: Отлично для скриптов и инструментов, которым надо получать данные через API без размещения чувствительных credential-ов.
  • Гибкий контроль прав: Обеспечивают точечный доступ – например, только к определённым репозиториям, не раскрывая все права аккаунта.
  • Временный доступ: Идеальны для ситуаций с временным доступом, чтобы минимизировать период риска.
  • Упрощённый доступ для разработчиков: Заметно удобнее, чем разворачивать полную авторизацию через OAuth.
  • Интеграция с внешними сервисами: Ограничьте действия сторонних инструментов заранее определёнными действиями. Например, если компания использует таск-трекер, интеграция с внешними средствами позволяет участникам создавать задачи или изменять статусы через, скажем, Slack-чат, не получая полного доступа к системе управления проектами.

GitHub начал внедрять персональные токены доступа ещё в 2013 году, и сегодня они популярны благодаря простоте и гибкости. Многие инструменты для разработчиков и SaaS-платформы поддерживают PAT, что делает их удобными и любимыми выбором:

  • GitHub/GitLab/Azure DevOps (инструменты разработки): Позволяют автоматизировать CI/CD, интеграции с другими инструментами, управление кодом.

    github-personal-access-token.png

  • Figma (дизайн-инструменты): Упрощают совместную работу дизайнеров через API-интеграции.

    figma-personal-access-token.png

  • Atlassian Jira/Asana (управление проектами): Позволяют легко создавать, обновлять и удалять задачи, управлять спринтами и организовывать проекты через API.

    jira-personal-access-token-admin.png

Можно ли делиться персональным токеном доступа с другими?

Коротко — нет, не стоит.

Токены должны быть привязаны только к одному аккаунту и не передаваться другим лицам. Если кому-то ещё нужен доступ, лучше создать для него отдельный токен с нужными правами или настроить пользовательские роли для минимизации рисков. Злоупотребление токенами может привести к несанкционированному доступу, утечкам данных или нарушению конфиденциальности. Храните токены в секрете и немедленно отзывайте те, которые могут быть скомпрометированы.

Реализуйте генерацию персональных токенов доступа в вашем приложении с помощью Logto

Если вы разрабатываете B2B-сервисы или передовые ИИ-продукты, «разработчике-ориентированная» аутентификация и авторизация особенно важны. Персональный токен доступа откроет новые возможности для вашего бизнеса.

Logto — комплексное решение Customer Identity and Access Management (CIAM), с помощью которого вы легко создадите, управляете и отзовёте персональные токены доступа. Вот как начать работу:

  1. Перейдите в Logto Console > User Management.
  2. Откройте профиль нужного пользователя, чтобы управлять его персональными токенами доступа.

personal-acess-tokens-management.webp

С Logto вы можете:

  • Создавать новые персональные токены доступа.
  • Управлять несколькими токенами для одного пользователя.
  • Настраивать индивидуальные сроки истечения токенов.
  • Переименовывать токены для лучшей организации.
  • Отзывать токены, когда они больше не нужны.

logto-create-personal-access-token.png

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