署名付き要求認証
これは、キャンバスアプリケーションのデフォルトの認証方法です。署名付き要求認証フローは、キャンバスアプリケーションの [許可されているユーザー] 項目が [管理者が承認したユーザーは事前承認済み] と [すべてのユーザーは自己承認可能] のどちらに設定されているかによって異なります。
署名付き要求情報は、クライアントの秘密を使用して検証でき、アプリケーションのカスタマイズと、Salesforce への後続のコールを行うために使用されます。
| 許可されているユーザーの値 | キャンバスアプリケーションのアクセシビリティ | ユーザーがキャンバスアプリケーションを承認する必要があるタイミング | POST または GET の動作 |
|---|---|---|---|
| 管理者が承認したユーザーは事前承認済み | システム管理者がアプリケーションを組織にインストールし、参照権限を付与するユーザーを設定すれば、ユーザーはすぐにアプリケーションへアクセスできるようになります。ユーザーによるアクセスの承認や拒否は必要ありません。 | 不要 | Salesforce は、更新トークンを含む、署名付き要求のボディに含まれるすべての認証情報を使用してキャンバスアプリケーションへの POST を実行します。 |
| すべてのユーザーは自己承認可能 | すべてのユーザーがアプリケーションにアクセスできますが、ユーザーはアプリケーションへのアクセスを承認または拒否するように要求されます。 |
|
ユーザーが以前にアプリケーションを承認していて、アクセスが取り消されたり期限切れになったりしていない場合、Salesforce は署名付き要求ペイロードを使用してキャンバスアプリケーションへの POST を実行します。 ユーザーがアプリケーションを承認していない場合、またはアクセスが取り消されているか期限切れになっている場合、Salesforce はキャンバスアプリケーション URL への GET を実行します。キャンバスアプリケーションは、コールを受け入れて URL パラメーター _sfdc_canvas_authvalue を検索し、GET を処理する必要があります。このパラメーター値を受け取ったキャンバスアプリケーションは、OAuth フローの承認または拒否を開始する必要があります。
OAuth フローが開始されてユーザーがアプリケーションを承認したら、キャンバスアプリケーションは true のパラメーターを使用して repost() メソッドをコールし、署名付き要求を取得する必要があります。 |
署名付き要求は、次の要素を連結した文字列です。
- HMAC SHA–256 アルゴリズムで暗号化されたキャンバスアプリケーションのコンシューマーの秘密
- ピリオド ( . )
- Base64 で JSON 符号化されたコンテキストおよび認証トークン
署名付き要求の考慮事項
- Salesforce は、キャンバスアプリケーション URL を呼び出すときに、[許可されているユーザー] の値や、更新トークンが返されるかどうかに応じて、HTTP POST または GET を実行します。
- 要求の検証と復号化には、サーバー側のコードが必要です。
- 署名付き要求は、アプリケーションを呼び出した後に SDK を使用してオンデマンドで要求できます。