オートデスク SaaS ストレージの利用: オートデスクスト …...Forge Online...

Post on 25-Sep-2020

4 views 0 download

Transcript of オートデスク SaaS ストレージの利用: オートデスクスト …...Forge Online...

Forge Online

伊勢崎 俊明オートデスク 株式会社

オートデスク SaaS ストレージの利用:オートデスク ストレージ サービスの理解

2

デスクトップからクラウドへ

3

2014年9月

autodesk360.comプロジェクト ベースの管理

360.autodesk.comフォルダ ベースの管理

2012年3月 360.autodesk.comフォルダ ベースの管理

documents.cloud.autodesk.com

2015年9月

新生 A360A360 Drive 統合

プロジェクト ベース管理ファイル操作を追求

a360.autodesk.com

ストレージ サービスの発展と分化

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/10/transition-on-autodesk-cloud-storage-service.html

4

建設業に特化

プロジェクト ベース管理a360.autodesk.com

製造業に特化

プロジェクト ベース管理a360.autodesk.com

建設業に特化

プロジェクト ベース管理

BIM 360 Docs

個人用に特化

プロジェクト ベース管理a360.autodesk.com

2016年8月

2018年4月

360.autodesk.comフォルダ ベースの管理

drive.autodesk.comフォルダ ベースの管理

AUTODESK DRIVE

サブスクリプションに特化

docs.b360.autodesk.com

2020年5月

~ 続き

API 公開

5

6A360 のストレージ構造

Project Service

Data Service

Object Storage Service

Hub Project

FolderItem

Version

OSS

Item

Version

OSSOSS

Forge アプリ Forge アプリ

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2017/04/cloud-storage-forge-uses.html

7

プロジェクト フォルダ(Project)

A360 の理解

プロジェクト ファイル(Item、Version)

ハブ(Hub)

8A360 の理解

§ 1 つの Autodesk ID は複数の Hub への関連付けが可能§ 他者からプロジェクトに招待/共有された場合も

9プロジェクト メンバーの招待と管理

§ プロジェクト管理者のみ可能

10ファイル単位の共有

§ 共有リンクの生成とプライバシー設定

11Forge でサポートされる構造

§ プロジェクト ベース をサポート§ A360 Personal、Fusion Team、BIM 360 Docs§ Data Management API でアクセス可能

§ フォルダ ベース は未サポート§ Autodesk Drive§ プロジェクト ベースのストレージ領域とは独立§ 対応 API は未公開

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2019/01/about-obscure-things-on-a360-storage-service.html

12SaaS へアップロードされたファイルは自動変換される

13

認証/認可

ファイル変換

DWGバッチ処理

データ操作2D/3D 表示

2D 写真→3D 変換

アカウント&

プロジェクト操作

通知2D/3D データのビューア表示する場合

14A360/Fusion Team/BIM 360 Docs データ統合

A360/Fusion Team/

BIM 360 Docs のデータを参照して

Forge で独自実装を提供(受託開発)

Forge Online

伊勢崎 俊明オートデスク 株式会社

オートデスク SaaS ストレージの利用:SaaS ストレージ内の SVF アクセス

16Forge を始めるには?

§ まずは https://forge.autodesk.com/ へ

§ 目的はデベロッパ キーの取得§ Client Key(別名:Consumer Key)§ Client Secret(別名:Consumer Secret)

1 2 3

Autodesk ID でサインイン Forge アプリ作成 開発

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2019/04/how-to-get-started-forge.html

17

Forge ポータル(forge.autodesk.com)

JavaScript

JavaScript

貴社アプリWeb サーバー

RESTful API

JavaScript

JavaScript

JavaScript

HTML

Client IDClient Secret

Access Token

デベロッパ キーとアクセス トークン

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/11/about-access-token.html

18シナリオ/目的に応じた認証

Project Service

Data Service

Object Storage Service

Hub Project

FolderItem

Version

OSS

Item

Version

OSSOSS

2-legged OAuth

Forge アプリ Forge アプリ

3-legged OAuth

Forge アプリがデータを直接管理・運用する方法-2-Legged OAuth -

ForgeアプリがA360/Fusion Team/BIM 360 Docs

のユーザ データ領域にアクセスして運用する方法

-3-Legged OAuth -

Bucket

参考ブログ記事:http://adndevblog.typepad.com/technology_perspective/2016/08/oauth-authentication-scenario-on-forge.html

19A360/Fusion Team/BIM 360 Docs データ統合

A360/Fusion Team/

BIM 360 Docs のデータを参照して

Forge で独自実装を提供(受託開発)

20シナリオ/目的に応じた認証

Project Service

Data Service

Object Storage Service

Hub Project

FolderItem

Version

OSS

Item

Version

OSSOSS

2-legged OAuth

Forge アプリ Forge アプリ

3-legged OAuth

Forge アプリがデータを直接管理・運用する方法-2-Legged OAuth -

ForgeアプリがA360/Fusion Team/BIM 360 Docs

のユーザ データ領域にアクセスして運用する方法

-3-Legged OAuth -

Bucket

21

forge.autodesk.com からアカウント登録とアプリの作成 (手動)

ユーザ ストレージ アクセス許可とAccess Token の取得 (RESTful API)

1.Hub へのアクセス (RESTful API)

2.Project へのアクセス (RESTful API)

3.Folder へのアクセス (RESTful API)

4.Item へのアクセス (RESTful API)

5.Version へのアクセス (RESTful API)

6.クライアントからのアクセス (RESTful API & JavaScript API)

Data Management API

Authentication API

Model Derivative API(変換が必要な場合)

Viewer

デザイン データの用意

Client ID/Secret の取得

3-legged OAuth

22A360

Fusion TeamBIM 360 Docs データにアクセスするには?

23認証(Authentication)と認可(Authorization)

§ A360/Fusion Team/BIM 360 Docs 上のデータ§ Autodesk ID でサインインした

エンドユーザのみがアクセス可能

§ Forge アプリは通常アクセス不可、ただし、§ エンドユーザからの認可があればアクセスが可能に!§ 3-legged OAuth の仕組みが認可プロセスを実現§ Callback URL 実装を利用

23

、ただし、

243-legged OAuth での Viewer 利用手順の理解

§ ストレージ所有のエンドユーザはユーザ名/パスワードを入力§ エンドユーザはアプリのデータ アクセスを認可する必要§ 全ファイルはエンドユーザ アカウント配下に保存される

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2017/08/getting-3-legged-oauth-access-token-using-forge-sdk.html

③②

25RESTful API のテストツール

§ Postman§ https://www.getpostman.com/§ コードを書かずに RESTful API のテストが可能

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2016/09/restful-api-and-testing-tools.html

26My Apps からのアプリ登録

どのAPIを使うか指定

アプリ情報を入力

Callback URL !!

27Postman でのコールバック URL 指定

https://www.getpostman.com/oauth2/callback

28Postman を使った 3-legged OAuth のテスト

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2016/12/3-legged-authentication-on-postman.html

29エンドユーザ認可のプロセスとは?

① Forgeアプリにアクセスすると当該ストレージの所有者であるエンドユーザにサインインを促すユーザ名(Autodesk ID)画面に遷移

② 同じくパスワード入力画面に遷移

③ サインインが完了した時点でForge アプリが指定した Scope に沿って Forgeアプリからのアクセスを認可するか確認する画面に遷移

30

forge.autodesk.com からアカウント登録とアプリの作成 (手動)

ユーザ ストレージ アクセス許可とAccess Token の取得 (RESTful API)

1.Hub へのアクセス (RESTful API)

2.Project へのアクセス (RESTful API)

3.Folder へのアクセス (RESTful API)

4.Item へのアクセス (RESTful API)

5.Version へのアクセス (RESTful API)

6.クライアントからのアクセス (RESTful API & JavaScript API)

Data Management API

Authentication API

Model Derivative API(変換が必要な場合)

Viewer

デザイン データの用意

Client ID/Secret の取得

Viewer 表示までのステップ

31

forge.autodesk.com からアカウント登録とアプリの作成 (手動)

ユーザ ストレージ アクセス許可とAccess Token の取得 (RESTful API)

GET hubs

GET hubs/:hub_id/projects

GET projects/:project_id/folders/:folder_id/contents

GET projects/:project_id/items/:item_id

GET projects/:project_id/versions/:version_id

LMV Ninja

Data Management API

Authentication API

Model Derivative API(変換が必要な場合)

Viewer

デザイン データの用意

Client ID/Secret の取得

Viewer 表示までのステップと endpoint

32Postman コレクションの利用

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2016/12/understanding-steps-to-use-viewer-on-postman2.html

Forge Online

伊勢崎 俊明オートデスク 株式会社

オートデスク SaaS ストレージの利用:Forge SDK を使った 3-legged OAuth

34Forge ポータル - https://forge.autodesk.com

§ Forge の情報を集約

35Forge サンプル

§ Forge ポータル下部 Code Samples からのアクセス

36Forge SDK

§ RESTful API をラップするサーバー実装用ユーティリティ

参考ブログ記事: http://adndevblog.typepad.com/technology_perspective/2017/01/forge-sdk.html

37Forge SDK と Forge SDK のサンプル

§ 実際に使用するページ§ https://github.com/Autodesk-Forge/forge-api-nodejs-client

§ forge-api-nodejs-client リポジトリ内のサンプルを参照

Workshop で使用

38Forge SDK(Node.js)を使ったコールバック実装例

var express = require("express");var ForgeSDK = require('./../src/index');var app = express();

var CLIENT_ID = '<Your Client ID>‘, CLIENT_SECRET = '<Your Client Secret>';var REDIRECT_URL = '<Your Callback URL>’;

var autoRefresh = false;var oAuth2ThreeLegged = new ForgeSDK.AuthClientThreeLegged(CLIENT_ID, CLIENT_SECRET,

REDIRECT_URL, ['data:write', 'data:read’],autoRefresh);

app.get('/', function (req, res) {var url = oAuth2ThreeLegged.generateAuthUrl();res.redirect(url);

});

app.get('/callback', function (req, res) {var code = req.query.code;oAuth2ThreeLegged.getToken(code).then(function (credentials) {

console.log("**** Got Credentials",credentials);res.header({'Content-Type': 'text/html; charset=utf-8'});res.header({'Access-Control-Allow-Origin': '*'});res.send(JSON.stringify(credentials));

}, defaultHandleError);});

38

39SaaS ストレージ データの表示

§ Node.js ベースの Viewer 実装

§ Forge SDK を使用

§ 3-legged OAuth

§ ストレージ内をツリー表示

§ バージョン別 SVF 表示

§ learn.forge.viewhubmodels サンプルhttps://github.com/Autodesk-

Forge/learn.forge.viewhubmodels/tree/nodejs参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2019/02/sample-which-shows-a360-data-using-3-legged-oauth.html

40

ユーザ ストレージ アクセス許可とAccess Token の取得

アップロード先フォルダの特定(Hub > Project > Folder の ID 取得)

1.Storage の作成 (RESTful API)POST projects/:project_id/storage

2.デザイン ファイルのアップロード (RESTful API)PUT buckets/:bucket_key/objects/:object_name

3.バージョンの作成 (RESTful API)POST projects/:project_id/items

SaaS ストレージへのファイル アップロードについて

Data Management API

Model Derivative API(変換が必要な場合)

Authentication API

API からのアップロードは SVF への自動変換なし

オートデスク SaaSストレージアクセス時の

Bucket 名は固定

wip.dm.prod

41Refresh Token について

§ アプリは Access Token 有効期限切れ時の振る舞いを決定§ 再度ユーザ サインインを求める§ Refresh Token で Access Token を取得し直す

>>POST https://developer.api.autodesk.com/authentication/v1/refreshtoken

Forge Online

伊勢崎 俊明オートデスク 株式会社

オートデスク SaaS ストレージの利用:BIM 360 Docs 利用時の注意点

43BIM 360 Docs アクセスの追加手順 ~ その1

§ BIM 360 Docs 固有の追加設定が必要§ A360/Fusion Team ストレージ アクセスは不要

43

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2017/06/bim-360-docs-and-data-management-api-access.html

44BIM 360 Docs アクセスの追加手順 ~ その2

44

45BIM 360 Docs アクセスの追加手順 ~ その3

45

46BIM 360 Docs アクセスの追加手順 ~ その4

46

47BIM 360 Docs アクセスの追加手順 ~ その5

47

Account IDHub ID から ‘b.’ を削除したものと同等(どこかに記録しておくことを推奨)

Client IDForge ポータルで取得済でBIM 360 APIで使用する ID

48BIM 360 Docs アクセスの追加手順 ~ その6

48

49カスタム統合機能タブが表示される?

§ 表示は 100 ユーザ以上のサブスクリプション契約時のみ§ トライアルでの開発評価が必要な場合は …§ bim360appsactivations@autodesk.com までリクエスト

49

I’d like to integrate my Forge app with BIM 360 Docs.Could you activate my account to get access?My BIM 360 Name is xxx@domain.com (email address) and BIM 360 Account ID is yyy. Also email address of BIM 360 account admin is zzz@domain.com.Regards,-Xxx

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/03/forge-and-bim-360-integration-tips.html

50BIM 360 Docs と 2-Legged OAuth

§ Data Management API でのアクセス

§ 2-Legged OAuth で取得した Access Token も利用化§ BIM 360 は権限設定が細やか >> より柔軟な方法を提供§ 当該 Client ID が「カスタム統合機能」で登録済が前提

参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/03/bim-360-docs-and-forge-oauth.html

51Data Management API:2-legged vs 3-legged 例

§ A360 プロジェクト ルートフォルダ直下アイテム一覧取得

51

52Data Management API:GET items

§ 2-legged

52

53Data Management API:GET items

§ 3-legged(ユーザがプロジェクトメンバの場合)

53

54Data Management API:GET items

§ 3-legged(ユーザがプロジェクトメンバでない場合)

54

55Data Management API:2-legged vs 3-legged 例

§ BIM 360 プロジェクト ルートフォルダ直下アイテム一覧取得

55

56Data Management API:GET items

§ 2-legged§ 3-legged(ユーザがプロジェクトメンバの場合)

56

57Data Management API:GET items

§ 3-legged(ユーザがプロジェクトメンバでない場合)

57

Autodesk and the Autodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document.© 2018 Autodesk. All rights reserved.