VS Code APS エクステンション v3 利用 – SSA アクセス

VS Code APS エクステンションで Secure Service Account(SSA)を利用して Forma(Forma Data Management) や Fusion(Fusion Contributor)にアクセス、プロジェクト内のデザインファイルにアクセス、Viewer で表示するプロセスをご紹介します。

おおまかな手順は次のようなものになります。APS エクステンション内部で APS API の呼び出しをともなうものは、カッコ内に API 名を記しておきます。

  1. Secure Service Account(SSA)の作成とアクセス設定
  2. APS エクステンション環境の設定と切り替え
  3. SSA でサインイン(Authentication API)
  4. プロジェクト データにアクセス(Data Management API)
  5. 変換済デザインの Viewer 表示(Viewer SDK)
  6. 明示的なサインアウト(Authentication API)

  1. Secure Service Account(SSA)の作成とアクセス設定

Autodesk Developer Blog : SSA Manager によるアクセストークンの取得 で SSA ロボット アカウントを作成します。

作成したロボット アカウントを Forma Data Management や Fusion Contributor のプロジェクトにアクセス出来るように設定します。ここでは、Forma で Autodesk Developer Advocacy ハブの Toshiaki-Forma-Project-0 プロジェクトと、Fusion で APS Japan Hub ハブの MyProject プロジェクトにロボット アカウントをプロジェクト メンバーとして追加、Forma にはプロジェクトのトップフォルダーにアクセス権を付与したものとします。


  1. APS エクステンション環境の設定と切り替え

SSA ロボット アカウントを作成した ”Server-to-server App” のアプリタイプのアプリ(Client ID)を環境に追加してください。ここでは aps-mcp-server-nodejs としておきます。

次に、VS Code を起動して画面左手のアクティビティバーのオートデスク アイコンをクリック(①)、APS サイドバー を表示させたら、コマンド パレットで Autodesk Platform Services: Switch Environment コマンドを実行して「環境」を aps-mcp-server-nodejs に切り替えます(②)。


  1. SSA でサインイン

APS サイドバーの Data & Derivatives (User) ペインにある [Sign in to APS] ボタンをクリック、サインインして Forma や Fusion がデータを保存しているストレージにアクセスします。

次のダイアログが表示されたら、[許可(A)] ボタンをクリックします。

入力パレットが表示されて、続いて、サインイン タイプの選択を求められるので、「Secure Service Account」を選択します。

  • アクティブになっている aps-mcp-server-nodejs 環境のアプリ(Client ID)で SSA を作成していないと、右下にエラー メッセージが表示されます。

アクティブになっている環境で作成したロボット アカウント(メールアドレス)がリストされるので、使用するロボット アカウントを選択します。

続いて、SSA_KEY_ID (SSA Manager によるアクセストークンの取得 の 7. でご案内している kid)を選択します。

最後の SSA の秘密鍵(Private Key)を持つ .pem ファイルの指定を求められます。使用する SSA ロボット アカウントの作成時にダウンロードした .pem ファイルを選択します。

  • 選択したロボット アカウントと .pem ファイルの内容が一致しないと、右下にエラー メッセージが表示されます。

SSA でアクセス トークンを生成する際のスコープ(Scope)を措定します。データ アクセス時に必要な Scope にチェックを入れて、右手の [OK] ボタンをクリックします。

SSA でのサインインが完了すると、Secure Service Accounts (App) ペインにサインインに使用した SSA ロボット アカウント(メール アドレス)と SSA_KEY_ID が表示されます。

  • アクティブな環境が持つ Client ID に紐づいた SSA ロボット アカウントがあると、Secure Service Accounts (App) ペインへの SSA ロボット アカウント(メール アドレス)と SSA_KEY_ID 表示は、2. の APS エクステンション環境の設定と切り替え をした時点で反映されます。
  1. プロジェクト データにアクセス

正常にサインインが完了すると、 Data & Derivatives (User) ペインに、サインインしたロボット アカウントがアクセス権を持つハブが表示されます。

ハブ名をクリックすると、配下のプロジェクトが、プロジェクト名をクリックすると、配下のフォルダーやファイルの一覧が表示されます。もちろん、フォルダー名をクリックすると、配下のフォルダーやファイルの一覧が表示されます。

  • Data & Derivatives (User) ペインに Forma のハブが表示されない場合には、アクティブな環境で使用している APS アプリ(Client ID)、ここでは aps-mcp-server-nodejs アプリの Client ID が Forma ハブで「カスタム統合」されていない可能性があります。別の表現をするなら、APS エクステンションが Forma にアクセスする際にも、アクセスに使用する Client ID がカスタム統合されている必要があります。

  1. 変換済デザインの Viewer 表示

SSA でサインインした Forma、Fusion 内の変換済 Derivative の表示、および、メタデータの取得方法は、VS Code APS エクステンション v3 利用 – 3-legged アクセス の 5. と同様です。

  • Forma、Fusion データ共に、ファイルをマウス右クリックすると Translation メニューが表示しますが、Forma Data Management、Fusion Contributor 側でデータがバージョン管理されているため、APS エクステンション側から変換処理をトリガーすることは出来ません。
  • VS Code APS エクステンション v3 利用 – 2-legged アクセス 同様、マニフェストやメタデータを取得することが可能です。

  1. 明示的なサインアウト

SSA でサインインした状態からのサインアウト手順は、VS Code APS エクステンション v3 利用 – 3-legged アクセス の 6. と同様です。

サインアウトすると、Data & Derivatives (User) ペインに表示されていたハブ配下の情報が消えて、次回のサインインに備えて [Sign in to APS] ボタンが表示されます。

  • Secure Service Accounts (App) ペイン補足

Secure Service Accounts (App) ペインに SSA ロボット アカウント(メール アドレス)と SSA_KEY_ID が表示された状態では、ロボット アカウント名をマウス右クリックして、メニューからロボット アカウントの詳細を表示させることが出来ます。

ロボット アカウント下に表示される SSA_KEY_ID をマウス右クリックすると、.pem ファイルとスコープの選択を経て、アクセス トークンを生成することも出来ます。取得したアクセス トークンは、ロボット アカウントに許可したプロジェクト(やフォルダー)のみにアクセスを権限を持つことになります。