SaaS オファーの ISV アプリ ライセンス管理

パートナー センターで SaaS オファーのライセンス管理 (現在は AppSource でのみ利用可能) を有効にした場合は、usageRights Graph API と統合して顧客のライセンスを検索する必要があります。 usageRights API を使用して、ソリューションを呼び出す顧客のライセンス状態を判断し、それに応じて対処できるようにします。

重要

Azure Active Directory (Azure AD) Graph は、2023 年 6 月 30 日の時点で非推奨となっています。 今後、Azure AD Graph への投資は行いません。 Azure AD Graph API には、セキュリティ関連の修正プログラムを超える SLA またはメインテナント コミットメントはありません。 新機能への投資は Microsoft Graph に対してのみ行われます。

アプリケーションを Microsoft Graph API に移行するのに十分な時間を確保できるように、段階的な手順で Azure AD Graph を廃止します。 後日お知らせしますが、Azure AD Graph を使用して新しいアプリケーションの作成をブロックします。

詳細については、「重要: Azure AD Graph の廃止と PowerShell モジュールの廃止」を参照してください

usageRights API

API: usageRight リソースの種類

usageRights API の使用方法

usageRights Graph API を呼び出して、オファーのサブスクリプションを購入したログイン ユーザーのライセンスの状態を確認できます。 API を呼び出すには、次の手順に従います。

  1. トークンの代理としてユーザーを取得する: ユーザーに代わってアクセス権を取得する
  2. Graph を呼び出してユーザーのオブジェクト ID を取得する: Microsoft Graph API の使用を参照してください
  3. usageRights API を呼び出して、ユーザーがプランのライセンスを持っているかどうかを判断します。ユーザーの usageRights の一覧を参照してください

Note

usageRights を呼び出すには、User.Read の最小アクセス許可が必要です。 usageRights API は現在ベータ版です。 バージョンが V1 に更新された後、ISV はベータ版から 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 サポートにお問い合わせください。

Note

SaaS フルフィルメント API に使用する Microsoft Entra アプリが usageRights API にも使用されている場合は、追加アプリが作成されるテナントが、パートナー センターの発行テナントまたは関連付けられているテナントであることを確認します。

次の手順を使用して、Microsoft Entra App が作成されるテナントがパートナー センターのセットアップの一部であることを確認します。

  1. SaaS オファーの発行に 使用する発行元アカウントを使用して、Microsoft パートナー センター にログインします。
  2. 右上隅の [設定] リンクで、[アカウント設定] を選択し、[テナント] を選択します
  3. Microsoft AI Cloud パートナー プログラム アカウントに関連付けられているすべてのテナントを表示できます。
  4. Microsoft Entra アプリの所有者であるテナントは、この一覧に含まれている必要があります。
  5. テナントが一覧にない場合は、[Azure ID の関連付け] ボタンを使用してテナントをリンクできます。

Screenshot illustrating the Microsoft Entra app list of tenants.