AiHummer доки
v1.0.x
RU EN

Connections (OAuth2 на пользователя)

v1.0.x · обновлено 2026-06-26

Connections — это способ для конкретного пользователя предоставить AiHummer доступ к стороннему сервису от своего имени. Вместо одной общей служебной учётной записи каждый человек проходит стандартный поток OAuth2 authorization-code, полученный токен запечатывается в зашифрованном vault, а во время хода (turn) рантайм резолвит токен именно этого пользователя, когда он нужен инструменту.

Это «персональная» половина модели доступов AiHummer. Полную картину — когда лучше выбрать общий доступ и как работает fallback — см. в Персональные и общие доступы.

Что такое Connection

Connection связывает три сущности: провайдер (OAuth2-приложение, против которого вы авторизуетесь), пользователь (тот, кто прошёл экран согласия) и запись в vault (где хранится выданный токен). После установления любой инструмент, действующий от имени этого пользователя, может прозрачно использовать токен — при этом токен никогда не попадает в контекст модели, в логи или в промпт.

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

Поток authorization-code

Connection создаётся каноническим трёхногим грантом OAuth2 authorization-code:

  1. Пользователь начинает подключение провайдера из админки.
  2. AiHummer перенаправляет браузер на authorization-эндпоинт провайдера с запрошенными scope.
  3. Пользователь подтверждает экран согласия; провайдер возвращает одноразовый authorization code.
  4. AiHummer обменивает этот код на access token (и, если провайдер это поддерживает, refresh token) на токен-эндпоинте провайдера.
  5. Токен записывается в vault, а Connection помечается активным.

Собственный токен-эндпоинт платформы:

POST /v1/oauth/token

Он выполняет обмен «код → токен» на стороне сервера, чтобы client secret и выданный токен никогда не покидали gateway.

[!NOTE] Поток authorization-code всегда включает реальный шаг согласия в браузере. Connection нельзя создать «вслепую» по одному API-ключу — действующий пользователь должен один раз подтвердить scope.

Где хранится токен

Выданный токен хранится в зашифрованном vault доступов AiHummer, а не в открытой конфигурации. Vault использует конвертное шифрование (AES-256-GCM с ключом данных на арендатора под мастер-ключом), и секреты никогда не копируются в контекст модели, в промпты или логи. Отозванный или истёкший Connection просто не оставляет пригодного к использованию секрета.

согласие ─▶ код ─▶ POST /v1/oauth/token ─▶ access/refresh token ─▶ vault (шифрованный)

Резолвится по действующему пользователю

Определяющее свойство Connection в том, что он резолвится по действующему пользователю. Когда агент вызывает инструмент, которому нужен провайдер, рантайм находит Connection, принадлежащий пользователю, от имени которого идёт ход, и использует его токен. Два сотрудника, общающиеся с одним и тем же агентом, действуют со своими авторизациями и видят только то, что разрешает их собственный грант.

Именно это делает Connections подходящими для персональных, по-пользователю интеграций: доступ каждого человека изолирован, проверяем в аудите и отзываем по отдельности.

Доступные интеграции

Через поток OAuth2 пользователь может подключить свою учётную запись в любом из поставляемых сервисов. Эти персональные интеграции доступны «из коробки»:

ГруппаСервисы
GoogleGmail, Google Calendar, Google Contacts, Google Tasks, Google Drive, YouTube
MicrosoftOutlook Mail, Outlook Calendar, OneDrive, Microsoft To Do
ПродуктивностьTodoist, Asana, Jira Cloud, ClickUp, GitLab
Здоровье и образ жизниFitbit, Oura Ring, Spotify, Samsung SmartThings

Каждая из них подключается одним и тем же authorization-code потоком: пользователь проходит экран согласия провайдера, токен запечатывается в vault и резолвится именно для этого пользователя, когда инструмент обращается к сервису.

Управление в админке

Из админки оператор может:

  • Видеть, какие провайдеры подключил каждый пользователь и состояние каждого токена.
  • Начать новое подключение (запустить поток согласия для выбранного провайдера).
  • Отозвать подключение — это удаляет запись в vault и отключает резолвинг.

Поскольку базовые доступы персональны, Connection чаще всего и есть правильный выбор, когда действие должно быть привязано к авторизации конкретного человека и ограничено ею, а не общей учётной записью рабочего пространства.

Куда дальше