オートデスク デベロッパーネットワーク(ADN)

Autodesk App ストア: アプリでのコピー保護の実装

このドキュメントは、Autodesk App ストアに公開する有償アプリに単純なコピー保護/ラインセンス機構を実装する方法を説明するものです。実装には、2 つのステップが必要となります:

  1. 有償アプリとしての Autodesk App ストアへアプリを設定する。
  2. 正しく IPN 通知を処理出来るよう、アプリまたはバックエンド Web サーバー/アプリとバックエンド Web サーバー構築する。


Autodesk App ストアでの有償アプリの設定

有償アプリを提出するには、下記のように、価格タイプに “USD” を選択してください。


選択した保護処理の方法に依って、下図のように、PayPal または、BlueSnap の Instant Payment Notification(即時支払い通知)を有効化する必要があります。

お使いになる Web サービス IPN ハンドラを入力することが出来ます。


有償アプリの保護

オートデスクは、有償アプリに保護に使用出来る 2 つのメカニズムを提供しています。ただし、これを実装するには、どのアプローチでも、いくつかのコーディング作業が必要となります。2 つのオプションとは、次のとおりです:

1. Autodesk App ストアの Entitlement Web サービス(Entitlement API)を使用する方法
2. Autodesk App ストア サーバーが中継した、BlueSnap や PayPal のInstant Payment Notification(即時支払い通知) を利用するカスタム ビルドした Web サービスを使用する方法


Entitlement API の使用

これは、有償アプリの保護処理する最も単純なオプションで、独自の Web サーバーを構築せずに、アドイン アプリだけで、すべての保護処理をおこなう場合の唯一のオプションです。

アプリは、Entitlement API にアプリを識別する一意な ID と、オートデスク製品内で実行中のアプリに現在サインイン中のエンドユーザの Autodesk ID を渡す、単純な HTTP(REST)呼び出しをおこないます。Entitlement API は、エンドユーザがこのアプリを使用する ‘権限’を持っているかどうか応答します(例、エンドユーザがアプリを購入したいたかどうかを返す)。

この部分の詳細は、アプリ内での Entitlement API の利用方法を説明した別のドキュメントを参照してください。


カスタム ビルドした Web サービスの使用

独自の Web サービスの作成する利点は、アプリの使用方法をトラッキングしたり、コントロールしたり出来るようになる点です。これには、特定のコンピュータにアプリ利用を固定したり、エンドユーザからアプリの利用状況を収集したりすることも含まれます。例えば、利用パターンやエラーをモニターすることが出来ます。

独自の Web サービスを使って有償アプリを保護するには、下記の点が必要となります。

  1. 次の実装を持つ Web サービスを構築します。
    a.  IPN 通知を判断する
    b.  コンピュータ/ユーザ アカウントを管理する
    c.  要求に応じて、正しいユーザの権限ステータスを返す
  2. アプリ内から、与えられたユーザ/コンピュータのユーザ権限ステータスを取得する、Web サービス(Step 1 で作成された)のコンタクト要求ロジックを実装する。


カスタム ビルド Web サービスのサンプル ワークフロー:


1. ユーザが Autodesk App ストアからアプリを購入する

ユーザがアプリを購入する際に、Autodesk App ストアはアプリの公開ワークフローで登録した Web サービスに、IPN 通知を中継します。

2. IPN データを解析してユーザ アカウントを作成/編集する

カスタム ビルドした Web サービス IPN 通知から必要な情報を展開します(例、Email アドレス、アプリ名、支払いID、支払日など)。一意なアクティベーション ID(GUID)を生成して、アプリを購入したユーザにメールで送信します。次に、Web サービスは、ユーザ データを保存するために利用するデータベース テーブルに新しいエントリを追加します。保存したデータは、ユーザの Email アドレス、一意なアクティベーション ID、ユーザの一意なマシンのロックコードなどを含むことになるはずです。

3. ユーザがアプリをインストールして実行する

新しいユーザはアプリを初めて使用する際には、Step 2 でアプリ公開元から提供された一意なアクティベーション ID の入力を促すダイアログ ボックスを表示します。入力か完了すると、アプリはネットワーク ポート ID のような一意なマシン ロック コードを取得して、アクティベーション ID に関連つけた形でアプリ公開元 Web サービスに送信します。

4. アプリが有効化される

一意なアクティベーション ID とマシン ロック コード(Step 3)を受信すると、Web サービスはマシン ロック コードでデータベースを更新して、次に、Web サービスからアプリに成功メッセージが送信されます。成功メッセージを受信すると、アプリは有効化されて実装する機能を実行できるようになります。もし、同じユーザ用に既にマシン ロック コードが記録されている場合には(ユーザが2台目のコンピュータでアクティベーションを試みている場合)、リクエストは拒否されて失敗メッセージがアプリに返されます。アプリは、直ちにエラーメッセージを表示して、動作を停止します。この手順で、特定のコンピュータにアプリをロックすることが出来るようになります。

5. アプリを実行する

アプリが使用されている際には、定期的にユーザの権限状況を取得するために、アクティベーション ID とマシン ロック コードで Web サービスにコンタクトします。Web サービスは、ユーザ テーブルに対して受信したデータを確認して、適切なステータスを返します。

上記のワークフローを実装するサンプル コードは、https://github.com/ADN-DevTech/Termlicensing を参照してください。


その他の情報

ADN チームは、成功裏に Autodesk App ストアの公開元/パブリッシャーになるお手伝いをします。もし、ご質問等があれば、appsinfo@autodesk.com まで電子メールをお送りください。