Персональные токены доступа, аутентификация «машина-машина» и определение API-ключей и их реальные сценарии
Узнайте о различиях между персональными токенами доступа (PATs), аутентификацией «машина-машина» (M2M) и API-ключами, а также о том, как их можно использовать.
Если вы разрабатываете программное обеспечение или продукт SaaS, вы часто сталкиваетесь с запросами на широко применимые кейсы или функции: API-запросы. Особенно клиенты крупных предприятий могут захотеть программный доступ к ресурсам, будь то на личном уровне или на уровне организации.
В таких случаях часто требуются API-ключи, персональные токены доступа (PATs) и аутентификация «машина-машина» (M2M). В этой статье мы рассмотрим различия между этими методами и способы их использования в разработке продуктов для бизнеса (B2B) для разработчиков.
Сходства
Давайте сначала взглянем на сходства между этими тремя методами.
- Цель безопасности: Все три метода используются для защиты и контроля доступа к API, сервисам или ресурсам. Они все служат средством аутентификации и/или авторизации.
- Подход на основе токенов: Каждый метод обычно включает использование уникальной строки или токена для идентификации. Эти токены обычно отправляются вместе с API-запросами, часто в заголовках или в качестве параметров запроса.
- Отзыв: Токены или ключи в каждом из этих методов могут быть аннулированы или заменены, если они были скомпрометированы или больше не нужны. Это позволяет быстро реагировать на угрозы безопасности, не изменяя основную систему.
- Программируемый доступ: Все три метода облегчают программный доступ к API или сервисам. Они позволяют автоматизацию и интеграцию между различными системами или приложениями.
- Аудитирование: Использование этих методов аутентификации может быть зафиксировано и подлежит аудиту. Это позволяет отслеживать доступ к API, мониторить подозрительную активность и предоставлять отчеты о соблюдении требований.
- Адаптируемость к контролю доступа: Все три метода могут быть реализованы с различными уровнями контроля доступа и разрешений. Они могут быть адаптированы к различным моделям безопасности и архитектурным требованиям.
- Независимость от протоколов: Хотя эти методы часто используются с REST API, их можно применять к различным типам API и протоколов.
Понимание этих сходств помогает распознать общие основы этих методов аутентификации. Их различия позволят вам выбрать наиболее подходящее решение для конкретных кейсов и требований безопасности.
Теперь давайте обсудим их различия, сосредоточив внимание на их кейсах использования и на том, когда использовать каждый метод.
Различия
API-ключи
API-ключи используются для идентификации и авторизации вызывающего приложения или сервиса. Они обычно долгоживущие и статичны, пока не будут перевыпущены, и часто имеют фиксированный набор разрешений. Они в основном используются для связи сервер-сервер или доступа к общедоступным данным, и эти токены, как правило, не представляют конкретного пользователя.
Как работают API-ключи?
API-ключ выдается провайдером API и передается зарегистрированному потребителю API [1], который включает его в каждый запрос. Сервер API затем проверяет API-ключ для подтверждения личн ости потребителя, прежде чем вернуть запрашиваемые данные.
API-ключи не так эффективны, как другие формы аутентификации API, такие как OAuth и JWT, но они все равно играют важную роль в помощи разработчикам API соблюдать использование при защите чувствительных данных.
[1]: Потребитель API - это любое приложение, сервис или пользователь, который взаимодействует с API для доступа к его функциям или данным. Они отправляют запросы к API для выполнения операций, таких как извлечение, создание, обновление или удаление ресурсов. Потребителями API могут быть веб-приложения, мобильные приложения, другие серверы или даже отдельные разработчики, которые используют API для интеграции с другими сервисами или для создания новых функций на существующих платформах.
Postman: Что такое API-ключ?
Кейсы использования
Когда люди обсуждают кейсы использования API-ключей, они часто упоминают автоматизацию, обмен данными, тестирование, разработку и контроль безопасности. Однако это довольно технические аспекты. В реальных кейсах самой распространенной целью при создании продуктов является интеграция.
Пример 1: Интеграция с Zapier
Zapier: Добавить аутентификацию с использованием API-ключа
Zapier — это популярный инструмент автоматизации, который связывает различные веб-приложения. При интеграции приложения с Zapier используются API-ключи для аутентификации и авторизации доступа к API приложения. Например, если вы хотите автоматизировать задачи между системой CRM и инструментом email-маркетинга, вы создаете API-ключ в системе CRM и предоставляете его Zapier. Этот ключ затем используется для аутентификации запросов из Zapier к API CRM-системы, что позволяет безопасно перемещать данные между двумя системами.
Пример 2: Интеграция со Stripe
Stripe использует API-ключи для безопасной интеграции с различными платформами и приложениями. Используйте Dashboard разработчика для создания, просмотра, удаления и обновления API-ключей.
Персональные токены доступа (PATs)
Персональный токен доступа представляет собой другую похожую концепцию, но он идентифицирует конкретного пользователя и его разрешения, динамически генерируется при успешной аутентификации или входе и обычно имеет ограниченный срок действия, но может быть обновлен. Они обеспечивают детализированный контроль доступа к данным и функционалу, связанным с пользователем, и часто используются в CLI-инструментах, скриптах или для личного доступа к API.
Как работают PATs
- Создание и управление: Пользователи генерируют PATs через настройки своих аккаунтов на соответствующей платформе.
- Например, на GitHub пользователи мог ут создавать PATs с точными или основными разрешениями и сроками действия.
- В таких продуктах Atlassian, как Jira и Confluence, пользователи могут создавать PATs в настройках профиля, задавая имя токена и необязательный срок действия.
- Использование: PATs используются как Bearer-токены в заголовке Authorization API-запросов. Это значит, что они включаются в HTTP-заголовки для аутентификации запроса.
- Они обеспечивают безопасный доступ к ресурсам API, позволяя пользователям выполнять действия, такие как создание, чтение, обновление и удаление ресурсов в зависимости от разрешений, предоставленных токену.
- PATs могут использоваться в нескольких приложениях внутри одной платформы, предоставляя единый способ управления доступом и разрешениями.
- Отзыв и установка срока действия:
- PATs обеспечивают улучшенную безопасность, позволяя пользователям отзывать токены в случае их компрометации, без необходимости менять пароль аккаунта.
- Платформы часто рекомендуют устанавливать сроки действия PATs для уменьшения риска эксплуатации долго живущих токенов.