SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Summer’14 Update	

- What’s new in Force.com Canvas -
2014/07/15	

Shinichi Tomita	

Mashmatrix, Inc.	

@stomita
What’s new in
Force.com Canvas
• <apex:canvasApp> へentityFields の追加	

• SDK オブジェクトおよび項目の変更	

• モバイルデバイスの向き変更イベントのハンドリング	

• ページレイアウト/モバイルカード内に埋め込み可能に	

• S1のナビゲーションメニューでカスタムアイコン指定可能に	

• Signed Requestをオンデマンドに要求可能に	

• Signed Requestを利用するアプリにユーザ承認を必要とするよう設定可能	

• SAMLでのシングルサインオン	

• Signed Requestのコンテキストのカスタマイズ

(カスタムのアプリケーションライフサイクル)
ページレイアウト内への	

Canvas埋め込み
• 縦サイズ伸縮(従来のVFページ埋め込みでは不可)
<apex:canvasApp> の
entityFields 属性
<apex:canvasApp applicationName="MyApp"
entityFields="Phone,Fax,BillingCity"	

containerId="canvasAppDiv"/>
Signed Req.に含まれる

Context情報のカスタマイズ
• User/Organization/Recordの情報をコンテキストから
除外設定可能	

• entityFieldsをダイナミックに設定可能	

• Apexで取得した追加の情報をパラメータに設定可能
Signed Req.のオンデマンド要求
• 利用シーン!
- 通常:OAuthトークンがExpireした時?	

- アプリが「ユーザが自己承認可能」に設定してある場合	

• Sfdc.canvas.client.refreshSignedRequest()!
- フレーム間通信でSigned Request(以下SR)を親フレーム(Salesforce)
から取得。JSのコールバックに返される	

- ユーザ承認されてない場合、OAuthトークンなどはSR内に含まれない	

• Sfdc.canvas.client.repost()!
- 画面全体が再描画される(フレーム再読み込み)
考察:

オンデマンドSigned Req.は検証必要?
• 通常、Canvasアプリでは、受け取ったSRがちゃんとそのアプリ向けに発行
されたものかどうか、サーバサイドでの検証が必要	

• 悪意のあるサイトがCanvasをIFrameとして読み込んだら?Signed
Request情報を自作して送りつけてきたら?(なりすまし/クリック
ジャック)	

• しかしJSからオンデマンドで取得したSRについて、逐一サーバに渡して検
証することはたぶん想定されていない?(少なくともそうしろとは書かれ
てない)	

• Canvas SDK内では一応 PostMessage時にOriginチェックは行われているので
安全に見えるのだけど…	

• Canvasアプリの性質にもよるが、できればサーバで署名検証、または最低
でも渡ってきたSR内のclient.targetOriginのチェックをした方がいいかも
おまけ: 

Force.com Canvas Debugger
• Signed Requestの中身を見る
Canvasアプリ	

• https://sfdc-canvas-
debugger.herokuapp.com/canvas	

• SRの署名検証 してません!	

• なので上記URLを登録すれば勝手
に接続アプリとして利用可能で
す
Thanks.

Weitere ähnliche Inhalte

Mehr von Shinichi Tomita

モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)Shinichi Tomita
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりShinichi Tomita
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)Shinichi Tomita
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile ApplicationsShinichi Tomita
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用Shinichi Tomita
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告Shinichi Tomita
 
Cloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APICloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APIShinichi Tomita
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Shinichi Tomita
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバShinichi Tomita
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭りShinichi Tomita
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Shinichi Tomita
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuShinichi Tomita
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuShinichi Tomita
 

Mehr von Shinichi Tomita (19)

モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
 
Salesforce1最速経路
Salesforce1最速経路Salesforce1最速経路
Salesforce1最速経路
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告
 
Cloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APICloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming API
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
 
Intro to JFDG
Intro to JFDGIntro to JFDG
Intro to JFDG
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバ
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭り
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on Heroku
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on Heroku
 
Ext js 20100526
Ext js 20100526Ext js 20100526
Ext js 20100526
 
OpenSocial Dashboard
OpenSocial DashboardOpenSocial Dashboard
OpenSocial Dashboard
 
20090410 Idcon Stomita
20090410 Idcon Stomita20090410 Idcon Stomita
20090410 Idcon Stomita
 
20080625 Extjs
20080625 Extjs20080625 Extjs
20080625 Extjs
 

Summer'14 Update - What's new in Force.com Canvas -