Skip to content

Аутентификация

AstroAPI поддерживает несколько методов аутентификации в зависимости от вашего сценария использования.

Аутентификация по API-ключу

API-ключи — рекомендуемый метод для взаимодействия между серверами.

Получение API-ключа

  1. Войдите в панель управления AstroAPI
  2. Перейдите в Настройки > API-ключи
  3. Нажмите Создать API-ключ
  4. Настройте разрешения и ограничения запросов
  5. Скопируйте сгенерированный ключ (он больше не будет показан)

Использование API-ключей

Включите ваш API-ключ в заголовок X-Api-Key:

bash
curl -X GET "https://api.astroapi.cloud/api/calc/natal" \
  -H "X-Api-Key: ak_live_xxxxxxxxxxxx"

Разрешения API-ключа

API-ключи можно ограничить определёнными разрешениями:

РазрешениеОписание
calc:readДоступ к эндпоинтам расчётов
content:readДоступ к эндпоинтам контента и интерпретаций
chart:readДоступ к эндпоинтам визуализации карт
modules:readДоступ к приобретённым модулям

Роли

AstroAPI использует ролевое управление доступом в рамках организаций:

РольОписание
ownerПолный доступ ко всем функциям организации
managerУправление пользователями, биллингом и контентом
memberБазовый доступ к расчётам и чтению контента

Разрешения по ролям

РазрешениеownermanagermemberОписание
org:createСоздание организации
org:readЧтение данных организации
org:updateОбновление организации
org:users:readЧтение пользователей
org:users:createПриглашение пользователей
org:users:updateОбновление пользователей
org:users:deleteУдаление пользователей
billing:readПросмотр биллинга
billing:manageУправление биллингом
content:readЧтение контента
content:createСоздание контента
content:updateОбновление контента
content:deleteУдаление контента
content:custom-copyСоздание пользовательских копий
content:restoreВосстановление контента
calc:useИспользование эндпоинтов расчётов
chart:useИспользование эндпоинтов карт
modules:readЧтение информации о модулях
admin:accessАдминистративный доступ

Контекст организации

Для многопользовательских приложений API-ключи привязаны к организациям. Контекст организации применяется автоматически на основе используемого API-ключа.

Ограничения по доменам

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

  • example.com — точное совпадение домена
  • *.example.com — все поддомены
  • * — разрешить все домены (не рекомендуется)

Настройте ограничения по доменам в панели управления при создании или редактировании API-ключа.

Важное ограничение

Ограничения по доменам защищают только от злоупотреблений через браузер. Они основаны на заголовках Origin и Referer, которые браузеры соблюдают, но которые легко подделать вне браузера (например, через curl, скрипты или серверный код).

Использование на стороне клиента и на стороне сервера

Взаимодействие между серверами (рекомендуется)

Для production-приложений всегда используйте API-ключи на вашем backend-сервере:

┌─────────────┐      ┌─────────────────┐      ┌─────────────┐
│   Браузер   │ ───► │  Ваш backend    │ ───► │  AstroAPI   │
│ (без ключей)│      │ (API-ключ здесь)│      │             │
└─────────────┘      └─────────────────┘      └─────────────┘

Этот подход:

  • Обеспечивает безопасность и скрытость вашего API-ключа
  • Позволяет добавить собственный уровень аутентификации
  • Предотвращает извлечение API-ключа конечными пользователями
  • Позволяет подписывать запросы и применять дополнительные меры безопасности

Использование на стороне клиента / в браузере

Если вам необходимо использовать API-ключи непосредственно в браузере (например, во встроенных виджетах на статических сайтах), учитывайте следующие ограничения:

  • API-ключи видны в исходном коде JavaScript и сетевых запросах
  • Любой может извлечь ключ с вашего сайта
  • Ограничения по доменам предотвращают только использование ключа другими сайтами через JavaScript — они не мешают скопировать ключ и использовать его в другом месте

Для использования на стороне клиента рекомендуем:

  • Включить ограничения по доменам
  • Установить строгие ограничения запросов
  • Использовать короткое время жизни ключей
  • Отслеживать использование на предмет аномалий

Ответственность клиента

Важно

Вы несёте ответственность за безопасность и использование ваших API-ключей.

Все API-запросы, выполненные с вашим API-ключом, учитываются в вашей квоте и тарифицируются на ваш счёт, независимо от того, сделали ли их вы или тот, кто получил ваш ключ.

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

Чтобы минимизировать риски:

  1. Используйте взаимодействие между серверами везде, где это возможно
  2. Никогда не фиксируйте API-ключи в системах контроля версий
  3. Немедленно меняйте ключи, если подозреваете их компрометацию
  4. Настройте оповещения об использовании, чтобы обнаруживать неожиданные всплески

Рекомендации по безопасности

  • Используйте взаимодействие между серверами для production-приложений
  • Никогда не раскрывайте API-ключи в коде на стороне клиента без крайней необходимости
  • Периодически меняйте API-ключи
  • Используйте минимально необходимые разрешения
  • Включайте ограничения по доменам для клиентских ключей
  • Устанавливайте соответствующие ограничения запросов
  • Отслеживайте использование API-ключей в панели управления

AstroAPI Documentation