---
title: "Создание и авторизация приложения"
description: "Создайте Developer Account и Developer Application, зарегистрируйте ключи RS256 и авторизуйте сервер приложения."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">Документация CloudPrint</a><span aria-hidden="true">/</span><span>Developer Platform</span></nav>

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

<p class="docs-lead">Developer Application представляет один внешний продукт. В CloudPrint хранятся публичные сведения о приложении и открытые ключи RS256, а закрытый ключ всегда остаётся в защищённом хранилище на вашей стороне.</p>

## Создайте 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 Account, Application и ключ должны быть активны. Приложение со статусом `pending_review` или `suspended` не может создавать установки и выпускать токены. Покажите этот статус в своём интерфейсе и не повторяйте запросы бесконечно.

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

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

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

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

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

<div class="docs-card-grid"><a class="docs-card" href="/docs/developer-platform/"><strong>Developer Platform CloudPrint</strong><span>Создайте одно приложение, которое клиенты смогут подключать к своим аккаунтам CloudPrint.</span></a>
<a class="docs-card" href="/docs/developer-platform/installations/"><strong>Установки и токены доступа</strong><span>Устанавливайте приложение в аккаунты клиентов, сохраняйте installation_id и выпускайте короткоживущие Installation Access Tokens.</span></a>
<a class="docs-card" href="/docs/api/v1/app-installations/access-token/"><strong>Получить токен установки приложения</strong><span>Подтвердите Developer Application одноразовым JWT, подписанным RS256, и получите короткоживущий токен для одной App Installation.</span></a></div>

<nav class="docs-resource-links" aria-label="Следующие шаги"><a href="/docs/api/v1/explorer/">OpenAPI</a><a href="https://my.cloudprint.by">Открыть кабинет</a><a href="/docs/legal/privacy/">Политика конфиденциальности</a><a href="/docs/legal/terms/">Условия использования</a><a href="/docs/legal/payments-and-refunds/">Оплата и возврат</a><a href="/docs/legal/data-processing/">DPA</a></nav>