SaaS サブスクリプション ライフサイクルの管理

コマーシャル マーケットプレースでは、エンド ユーザーによる購入後の SaaS サブスクリプションのライフ サイクル全体が管理されます。 また、実際の SaaS サブスクリプションのアクティブ化、使用、更新、および取り消しを駆動するメカニズムとして、ランディング ページ、Fulfillment API、Operations API、Webhook が使用されています。 エンド ユーザーの請求書は、Microsoft が管理する SaaS サブスクリプションの状態に基づきます。

SaaS サブスクリプションの状態

次の図は、SaaS サブスクリプションの状態と適用できるアクションを示しています。

マーケットプレースでのサービスとしてのソフトウェア サブスクリプションのライフ サイクルを示す図。

購入済みであるが、まだアクティブ化されていない (PendingFulfillmentStart)

エンド ユーザーまたはクラウド ソリューション プロバイダー (CSP) がコマーシャル マーケットプレースで SaaS プランを購入すると、その購入が公開元に通知されます。 その後、公開元はそのエンド ユーザー用に、公開元側で新しい SaaS アカウントを作成して構成できます。

アカウントの作成が行われるようにするには:

  1. 顧客は Microsoft AppSource または Azure portal での購入が正常に終了した後に、SaaS オファーで使用可能な [Configure account now]\(今すぐアカウントを構成\) ボタンを選択します。 または、購入後すぐに受信する メールの [今すぐ 構成] ボタンを使用することもできます。
  2. その後、新しいブラウザー タブで token パラメーター (コマーシャル マーケットプレースからの購入 ID トークン) を含むランディング ページの URL が開かれることで、Microsoft からパートナーに対して購入に関する通知が行われます。

このような呼び出しの例として https://contoso.com/signup?token=<blob> がありますが、パートナー センターでは、この SaaS オファーのランディング ページの URL は https://contoso.com/signup として構成されています。 このトークンにより、SaaS の購入と顧客を一意に識別する ID が発行者に提供されます。

ヒント

ランディング ページの URL にはシャープ記号 (#) を含めないでください。 そうしないと、顧客はランディング ページにアクセスできません。

重要

ランディング ページの URL は毎日一日中稼働し、いつでも Microsoft からの新しい呼び出しを受け取る準備ができている必要があります。 ランディング ページが使用できなくなった場合、お客様は SaaS サービスにサインアップして使用を開始することができません。

次に、公開元は Microsoft に "トークン" を返す必要があります。これは、SaaS Resolve API を呼び出し、x-ms-marketplace-token header パラメーターの値としてそのトークンを入力して行います。 Resolve API 呼び出しの結果として、そのトークンが、購入の一意の ID、購入されたオファーの ID、購入されたプランの ID などの SaaS 購入の詳細と交換されます。

ランディング ページで、顧客は Microsoft Entra シングル サインオン (SSO) を使用して新規または既存の SaaS アカウントにサインインする必要があります。

Note

顧客が Microsoft 側からの構成プロセスを開始するまで、SaaS の購入は公開元に通知されません。

公開元は、このフローに Microsoft が要求するユーザー エクスペリエンスを提供するために、SSO を実装する必要があります。 SSO を構成するときは、マルチテナント Microsoft Entra アプリケーションを使用し、職場と学校のアカウントまたは個人の Microsoft アカウントの両方を許可してください。 この要件が適用されるのはランディング ページのみで、Microsoft 資格情報を使用して既にサインインしているときに SaaS サービスにリダイレクトされるユーザー向けです。 SSO は、SaaS サービスへのすべてのサインインに必要とされるわけではありません。

Note

SSO で、管理者がアプリに対するアクセス許可を付与しなければならないことが求められる場合、パートナー センターでのオファーの説明で、管理者レベルのアクセス許可が必要であることを明記する必要があります。 この開示は、コマーシャル マーケットプレースの認定ポリシーに準拠するためです。

サインインした後、顧客は公開元側で SaaS 構成を完了する必要があります。 その後、公開元は、SaaS アカウントのプロビジョニングが完了したことを示す通知を Azure Marketplace に送信するために、Activate Subscription API を呼び出す必要があります。 このアクションにより、顧客の支払いサイクルが開始されます。 Activate Subscription API 呼び出しが成功しなかった場合、顧客は購入に対して課金されません。

プロビジョニング シナリオの API 呼び出しを示す図。

購入者と課金アカウント所有者の両方に、アカウントの構成を要求する電子メールが届きます。

Note

状態が PendingFulfillmentStart の場合、パブリッシャーは資産を解決するのに 30 日間を費やします。それ以外の場合は、支払いサイクルが開始されず、それぞれの購入に課金されないため、資産は無効になり、ステータスは [登録解除済み]変わります。 顧客は購入に対して課金されません。

アクティブ (Subscribed)

"アクティブ (Subscribed)" は、プロビジョニング済み SaaS サブスクリプションの安定した状態です。 Microsoft 側で Activate Subscription API 呼び出しが処理された後、SaaS サブスクリプションが Subscribed としてマークされます。 これで、顧客は発行元側で SaaS サービスを使用できるようになり、課金されます。

SaaS サブスクリプションが既にアクティブになっている場合、顧客は Azure portal または Microsoft 365 管理センターから [SaaS エクスペリエンスの管理] を選択することができます。 また、この操作により、アクティブ化フローの場合のように、Microsoft が token パラメーターを使用して ランディングページの URL を呼び出すことになります。 公開元は、新規購入と既存の SaaS アカウントの管理を区別し、このランディング ページの URL 呼び出しを適宜処理する必要があります。

アクティブ化通知メールは、購入者と課金アカウント所有者の両方に送信されます。

更新中 (Subscribed)

このアクションは、既存のアクティブな SaaS サブスクリプションに対する更新が、Microsoft と公開元の両方で処理中であることを意味します。 このような更新は、次のユーザーによって開始することができます。

  • コマーシャル マーケットプレースから顧客によって。
  • コマーシャル マーケットプレースから CSP によって。
  • 公開元の SaaS サイトから顧客によって (CSP が行った購入は対象外)。

SaaS サブスクリプションに対して 2 種類の更新ができます。

  • 顧客がサブスクリプションに対して別のプランを選択した場合に、プランを更新します。
  • 顧客がサブスクリプションの購入済みライセンスの数を変更したときに数量を更新します。

アクティブなサブスクリプションのみを更新できます。 サブスクリプションが更新されている間は、Microsoft 側ではアクティブな状態のままとなります。

コマーシャル マーケットプレースから開始された更新

このフローでは、お客様は Azure portal または Microsoft 365 管理 Center からサブスクリプション プランまたはライセンスの数量を変更します。

  1. 更新が入力された後、Microsoft によって、パートナー センターの [技術的な構成] ページにある [接続 Webhook] フィールドに構成されている公開元の Webhook URL が、action およびその他の関連するパラメーターの適切な値を使用して呼び出されます。
  2. 公開元側は SaaS サービスに対して必要な変更を行い、Update Status of Operation API を呼び出すことで完了時に Microsoft に通知します。
  3. "失敗" の状態でパッチが送信されると、更新プロセスは Microsoft 側で完了しません。 SaaS サブスクリプションでは、既存のプランとライセンス数が保持されます。

Note

公開元は、Webhook 通知を受信した後 "10 秒以内に" PATCH を呼び出して、Failure または Success の応答で Status of Operation API を更新する必要があります。 10 秒以内に操作状態の PATCH を受け取らない場合、変更計画に成功として自動的に修正プログラムが適用されます。

コマーシャル マーケットプレースから開始される更新シナリオ向けの一連の API 呼び出しを、次の図に示します。

マーケットプレースで開始された更新の API 呼び出しを示す図。

発行者から開始された更新

このフローでは、顧客は SaaS サービス自体から購入したサブスクリプション プランまたはライセンスの数量を変更します。

  1. 要求された変更を公開元側で行う前に、公開元のコードで Change Plan API または Change Quantity API あるいはその両方を呼び出す必要があります。
  2. Microsoft はサブスクリプションに変更を適用し、接続 Webhook を使用して、同じ変更を適用するように発行者に対して通知します。
  3. その段階でようやく、公開元は SaaS サブスクリプションに対して必要な変更を行い、変更が完了したら Update Status of Operation API を呼び出して Microsoft に通知します。

公開元側から開始される更新シナリオ向けの一連の API 呼び出しを、次の図に示します。

公開元側で開始された更新の API 呼び出しを示す図。

プランの変更を示す通知メールが購入者と課金アカウント所有者の両方に送信されます。

数量の変更を示す通知メールが、購入者と請求先アカウント所有者の両方に送信されます。

中断 (中断)

この状態は、SaaS サービスに対する顧客の支払いが受け取られていないことを示します。 公開元には、SaaS サブスクリプションの状態のこの変更が Microsoft によって通知されます。 この通知は、action パラメーターを Suspended に設定した Webhook の呼び出しによって行われます。

公開元は、公開元側で SaaS サービスへの変更を行うことも、行わないこともあります。 公開元側で、中断された顧客に対してこの情報が提供されるようにし、SaaS サービスへの顧客のアクセスを制限またはブロックすることをお勧めします。 支払いが一切受け取られない可能性があります。

Note

Microsoft は、サブスクリプションを自動的に取り消す前に、30 日間の猶予期間を顧客に提供します。 30 日間の猶予期間が過ぎた後、Webhook は Unsubscribe アクションを受け取ります。

サブスクリプションが Suspended 状態にある場合:

  • パートナーまたは ISV は SaaS アカウントを復旧可能な状態にしておく必要があります。これにより、データや設定を失わずにすべての機能を復元できます。
  • パートナーまたは ISV は、猶予期間中に支払いが発生した場合は、サブスクリプションの復帰要求を想定し、そうでなければ、猶予期間の終わりにこのサブスクリプションのプロビジョニング解除要求を想定してください。 両方の要求は、Webhook メカニズムを使用して送信されます。

発行者が何らかのアクションを実行する前に、サブスクリプションの状態が Microsoft 側で "中断" に変更されます。 アクティブなサブスクリプションのみを中断できます。

状態が "中断済み" であることを示す通知メールが、購入者と課金アカウント所有者の両方に送信されます。

30 日間の一時停止期間を過ぎると、一時停止後のキャンセルに関する電子メールが購入者と課金アカウント所有者の両方に送信されます。

復帰 (中断)

このアクションは、顧客の支払い方法が再び有効になり、SaaS サブスクリプションに対して支払いが行われており、サブスクリプションが復帰中であることを示します。 この場合、次のようになります。

  1. Microsoft によって、action パラメーターを Reinstate の値に設定した Webhook が呼び出されます。
  2. 公開元で、このサブスクリプションを再び完全に運用可能にします。
  3. 復帰プロセスが成功し、顧客に SaaS サブスクリプションの請求が再び行われます。

中断されたサブスクリプションのみを復帰させることができます。 中断された SaaS サブスクリプションは、復帰中は Suspended 状態のままです。 この操作が完了すると、サブスクリプションの状態は "アクティブ" になります。

中断状態から復帰状態への移行後、購入者と課金所有者の両方に電子メールが送信されます。

更新済み (サブスクライブ済み)

SaaS サブスクリプションは、1 か月または 1 年間のサブスクリプション期間の終了時に Microsoft によって自動的に更新されます。 自動更新設定の既定値は、すべての SaaS サブスクリプションで true です。 アクティブな SaaS サブスクリプションは、定期的に更新され続けます。 Microsoft では、更新イベントに関する情報提供専用の Webhook 通知を提供しています。 顧客は、Microsoft 365 管理ポータル経由で、SaaS サブスクリプションの自動更新を無効にすることができます。 この場合、SaaS サブスクリプションは、現在の請求期間の終了時に自動的に取り消されます。 また、顧客はいつでも SaaS サブスクリプションを取り消すことができます。

アクティブなサブスクリプションのみが自動的に更新されます。 サブスクリプションは、更新プロセス中および自動更新が成功した場合はアクティブに維持されます。 更新後、サブスクリプション期間の開始日と終了日が新しい期間の日付に更新されます。

支払いの問題によって自動更新が失敗した場合、サブスクリプションは Suspended になり、公開元に通知されます。

更新に関するリマインダーメールは、毎年または複数年の更新日の 30 日前に、購入者と課金アカウントの所有者の両方に送信されます。

取り消し (登録解除済み)

サブスクリプションは、公開元サイト、Azure portal、または Microsoft 365 管理センターからサブスクリプションを取り消すという、顧客または CSP の明示的なアクションに呼応して、この状態になります。 サブスクリプションは、料金未払いの結果として 30 日間 Suspended 状態になった後、暗黙的に取り消すこともできます。

公開元は取り消しの Webhook 呼び出しを受け取ったら、要求に応じて復旧できるように顧客データを少なくとも 7 日間保持する必要があります。 その段階でようやく、顧客データを削除できます。

SaaS サブスクリプションは、ライフサイクルの任意の時点で取り消すことができます。 サブスクリプションは、取り消された後に再びアクティブにすることはできません。

キャンセルメールは、購入者と課金アカウントの所有者の両方に送信されます。

次のステップ

ビデオ チュートリアル