Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Marketplace
    • Начало работы
      • Регистрация
      • Создание продукта в кабинете партнера
      • Создание тарифа
      • Создание новой версии продукта
      • Изменение версии продукта
      • Создание пробного периода
      • Интеграция с License Manager API
    • Управление доступом
    • Начало работы
    • Управление доступом
    • Аудитные логи Audit Trails
  1. Партнерам
  2. Пошаговые инструкции
  3. Интеграция с License Manager API

Интеграция с License Manager API

Статья создана
Yandex Cloud
Обновлена 25 декабря 2024 г.

Если вы создали подписку внутри тарифа:

  • Subscription, вам необходимо настроить интеграцию с License Manager API или License Manager SaaS API, чтобы подписка работала корректно.
  • PAYG, пользователь автоматически перейдет на этот тариф, когда отвяжет подписку от ресурса или срок действия подписки закончится. При необходимости вы можете настроить интеграцию с License Manager API.
Compute Cloud
Managed Service for Kubernetes
Cloud Apps
SaaS
  1. Получите идентификатор шаблона подписки (license_template_id).

    Идентификатор шаблона подписки можно посмотреть в кабинете партнера Cloud Marketplace. Используйте идентификатор в коде продукта, чтобы управлять подпиской.

  2. В коде вашего продукта реализуйте следующие шаги:

    1. Периодическая проверка того, что подписка активна.

      Получить актуальную информацию о подписке можно с помощью метода REST API list для ресурса Instance или вызова gRPC API InstanceService/List.

      Примечание

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

    2. Организация бизнес-логики обработки подписок: учет потребления, ограничения по времени, количеству пользователей и т.п.

  1. Получите идентификатор шаблона подписки (license_template_id).

    Идентификатор шаблона подписки можно посмотреть в кабинете партнера Cloud Marketplace. Используйте идентификатор в коде продукта, чтобы управлять подпиской.

  2. В коде вашего продукта реализуйте следующие шаги:

    1. Получение идентификатора установки приложения в кластер Kubernetes и привязка его к подписке. Пример кода.

    2. Периодическая проверка того, что подписка активна.

      Получить актуальную информацию о подписке можно с помощью метода REST API list для ресурса Instance или вызова gRPC API InstanceService/List.

      Примечание

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

    3. Организация бизнес-логики обработки подписок: учет потребления, ограничения по времени, количеству пользователей и т.п.

  1. Получите идентификатор шаблона подписки (license_template_id).

    Идентификатор шаблона подписки можно посмотреть в кабинете партнера Cloud Marketplace. Используйте идентификатор в коде продукта, чтобы управлять подпиской.

  2. В коде вашего продукта реализуйте следующие шаги:

    1. Периодическая проверка того, что подписка активна.

      Получить актуальную информацию о подписке можно с помощью метода REST API list для ресурса Instance или вызова gRPC API InstanceService/List.

      Примечание

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

    2. Организация бизнес-логики обработки подписок: учет потребления, ограничения по времени, количеству пользователей и т.п.

  1. Создайте сервисный аккаунт, от имени которого будете проверять активность подписок, купленных пользователями, и привязывать такие подписки к сервису:

    1. Авторизуйтесь в кабинете партнера Marketplace.
    2. Откройте раздел Управление доступом.
    3. Нажмите Добавить федеративного пользователя.
    4. В открывшемся окне укажите идентификатор сервисного аккаунта и нажмите Добавить.
    5. Найдите сервисный аккаунт в списке и нажмите image → Изменить.
    6. В открывшемся окне нажмите + Добавить роль, выберите license-manager.saasSubscriptionSupervisor и нажмите Сохранить.
  2. Аутентифицируйтесь в License Manager API от имени сервисного аккаунта. Для аутентификации используйте IAM-токен.

  3. Создайте страницу, на которую нужно перенаправить пользователя во время привязки купленной им подписки к сервису.

    При перенаправлении пользователя на такую страницу в строке запроса, в параметре token, передается JWT-токен (instanceToken), сгенерированный Yandex Cloud. JWT-токен действует 15 минут и содержит:

    • идентификатор подписки, которую купил пользователь (license_instance_id);
    • идентификатор шаблона подписки, который вы создали в кабинете партнера (license_template_id).
  4. Пока действует JWT-токен, на созданной странице авторизуйте пользователя и присвойте ему уникальный идентификатор (resourceId). Уникальный идентификатор пользователя (resourceId) необходимо сгенерировать самостоятельно в коде продукта.

  5. Привяжите уникальный идентификатор пользователя (resourceId) к купленной пользователем подписке (license_instance_id).

    Привязать идентификатор к подписке можно с помощью метода REST API ensure для ресурса Lock или вызова gRPC API LockService/Ensure.

    Передайте в запросе JWT-токен (instanceToken) и уникальный идентификатор пользователя (resourceId). В ответе вы получите идентификатор привязки (lock_id) — он находится в параметре metadata. Если в ответе ошибка, значит, подписка не привязалась к сервису и нужно попросить пользователя заново пройти все шаги.

  6. Организуйте периодическую проверку того, что привязка подписки активна. Используйте для этого идентификатор привязки (lock_id), полученный на предыдущем шаге.

    Получить актуальную информацию о привязке подписки можно с помощью метода REST API get для ресурса Lock или вызова gRPC API LockService/Get.

    В ответе должен возвращаться активный ресурс Lock, для которого state = LOCKED, а время окончания действия подписки end_time находится в будущем.

    Примечание

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

  7. Организуйте бизнес-логику обработки подписок: учет потребления, ограничения по времени, количеству пользователей и т.п.

Тестирование интеграцииТестирование интеграции

Примеры кода и тестовый сервер для проверки работы интеграции с License Manager API доступны в репозитории на GitHub.

Была ли статья полезна?

Предыдущая
Создание пробного периода
Следующая
Профиль партнера
Проект Яндекса
© 2025 ООО «Яндекс.Облако»