最終更新日 2025年07月14日(月)
SDK を使用するときに Salesforce 組織で定義された権限とロールを適用するユーザーモードオプションは user、user-plus、authorized-user の 3 つです。ユーザーモードに応じて、Heroku アプリがアクセスできる Salesforce データを管理できます。この記事では、この 3 つのユーザーモードオプションについて説明します。
ユーザーモード
User
デフォルトのユーザーモードは user です。このモードでは、コンテキストは Salesforce から Heroku へのリクエストの一部として送信されます。SDK は、Salesforce で定義されたユーザー権限を使用し、DML 操作を実行するときにこれらの権限を適用します。このモードでは、追加の権限やデータへの追加のアクセス権は付与されません。
たとえば、このサンプルアプリは、Salesforce の商談に対して複雑な計算を実行し、その結果を Salesforce の見積レコードに保存します。user モードでは、営業担当は自分が所有者であり、アクセス権を持っている商談に対してのみ、アプリ操作を実行することができます。
User-Plus
user-plus モードでは開発者と管理者が追加のセッションベースの権限セットを定義し、付与できます。アプリを公開するときに、OpenAPI 仕様を使用して、追加の権限に使用する権限セットを定義できます。詳細は、「Heroku AppLink 用の OpenAPI 仕様の設定」を参照してください。
たとえば、先ほどと同じサンプルアプリでは、OpportunityLineItem オブジェクトに、セールスリーダーのみがアクセスできるカスタムの DiscountOverride__c フィールドを使用しています。user-plus モードでは、セールスリーダー以外のユーザーも、このカスタムフィールドにアクセスするための追加の権限が付与されているため、アプリ操作を実行できます。
Authorized-User
承認、または authorized-user モードを使用すると、承認済みユーザーをコード内で参照することで指定できます。アプリのコード内で特定の承認済みユーザーとして、Salesforce および Data Cloud で DML 操作を実行できます。Worker dyno や夜間ジョブなどのワークロードは、専用のユーザーを作成して実行させるのが一般的です。このモードを使用するには、承認を作成します。
たとえば、このサンプルアプリでは、Salesforce Bulk API を使用して、接続された複数の Salesforce 組織間でデータを交換します。Salesforce API は常に承認済みユーザーの権限の範囲内でしかアクセスできません。そのため、コードはそのユーザーがアクセス権を持つオブジェクトと項目にしかアクセスできません。専用の統合ユーザーを使用して、authorized-user モードで実行することで、アプリがアクセスできるデータをより細かく制御できます。
ユーザーモードの例
以下は、統合シナリオの例と、使用できるユーザーモードです。
| 統合パス | 説明 | ユーザーモード |
|---|---|---|
| Salesforce → Heroku | Salesforce のユーザーが Heroku アプリを呼び出し、Heroku アプリは AppLink SDK を使用して Salesforce とやり取りする際に、そのユーザーのコンテキストを維持します | user、user-plus、または authorized-user |
| Salesforce → Heroku → Salesforce | Salesforce のユーザーが Heroku アプリを呼び出すと、Heroku アプリはそのユーザーのコンテキストを維持した状態で AppLink SDK を使用して Salesforce とやり取りを行い、Salesforce のデータを更新します | user、user-plus、または authorized-user |
| Heroku → Salesforce | Heroku アプリが Salesforce API を通じて Salesforce を呼び出します | authorized-user |