SaaS 产品/服务的 ISV 应用许可证管理

如果在合作伙伴中心为 SaaS 产品/服务(当前仅适用于 AppSource)启用了许可证管理,则必须与 usageRights Graph API 集成,才能查找客户的许可证。 使用 usageRights API 来确定调用解决方案的客户的许可状态,以便可以相应地采取行动。

重要

截至 2023 年 6 月 30 日,已弃用 Azure Active Directory (Azure AD) Graph。 今后,我们在 Azure AD Graph 中没有进一步的投资。 除了与安全相关的修补程序之外,Azure AD Graph API 没有 SLA 或维护承诺。 对新特性和功能的投资将仅在 Microsoft Graph 中进行。

我们将以增量步骤停用 Azure AD Graph,以便有足够的时间将应用程序迁移到 Microsoft Graph API。 稍后我们将宣布,我们将阻止使用 Azure AD Graph 创建任何新应用程序。

若要了解详细信息,请参阅 重要说明:Azure AD Graph 停用和 Powershell 模块弃用

usageRights API

APIusageRight 资源类型

如何使用 usageRights API

可以调用 usageRights Graph API 来确定已登录用户购买套餐订阅的许可证状态。 若要调用 API,请执行以下步骤:

  1. 代表令牌获取用户:请参阅 代表用户获取访问权限
  2. 调用 Graph 以获取用户的对象 ID:请参阅 使用 Microsoft Graph API
  3. 调用 usageRights API 以确定用户具有计划许可证:请参阅 列表用户 usageRights

注意

需要具有调用 usageRights 的最低 User.Read 权限。 usageRights API 目前为 beta 版本。 将版本更新到 V1 后,ISV 应在可用时从 beta 版本升级到 V1 版本。

响应代码

包含响应正文的代码 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。
  • state:许可证的状态。 可以在 usageRights API 文档中查看所有可能的状态值。 通常,如果用户的许可证状态处于活动状态警告,则用户应能够运行解决方案。 任何其他状态都意味着用户的订阅状况不佳,因为它已过期,因未付款而暂停,等等。
  • 带空响应的代码 200: 这可能是因为客户没有分配许可证。
  • 代码 400 错误请求: 这可能是由于调用 API(如持有者令牌)时缺少字段。检查 API 调用参数。
  • 代码 403 禁止访问: 这可能是由于令牌已过期或未经授权的。验证是否使用正确的 Microsoft Entra 应用对 usageRights Graph API 进行身份验证。
  • 代码 500 内部服务器错误:重试 API 调用。如果错误仍然存在,请联系Microsoft 支持部门。

注意

如果用于 SaaS 履行 API 的 Microsoft Entra 应用也用于 usageRights API,请确保创建添加应用的租户是合作伙伴中心的发布租户或关联租户。

使用以下步骤确定创建 Microsoft Entra 应用所属的租户是合作伙伴中心设置的一部分:

  1. 使用用于发布 SaaS 产品/服务的发布者帐户登录到 Microsoft 合作伙伴中心
  2. 在右上角的设置链接下,选择“帐户设置”,然后选择“租户”
  3. 可以看到 Microsoft AI 云合作伙伴计划帐户中关联的所有租户。
  4. Microsoft Entra App 所有者的租户应位于此列表中。
  5. 如果租户不在列表中,可以使用“关联 Azure ID”按钮链接租户。

Screenshot illustrating the Microsoft Entra app list of tenants.