Перейти к содержанию

Создание и авторизация приложения

Developer Application представляет один внешний продукт. В CloudPrint хранятся публичные сведения о приложении и открытые ключи RS256, а закрытый ключ всегда остаётся в защищённом хранилище на вашей стороне.

Создайте Developer Account

Войдите в Developer Portal с обычным логином CloudPrint и создайте Developer Account для компании или команды, которая развивает интеграцию. Роли участников определяют, кто может управлять приложениями, ключами и установками. Developer Account не является аккаунтом клиента и не содержит принтеры.

Одно приложение на один продукт

Зарегистрируйте Developer Application с постоянным названием, адресом сайта, политикой конфиденциальности и точными redirect URI. Полученный client_id используется в ссылках установки и JWT. Не создавайте отдельное приложение для каждого клиента: подключение клиента представлено App Installation.

Настройте Redirect URI

Параметр redirect_uri в ссылке установки должен точно совпадать с зарегистрированным значением, включая схему, хост, порт, путь и query. Вне локальной разработки используйте HTTPS. HTTP разрешён только для localhost, 127.0.0.1 и [::1]; wildcard, URL fragment и данные пользователя запрещены.

Добавьте открытый ключ RS256

Создайте пару RSA-ключей длиной не менее 2048 бит в своей защищённой среде. В CloudPrint загрузите только открытый ключ, а закрытый храните в менеджере секретов или HSM. CloudPrint присвоит ключу идентификатор для JWT kid. При ротации сначала подключите новый ключ и только после перевода всех сервисов отзовите старый.

Создавайте одноразовый JWT assertion

Подпишите JWT с alg=RS256 и идентификатором активного ключа в kid. Укажите client_id приложения в iss и sub, точный адрес метода в aud, срок не более пяти минут между iat и exp и уникальный jti. Синхронизируйте часы и создавайте assertion непосредственно перед единственным запросом.

Проверяйте статус приложения

Для авторизации Developer Account, Application и ключ должны быть активны. Приложение со статусом pending_review или suspended не может создавать установки и выпускать токены. Покажите этот статус в своём интерфейсе и не повторяйте запросы бесконечно.

Храните подпись только на сервере

Не помещайте закрытый ключ или генератор assertion в браузер, мобильное приложение, CloudPrint Agent или окружение клиента. Разрешите подпись только сервису, который обменивает assertion на токен. Не записывайте полный JWT в логи; для поддержки сохраняйте CloudPrint X-Request-Id рядом со своим идентификатором операции.

Чек-лист перед запуском

  • Используйте исходящее подключение агента и не открывайте порты принтера в интернет.
  • Сохраняйте стабильный идентификатор принтера, а не только отображаемое имя.
  • Проверяйте формат документа, размер страницы и ориентацию до создания задания.
  • Явно задайте обработку конечных статусов, повторов и защиту от двойной печати.

Следующие шаги

Руководства по интеграции CloudPrint, подключению локального агента и надёжной работе печати.