Управление лицензиями приложений ISV для предложений SaaS

Если вы включили управление лицензиями для предложений SaaS (доступно только для AppSource) в Центре партнеров, необходимо интегрировать с API graph usageRights Graph для поиска лицензий клиентов. API useRights используется для определения состояния лицензирования клиента, вызывающего решение, чтобы вы могли действовать соответствующим образом.

Важно!

Azure Active Directory (Azure AD) Graph не рекомендуется использовать с 30 июня 2023 г. Идти вперед, мы не делаем дальнейших инвестиций в Azure AD Graph. API Azure AD Graph не имеют соглашения об уровне обслуживания или обслуживании за пределами исправлений, связанных с безопасностью. Инвестиции в новые функции и функциональные возможности будут сделаны только в Microsoft Graph.

Мы отставим Azure AD Graph на добавочных шагах, чтобы у вас было достаточно времени для переноса приложений в API Microsoft Graph. На более позднюю дату, которую мы объявим, мы заблокируем создание новых приложений с помощью Azure AD Graph.

Дополнительные сведения см. в статье "Важно: выход на пенсию в Azure AD Graph и отключение модуля PowerShell".

API usageRights

API: тип ресурса usageRight

Использование API usageRights

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

  1. Получение пользователя от имени токена: см . сведения о получении доступа от имени пользователя
  2. Вызов Graph для получения идентификатора объекта пользователя: см . сведения об использовании API Microsoft Graph
  3. Вызов API usageRights, чтобы определить, у пользователя есть лицензия на план: см . список пользователей usageRights

Примечание.

Для вызова usageRights необходимо иметь минимальные разрешения User.Read. API usageRights в настоящее время находится в бета-версии. После обновления версии до версии 1 поставщики программного обеспечения должны обновляться с бета-версии до версии 1 при наличии.

Коды ответов

Код 200 с текстом ответа:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('ea201692-eb91-44e0-b82a-9dd4c78ced32')/usageRights",
    "@odata.nextLink": "https://graph.microsoft.com/beta/users/ea201692-eb91-44e0-b82a-9dd4c78ced32/usageRights?$skiptoken=ZXlKamIzTnRiM05FWWxSdmEyVnVJam9pVzN0Y0ltTnZiWEJ2YzJsMFpWUnZhMlZ1WENJNmUxd2lkRzlyWlc1Y0lqcHVkV3hzTEZ3aWNtRnVaMlZjSWpwN1hDSnRhVzVjSWpwY0lqRkdSa1pHUmtaR1JrWkdSa1pHUmtaR1JrWkdSa1pHUmt.......",
    "value": [
        {
            "id": "635991be-b7a3-4dd4-a48c-f1d39732fe94",
            "catalogId": "ID of the Product",
            "serviceIdentifier": "ISV friendly ID of the product, this is same as planID in partner center",
            "state": "active"
        }
    ]
}

Описание ответа API

  • Odata.nextLink: если запрос имеет несколько результатов и должен быть выстраивать страницу, Odata.nextLink находится в ответе. Это можно использовать для страницы результатов до тех пор, пока не появится значение Odata.nextLink, указывающее конец ответа.
  • serviceIdentifier: planId плана плана, приобретенного клиентом.
  • состояние: состояние лицензии. Все возможные значения состояния можно просмотреть в документации по API usageRights. Как правило, пользователь должен иметь возможность запустить решение, если состояние лицензии активно или предупреждение. Любое другое состояние означает, что подписка пользователя не находится в хорошем состоянии либо из-за истечения срока действия, приостановлена для неплатежения и т. д.
  • Код 200 с пустым ответом: скорее всего, это связано с тем, что у клиента нет лицензии.
  • Код 400 Недопустимый запрос: скорее всего, это связано с отсутствием полей при вызове API, например маркера носителя. Проверьте параметры вызова API.
  • Код 403 Запрещен. Скорее всего, это происходит из-за истечения срока действия или несанкционированного маркера. Убедитесь, что вы используете правильное приложение Microsoft Entra для проверки подлинности API graph usageRights Graph.
  • Ошибка внутреннего сервера кода 500: повторите вызов API. Если ошибка сохраняется, обратитесь к служба поддержки Майкрософт.

Примечание.

Если приложение Microsoft Entra, используемое для API выполнения SaaS, также используется для API usageRights, убедитесь, что клиент, в котором создается приложение добавления, является клиентом публикации или связанным клиентом в центре партнеров.

Выполните следующие действия, чтобы определить клиент, в который создается приложение Microsoft Entra, входит в программу установки центра партнеров:

  1. Войдите в Центр партнеров Майкрософт с учетной записью издателя, которая используется для публикации предложения SaaS.
  2. В разделе "Параметры" в правом верхнем углу выберите "Параметры учетной записи" и "Клиенты"
  3. Вы можете просмотреть все клиенты, связанные с учетной записью Microsoft AI Cloud Partner Program.
  4. Клиент, который является владельцем приложения Microsoft Entra, должен находиться в этом списке.
  5. Если клиент отсутствует в списке, можно использовать кнопку "Связать идентификатор Azure" для связывания клиента.

Screenshot illustrating the Microsoft Entra app list of tenants.