Ключи сервисов и агенты, которые ими пользуются
Сохраните ключ из каталога, своего HTTP API или базы данных, выберите агентов, проверьте ключ и замените его.
На этой странице
Что такое ключ сервиса
Ключ сервиса Sallyport хранит для одного сервиса: ключ API, токен, вход через поставщика или пароль базы данных. Sallyport сам подставляет его в каждый вызов. Прочитать ключ обратно не может ни агент, ни человек, ни API.
Сохранённый ключ получают все агенты его рабочего пространства, в том числе агенты, которых владелец или администратор создаст позже. ИИ-клиент, который участник подключил через вход, начинает без ключей, их добавляет владелец или администратор в списке «Доступ». Добавлять ключи могут владелец и администраторы.
Выберите источник
Откройте Добавить ключ сервиса. В блоке «Источник ключа» шесть вариантов:
| Источник ключа | Для чего |
|---|---|
| Каталог | Сервис, который Sallyport уже знает: GitHub, Stripe, Cloudflare и другие. Адрес и способ передачи ключа уже заданы. |
| Свой API | Любой публичный HTTPS API, которого нет в каталоге. |
| Удалённый MCP | MCP-сервер в интернете. См. MCP-клиенты и удалённые серверы. |
| Хост SSH | Сервер, на котором агенты выполняют команды. См. Команды SSH. |
| База данных | Ваша PostgreSQL, MySQL, SQL Server, ClickHouse, MongoDB или Redis на публичном адресе. Агенты получают один инструмент для чтения и один для изменений. |
| Хранилище S3 | Бакет Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Google Cloud Storage или любого S3-совместимого хранилища. См. Хранилище S3. |
| Электронная почта | Ваш ящик в Gmail, Outlook, Yahoo, iCloud, Fastmail, Zoho или на своём почтовом сервере. Агенты отправляют, читают и разбирают почту. См. Почта. |
Добавьте сервис из каталога
Выберите сервис в поле «Сервис из каталога». «Название в консоли» заполнится само, например github-live. Если рабочих пространств несколько, выберите и «Рабочее пространство».
В блоке «Среда» оставьте «Рабочая». Агенты, созданные в консоли, работают в рабочей среде и видят только её ключи.
В разделе «Как подключить …» выберите способ. «Войти через …» ведёт к поставщику и обратно, а Sallyport хранит полученный доступ и продлевает его. «Токен доступа», «Ключ API» и другие способы принимают ключ, который вы вставляете.
Кнопка «Создать ключ в …» открывает страницу поставщика, где выпускают ключ. Сервис на вашем собственном адресе спросит ещё «Ваш адрес в …». Нажмите «Сохранить ключ» или кнопку входа.
Для некоторых входов нужно своё приложение у поставщика. Тогда форма покажет «Адрес возврата»: зарегистрируйте его в приложении и вставьте «ID клиента» и «Секрет приложения».
Сервисы, которые берут ID и секрет приложения
Greenhouse Harvest v3, серверные приложения Zoom (Server-to-Server), приложения Auth0 machine-to-machine, Bandwidth и Sinch Conversation API берут ID и секрет приложения, которое вы создаёте у поставщика. Вставьте оба; Sallyport получает короткоживущий токен по адресу, который назвал поставщик, и обновляет его до истечения. Zoom ещё просит ID аккаунта; Greenhouse берёт ID пользователя, от имени которого действует токен, а без него действует от пользователя самого приложения.
PlanetScale и Etsy ждут две части ключа в одном заголовке. Введите каждую часть в своё поле; Sallyport соединяет их при каждом вызове.
Сервисы, которые подписывают каждый запрос
Некоторые сервисы не принимают ключ в запросе: каждый вызов несёт подпись, сделанную секретом или закрытым ключом. Так работают Binance, Bybit, OKX, Kraken, Coinbase, App Store Connect, GitHub Apps, Snowflake с парой ключей, NetSuite и Azure Service Bus. Вставьте ключ так, как просит форма; Sallyport подписывает каждый вызов в момент отправки, а сам ключ никуда не уходит.
| Как подключить | Что Sallyport делает при каждом вызове |
|---|---|
| Ключ API и секрет | Добавляет время и подпись запроса, сделанную секретом, в заголовок или параметр запроса, который называет сервис. |
| Закрытый ключ | Подписывает ключом короткоживущий токен и отправляет его как bearer. Для GitHub App этот токен сначала обменивается на токен установки. |
| Токены OAuth 1.0a | Подписывает запрос секретами consumer и токена и отправляет заголовок Authorization: OAuth …. |
Человек, который одобряет вызов, одобряет сам запрос. Время и подпись добавляются при отправке, после «да», поэтому одобрение, данное несколько минут назад, по-прежнему подходит. Агент их не передаёт; если передаст свои, Sallyport их отбросит.
Подключите свой HTTP API
Выберите «Свой API» и укажите «HTTPS-адрес сервиса», например https://api.example.com:8443/v1. Если порт не 443, добавьте его. Логин, параметры запроса и фрагмент в адрес не включайте.
Путь ограничивает ключ: с /v1 вызовы идут только в /v1 и глубже. Выберите «Авторизация», введите ключ и нажмите «Сохранить ключ и создать подключение».
| Авторизация | Что Sallyport добавит к каждому вызову |
|---|---|
| Bearer-токен | Authorization: Bearer … |
| Basic | Имя пользователя и пароль в виде Authorization: Basic …. |
| Ключ API | Ключ в заголовке («Заголовок запроса»: X-API-Key, Authorization: token … или свои заголовки), в «Параметр URL», в поле тела («JSON-тело запроса») или в «Путь URL». |
| Digest | Имя пользователя и пароль отвечают на Digest-запрос сервиса. Пароль по сети не передаётся. |
| Адрес входа | Токен сессии. Sallyport отправляет имя пользователя и пароль на «Адрес входа (URL)», берёт токен из ответа JSON, заголовка ответа или cookie и передаёт его в указанном вами заголовке. Когда сессия заканчивается, Sallyport входит заново. |
| Клиентский сертификат | В заголовках ничего: Sallyport предъявляет «Сертификат» и «Закрытый ключ» в формате PEM при TLS-рукопожатии. |
| OAuth: вход | Токен, полученный при входе у поставщика. Вы указываете «Адрес авторизации», «Адрес токена», «Права доступа», а также ID и секрет своего приложения. В приложении укажите адрес возврата https://mcp.sallyport.cloud/callback/upstream. |
| Сервисный аккаунт Google | Токен Google, который Sallyport выпускает по вставленному «JSON сервисного аккаунта» для прав из поля «Права доступа». |
| OAuth: client credentials | Токен, который Sallyport получает для вашего приложения по «Адресу токена» и обновляет до истечения. Адрес токена может быть на другом хосте, чем API, например login.microsoftonline.com для Azure. |
| AWS Signature V4 | Подпись каждого запроса вашими «Идентификатором ключа доступа» и «Секретным ключом доступа» для указанных «Региона» и «Сервиса подписи». Для бакетов S3 это делает источник «Хранилище S3». |
| Подпись HMAC | Подпись каждого запроса вашим «Секретом подписи» по «Шаблону подписи» из документации сервиса: алгоритм, что подписывается и куда идёт подпись. «Ключ API (необязательно)» отправляется рядом, в «Заголовке ключа API». |
| Подписанный JWT | Короткоживущий JWT, который Sallyport подписывает вашим «Закрытым ключом» по «Шаблону JWT»: алгоритм, claims, срок жизни и обмен, если сервис меняет JWT на токен. |
| OAuth 1.0a | Подпись каждого запроса из ваших «Consumer key», «Consumer secret», «ID токена» и «Секрета токена» выбранным «Методом подписи», с «Realm (необязательно)», например ID аккаунта NetSuite. |
Блок «Как будет передан ключ» показывает, что уйдёт в запросе. В «Дополнительные параметры подключения» задаются заголовки и параметры запроса для каждого вызова. Это настройки, поэтому ключи туда не кладите.
Если сервису кроме ключа нужен клиентский сертификат, добавьте его в «Добавить клиентский сертификат»: он хранится вместе с ключом. Некоторые сервисы, например API-сервер Kubernetes, используют сертификат, не подписанный публичным центром. Вставьте их УЦ в «Доверенные сертификаты УЦ» в разделе «Дополнительные параметры подключения». Ему доверяет только это подключение, и оно по-прежнему обращается только к публичным адресам.
Блок «Что это за вызовы» отличает чтение от изменения. «REST» судит по методу. «GraphQL» считает query чтением, а mutation изменением. «JSON-RPC» считает чтением «Методы-чтения» из вашего списка, а любой другой метод изменением. «SQL в теле запроса» читает запрос по пути из поля «Где лежит запрос», например /statement у Snowflake. Один SELECT считается чтением, а DROP или DELETE без WHERE необратимы.
Выберите, какие агенты пользуются ключом
На странице ключа есть список «Агенты, которым доступен ключ». Кнопка «Удалить» забирает ключ у одного агента.
Чтобы вернуть ключ, откройте агента в разделе Агенты и перейдите к списку «Доступ». «Добавить подключение» добавляет один ключ, а «Добавить все» добавляет все ключи рабочего пространства.
В каждой строке есть «Спрашивать каждый раз» и правило для столбцов «Чтение», «Изменение» и «Необратимое»: «Автоматически», «Нужно подтверждение» или «Запрещено». Новые строки выполняют каждый вызов без вопросов. Подробнее на странице Подтверждения.
Проверьте, что ключ работает
Если у сервиса есть проверка, Sallyport выполняет её при сохранении ключа. Для GitHub это GET /user. Результат виден в блоке «Куда ведёт ключ» на странице ключа, а «Проверить снова» повторяет проверку.
Замените ключ
Сначала выпустите новый ключ у поставщика. На странице ключа нажмите «Заменить ключ сервиса», введите новое значение и нажмите «Сохранить новый ключ».
Новая версия начинает работать сразу, и Sallyport её проверяет. Старая версия работает ещё 24 часа, чтобы начатые вызовы успели завершиться.
Затем отзовите старый ключ у поставщика: кнопка «Отозвать ключ в …» откроет нужную страницу. Нажмите «Я его отозвал», чтобы отметить это. Чтобы переименовать ключ, нажмите на его название вверху страницы. «Удалить ключ» внизу убирает ключ вместе с его подключениями; окно сначала называет агентов, которые их потеряют.