Создание и авторизация приложения
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 в ссылке установки должен точно совпадать с зарегистрированным значением, включая схему, хост, порт, путь и строку запроса. Вне локальной разработки используйте HTTPS. HTTP разрешён только для localhost, 127.0.0.1 и [::1]; маски, фрагменты URL и данные пользователя запрещены.
Добавьте открытый ключ RS256
Создайте пару RSA-ключей длиной не менее 2048 бит в своей защищённой среде. В CloudPrint загрузите только открытый ключ, а закрытый храните в менеджере секретов или HSM. CloudPrint присвоит ключу идентификатор для JWT kid. При ротации сначала подключите новый ключ и только после перевода всех сервисов отзовите старый.
Создавайте одноразовое JWT-подтверждение
Подпишите JWT с alg=RS256 и идентификатором активного ключа в kid. Укажите client_id приложения в iss и sub, точный адрес метода в aud, срок не более пяти минут между iat и exp и уникальный jti. Синхронизируйте часы и создавайте подтверждение непосредственно перед единственным запросом.
Проверяйте статус приложения
Новое Developer Application активно сразу после создания. Для авторизации Developer Account, Application и ключ должны оставаться активными. Приложение со статусом suspended не может создавать установки и выпускать токены. Покажите этот статус в своём интерфейсе и не повторяйте запросы бесконечно.
Храните подпись только на сервере
Не помещайте закрытый ключ или генератор JWT-подтверждений в браузер, мобильное приложение, CloudPrint Agent или окружение клиента. Разрешите подпись только сервису, который обменивает подтверждение на токен. Не записывайте полный JWT в логи; для поддержки сохраняйте CloudPrint X-Request-Id рядом со своим идентификатором операции.