Русский
  • Личный токен доступа
  • Аутентификация

Упростите аутентификацию API с помощью личного токена доступа — более безопасный API-токен

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

Ran
Ran
Product & Design

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

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

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

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

Что такое личный токен доступа?

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

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

Ключевые особенности личных токенов доступа:

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

Личный токен доступа vs. Bear-токен vs. API-токен

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

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

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

  1. Личный токен доступа: Легкий метод аутентификации, идеальный для автоматизированных задач или доступа к API. Он обеспечивает точный, детализированный контроль над разрешениями, гарантируя безопасный и адаптированный доступ.
  2. Пароль: Традиционный подход к аутентификации, используемый для доступа к личным аккаунтам через пользовательский интерфейс. Он предоставляет те же разрешения, что и у владельца аккаунта, не предлагая дополнительной гранулярности.
  3. OAuth-токен: Наиболее безопасный метод предоставления ограниченного доступа сторонним службам. Он позволяет пользователям определять конкретные области доступа без раскрытия своих учетных данных, обеспечивая как безопасность, так и гибкость.
  4. Ключ API: Обычно используется для автоматизации доступа к API, ключи API связаны с сервисными учетными записями, а не с личными учетными записями. Однако они не обладают детализированным контролем разрешений, как PAT или OAuth.
ОсобенностьПарольЛичный токен доступаOAuth-токенКлюч API
ОпределениеПользователи аутентифицируются с идентификатором и паролем.Токен для доступа к определенным ресурсам или API, часто с ограниченными разрешениями.Система, где пользователи предоставляют сторонним приложениям доступ к своим данным, не делясь учетными данными. Например, вход через GoogleУникальная строка, используемая клиентами для аутентификации API-запросов.
Ограничение областиОбычно предоставляет полный доступ к учетной записи пользователя после входа.Позволяет детализированно управлять разрешениями.Позволяет пользователю определить, к каким данным стороннее приложение может получить доступ.Обычно предоставляет доступ к определенным ресурсам API. Нет детализированного контроля.
АннулированиеТрудно аннулировать без изменения пароля, что затрагивает несколько сервисов.Легко аннулируется пользователем или администратором.Может быть аннулирован без воздействия на учетные данные пользователя.Может быть аннулирован или регенерирован на уровне API-сервиса.
Истечение срока действияНе истекает, если не изменен пользователем.Часто долгосрочный, но может быть настроен на истечение.Доступные токены истекают через заданное время; токены обновления могут продлить доступ.Часто долгосрочный, но может быть повернут или ограничен провайдером API.
Простота использованияЛегко запомнить, но рисковано, если неправильно обращаться.Легко генерируется и используется для автоматизированных задач.Требуется начальное взаимодействие с пользователем, но обеспечивает безопасное делегирование доступа.Легко используется в запросах, но не подходит для аутентификации пользователей.
Лучше всего подходит дляОсновной вход и проверка пользователей на стороне клиента.Автоматизация, ограниченный доступ к ресурсам API и разработка в CI/CD-конвейерах.Сторонние приложения, требующие ограниченного доступа к пользовательским данным без хранения паролей.Бэкэнд-сервисы, взаимодействие сервер-сервер и публичные API.
Риск безопасностиЕсли украден, предоставляет полный доступ к аккаунту.Если утечка, предоставляет доступ только к указанным ресурсам. Легко аннулируется.Если утечка, сторонние приложения могут выполнять действия в пределах предоставленного объема.Если украден, обычно используется для доступа сервер-сервер.

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

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

Обычно PAT включается в заголовки запроса, как показано в этом примере:

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

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

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

В каких случаях следует использовать личные токены доступа?

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

  • Автоматизированные задачи: Отлично подходят для скриптов или инструментов, которым необходимо извлекать данные из API, не требуя от разработчиков встраивания чувствительных учетных данных.
  • Гранулярный контроль разрешений: Обеспечьте точный доступ, предоставляя скриптам или инструментам ограниченные разрешения, такие как доступ к конкретным репозиториям, без раскрытия полных привилегий аккаунта.
  • Временный доступ: Идеально подходит для ситуаций, чувствительных ко времени, когда ограничение продолжительности доступа минимизирует риски для безопасности.
  • Упрощенный доступ для разработчиков: Удобный способ предоставить доступ отдельным разработчикам без сложности настройки полных потоков авторизации 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 или разработка передовых решений для AI, реализация удобной для разработчиков аутентификации и авторизации обязательна. Личный токен доступа может открыть новые возможности для вашего бизнеса.

Logto, комплексное решение для управления идентификацией и доступом клиентов (CIAM), позволяет легко создавать, управлять и отзывать личные токены доступа. Вот как вы можете начать:

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

personal-acess-tokens-management.webp

С Logto вы можете:

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

logto-create-personal-access-token.png

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