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