今迄、このブログでご案内していなかったものに Scope があります。Forge の正式リリース前に存在いた View and Data API や AutoCAD I/O では、当初、Scope 指定はオプション扱いでしたが、現在では 必須 のパラメータとなっています。
日本でも 3-legged OAuth で BIM 360 Docs への統合や 、Design Automation API v3(Beta)で各種コア エンジンの利用を検討されている方も増えていますので、適切なアクセス権限を持った Access Token を取得出来るように、改めて Scope について触れておきたいと思います。
ご存知のように、Forge Platform API で使用する endpoint 呼び出しでは、事前に Authentication API(OAuth API)で適切なアクセス権限が設定された Access Token を指定する必要があります。このアクセス権限を指定するのが Scope(スコープ)の役割です。アクセス権限は使用する endpoint によって異なるため、事前に API リファレンスでチェックしておく必要があります。
一般的な Forge アプリでは、複数の endpoint 呼び出しでタスクを実行するので、1 つの Scope 値では権限の不足した Access Token しか取得することが出来ません、このため、Scope は複数の Scope 値を ’ ’(半角スペース)で結合した文字列を指定することが可能です。
上図で示した Bucket の読み出しと Bucket の作成を実行するには、’bucket:read' と 'bucket:create' を半角スペース(URL ENCODE で ’%20’)で結合した 'bucket:read bucket:create' を Scope 値として Access Token を取得出来るので、両者の endpoint を呼び出すことが可能です「。
この組み合わせに利用出来る Scope 文字列の値は、次のとおりです。
Scope 文字列 |
意味 |
user-profile:read |
プロファイル(Autodesk ID)の表示 |
user:read |
プロファイル(Autodesk ID)の読み取り |
user:write |
プロファイル(Autodesk ID)の書き込み |
viewables:read |
変換後のデザインデータ(SVF)の読み取り(表示) |
data:read |
ストレージ データの読み取り |
data:write |
ストレージ データの書き込み(編集) |
data:create |
ストレージ データの作成 |
data:search |
ストレージ データの検索 |
bucket:create |
新しい OSS Bucket の作成 |
bucket:read |
OSS Bucket の読み取り |
bucket:update |
OSS Bucket の更新 |
bucket:delete |
OSS Bucket の削除 |
code:all |
コードの生成または実行(Design Automation API) |
account:read |
アプリやサービス アカウントの読み取り |
account:write |
アプリやサービス アカウントの書き込み |
よく利用される Viewer ソリューション以外で特異なのは、Design Automation API の利用時に指定する code:all です。
同様に、予め変換済の SVF を Viewer で表示するだけの Forge アプリでは、viewables:read だけの指定でアプリの動作をカバー出来る点に留意してください。不必要に多くのアクセス権限を設定した Access Token の運用は、セキュリティ上、お勧めしません。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。