O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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 オブジェクトおよび項目の変更	

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

...
ページレイアウト内への	

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

containe...
Signed Req.に含まれる

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

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

• Apexで取得し...
Signed Req.のオンデマンド要求
• 利用シーン!
- 通常:OAuthトークンがExpireした時?	

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

• Sfdc.canvas.client.refreshSigned...
考察:

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

• 悪意のあるサイトがCanvasをIFrameとして...
おまけ: 

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

• https://sfdc-canvas-
debugger.herokuapp.com/canvas	
...
Thanks.
Próximos SlideShares
Carregando em…5
×

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

1.395 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Entre para ver os comentários

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

  1. 1. Summer’14 Update - What’s new in Force.com Canvas - 2014/07/15 Shinichi Tomita Mashmatrix, Inc. @stomita
  2. 2. What’s new in Force.com Canvas • <apex:canvasApp> へentityFields の追加 • SDK オブジェクトおよび項目の変更 • モバイルデバイスの向き変更イベントのハンドリング • ページレイアウト/モバイルカード内に埋め込み可能に • S1のナビゲーションメニューでカスタムアイコン指定可能に • Signed Requestをオンデマンドに要求可能に • Signed Requestを利用するアプリにユーザ承認を必要とするよう設定可能 • SAMLでのシングルサインオン • Signed Requestのコンテキストのカスタマイズ
 (カスタムのアプリケーションライフサイクル)
  3. 3. ページレイアウト内への Canvas埋め込み • 縦サイズ伸縮(従来のVFページ埋め込みでは不可)
  4. 4. <apex:canvasApp> の entityFields 属性 <apex:canvasApp applicationName="MyApp" entityFields="Phone,Fax,BillingCity" containerId="canvasAppDiv"/>
  5. 5. Signed Req.に含まれる
 Context情報のカスタマイズ • User/Organization/Recordの情報をコンテキストから 除外設定可能 • entityFieldsをダイナミックに設定可能 • Apexで取得した追加の情報をパラメータに設定可能
  6. 6. Signed Req.のオンデマンド要求 • 利用シーン! - 通常:OAuthトークンがExpireした時? - アプリが「ユーザが自己承認可能」に設定してある場合 • Sfdc.canvas.client.refreshSignedRequest()! - フレーム間通信でSigned Request(以下SR)を親フレーム(Salesforce) から取得。JSのコールバックに返される - ユーザ承認されてない場合、OAuthトークンなどはSR内に含まれない • Sfdc.canvas.client.repost()! - 画面全体が再描画される(フレーム再読み込み)
  7. 7. 考察:
 オンデマンドSigned Req.は検証必要? • 通常、Canvasアプリでは、受け取ったSRがちゃんとそのアプリ向けに発行 されたものかどうか、サーバサイドでの検証が必要 • 悪意のあるサイトがCanvasをIFrameとして読み込んだら?Signed Request情報を自作して送りつけてきたら?(なりすまし/クリック ジャック) • しかしJSからオンデマンドで取得したSRについて、逐一サーバに渡して検 証することはたぶん想定されていない?(少なくともそうしろとは書かれ てない) • Canvas SDK内では一応 PostMessage時にOriginチェックは行われているので 安全に見えるのだけど… • Canvasアプリの性質にもよるが、できればサーバで署名検証、または最低 でも渡ってきたSR内のclient.targetOriginのチェックをした方がいいかも
  8. 8. おまけ: 
 Force.com Canvas Debugger • Signed Requestの中身を見る Canvasアプリ • https://sfdc-canvas- debugger.herokuapp.com/canvas • SRの署名検証 してません! • なので上記URLを登録すれば勝手 に接続アプリとして利用可能で す
  9. 9. Thanks.

×