注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry の Salesforce コネクターを使用すると、Salesforce と Foundry データセット間でデータを同期できます。
このドキュメントは、Salesforce コネクターの最新バージョンを対象としています。既存の Salesforce コネクターを編集している場合は、レガシーバージョンの可能性があります。詳細については、以下の移行セクションを確認してください。
| 機能 | ステータス |
|---|---|
| 探索 | 🟢 一般提供 |
| 一括インポート | 🟢 一般提供 |
このコネクターは、利用可能なすべての標準 ↗およびカスタムの Salesforce オブジェクトを Foundry データセットとしてモデル化します。スキーマは動的に取得されます。探索ビューでは、データモデルの一覧を見たり、Salesforce オブジェクトを Foundry にインポートしたときの表示をプレビューしたりできます。
このコネクターは、Salesforce API のデータ型を以下の Foundry フィールドのデータ型にマッピングします。
| Salesforce | Foundry |
|---|---|
| 自動採番 | STRING |
| 参照関係 | STRING |
| 主従関係 | STRING |
| 外部参照関係 | STRING |
| チェックボックス | BOOLEAN |
| 通貨 | DECIMAL |
| 日付 | DATE |
| 日付/時間 | LONG |
| メール | STRING |
| 位置情報 | STRING |
| 数値 | DOUBLE |
| パーセント | DOUBLE |
| 電話 | STRING |
| 選択リスト | STRING |
| 選択リスト(複数選択) | STRING |
| テキスト | STRING |
| テキストエリア | STRING |
| ロングテキストエリア | STRING |
| リッチテキストエリア | STRING |
| テキスト(暗号化) | STRING |
| 時間 | INTEGER |
| URL | STRING |
このコネクターは、デフォルトで Salesforce Bulk API ↗ を使用します。この API は、2000行を超えるデータを扱うすべてのデータ操作に推奨されています。Bulk API の制限 ↗について、詳しくはこちらをご覧ください。
JDBC プロパティ UseBulkAPI を false に設定すると、このコネクターで Salesforce SOAP API ↗ を使用することもできます。SOAP API にも Salesforce SOAP API の呼び出し制限 ↗が適用されます。
Foundry でのコネクターの設定については、詳しくはこちらをご覧ください。
Salesforce 接続の認証に使用する資格情報の方式として、JWT トークンまたはユーザー名とパスワードを選択します。
Salesforce は、Spring '26 リリース以降、新しい接続アプリケーションの作成を制限しています。既存の接続アプリケーションは引き続き動作します。Salesforce は、新しい統合には外部クライアントアプリ ↗を推奨しています。以下のセクションでは、外部クライアントアプリの設定方法について説明します。詳細については、Salesforce の認可ドキュメント ↗を確認してください。
OAuth 2.0 の JSON Web Token(JWT)ベアラーフロー ↗を使用すると、リクエストのたびに対話的にログインすることなく、Foundry にデータへのアクセスを許可できます。
JWT 認証を有効にするには、証明書を生成し、外部クライアントアプリの作成時にアップロードしてから、統合ユーザーを承認する必要があります。
まず、Salesforce ユーザーを作成し、API および変更する Salesforce オブジェクトへのアクセス権限があることを確認します。後のステップでこのユーザーとして承認を行う必要があるため、統合ユーザーとしてログインできることを確認してください。
次に、JWT 証明書を作成します。Salesforce の JWT ベアラーフロー ↗には、X.509 証明書とそれに対応する秘密鍵が必要です。秘密鍵を生成するには、コマンドラインで openssl を使用し、次のコマンドを実行します。
x.509 の公開鍵と秘密鍵のペアを生成します。
Copied!1 2openssl genrsa 1024 | openssl pkcs8 -topk8 -inform PEM -out key.pem -nocrypt openssl req -new -x509 -key key.pem -out cert.pem -days 3650
証明書を PFX ストアにエクスポートし、Base64 に変換して、クリップボードにコピーします。
Copied!1openssl pkcs12 -export -in cert.pem -inkey key.pem | openssl base64 | pbcopy
証明書の値は必ず安全な場所に保存してください。後で設定を行う際に、この値にアクセスする必要があります。
Salesforce 組織に、このコネクターで動作する接続アプリケーションがすでにある場合は、そのまま使用できます。Salesforce は新しい接続アプリケーションの作成を制限しましたが、既存のものは無効にしていません。既存の接続アプリケーションについては、OAuth アクセスの管理に関する Salesforce のガイダンス ↗を確認してください。
開始する前に、Salesforce 組織で外部クライアントアプリ(旧称:接続アプリケーション)が有効になっていることを確認してください。また、Salesforce ユーザーには、外部クライアントアプリの作成とそのポリシーの編集が許可されている必要があります。
Salesforce の外部クライアントアプリの作成に関するドキュメント ↗、または Trailhead の単元「API 用の外部クライアントアプリを作成および設定する ↗」に沿って、アプリを作成します。このコネクターに影響するのは、以下の設定のみです。作成フォームの残りのセクションはデフォルトのままにします。
完了時には、アプリが次の要件を満たしている必要があります。
https://localhost:12345: Salesforce ではコールバック URL が必要ですが、コネクターがそれを送信することはありません。パート3のブラウザーによる承認の選択肢と一致するように、この値を使用します。cert.pem ファイルをアップロードします。証明書をアップロードすることで、JWT ベアラーフローが有効になります。このフローを有効にするための別の設定はありません。api を付与します。パート3のブラウザーによる承認の選択肢を使用する場合に限り、offline_access と refresh_token も付与します。アプリのコンシューマー鍵を取得し、安全な場所に保存します。以下のコネクター設定で、この値をコンシューマー鍵として入力します。鍵は表示操作を行うまで非表示になっており、Salesforce は表示前に、メールアドレスに送信した検証コードの確認を求める場合があります。コネクターは署名付き JWT 内でコンシューマー鍵を送信するため、Salesforce が鍵とともに発行するコンシューマーシークレットは不要です。
JWT ベアラーフローと、アプリの指定ユーザーの JSON Web Token(JWT)ベースのアクセストークンを発行する設定を混同しないでください。この設定は Salesforce が発行するアクセストークンの形式を変更するものであり、このコネクターには必要ありません。
新しい外部クライアントアプリは、すぐには使用できない場合があります。アプリの作成直後に認証に失敗した場合は、設定を変更する前に最大30分待ってから再試行してください。
コネクターが外部クライアントアプリを使用するには、事前に統合ユーザーがそのアプリで承認されている必要があります。コネクターは署名付き JWT で認証し、ブラウザーフローで生成される認証コードを交換することはないため、事前承認を推奨します。
offline_access と refresh_token のスコープも必要です。
https://<salesforce-url>/services/oauth2/authorize?client_id=<CONSUMER_KEY>&redirect_uri=<CALLBACK_URL>&scope=api%20offline_access%20refresh_token&response_type=code&response_mode=query&nonce=bebmwgu22zh
<CONSUMER_KEY> をコンシューマー鍵に、<CALLBACK_URL> をアプリで設定したコールバック URL に置き換えます。<salesforce-url> を Salesforce インスタンスの URL(<site>.my.salesforce.com)に置き換えます。https://localhost:12345 で「Not Found」エラーが表示されます。コールバック URL は実際のエンドポイントではないため、このエラーはフローが完了したことを示します。以下の JWT 認証の設定オプションを使用して、Foundry で Salesforce コネクターの設定を続けます。
| 名前 | 必須 | 説明 |
|---|---|---|
| これは Salesforce Sandbox アカウントです | はい | Salesforce Sandbox アカウントに接続するかどうかを決定します。ログイン URL のデフォルト値を、標準アカウントでは login.salesforce.com、Sandbox アカウントでは test.salesforce.com に設定します。 |
| ユーザー名 | はい | 統合ユーザーのユーザー名を入力します。 |
| Base64 PFX 証明書 | はい | 証明書の生成で取得した値です。 |
| 証明書はパスワードで保護されています | いいえ | 証明書ストアがパスワードで保護されている場合は、オンにします。 |
| 証明書のパスワード | いいえ | 証明書ストアのパスワードです。 |
| 証明書のサブジェクトを指定する | いいえ | ストア内の最初の証明書を使用する場合は、オフのままにします。証明書ストアに複数の証明書が含まれている場合に、使用する証明書を指定するには、オンにします。 |
| 証明書のサブジェクト | いいえ | 使用する証明書のサブジェクトです。ストア内の証明書を検索するために使用されます。完全一致が見つからない場合、指定した値をサブジェクトに含む証明書をストア内で検索します。 |
| コンシューマー鍵 | はい | 外部クライアントアプリの設定で利用可能なコンシューマー鍵を入力します。 |
ユーザー名とパスワード ↗の認証方式で Salesforce に接続するには、Salesforce でサービスユーザーアカウントと外部クライアントアプリを作成する必要があります。次に、サービスユーザーの資格情報を Salesforce コネクターに追加します。
ユーザー名とパスワードによる認証フローを有効にするには、以下の手順に従います。
Salesforce ユーザーを作成し、API と、変更する Salesforce オブジェクトへのアクセス権限があることを確認します。後で参照できるように、ユーザーのユーザー名とパスワードを控えておきます。
パート2に従って外部クライアントアプリを作成します。ただし、以下の点が異なります。
api の代わりにフルアクセス (full) の OAuth スコープを付与します。ユーザー名とパスワードによる認証方式では、以下の設定オプションがサポートされています。
| 名前 | 必須 | 説明 |
|---|---|---|
| これは Salesforce サンドボックスアカウントです | はい | Salesforce サンドボックスアカウントに接続するかどうかを指定します。ログイン URL のデフォルト値を、標準アカウントの場合は login.salesforce.com、サンドボックスアカウントの場合は test.salesforce.com に設定します。 |
| ユーザー名 | はい | アプリがなりすますアカウントのユーザー名。 |
| パスワード | はい | アプリがなりすますアカウントのパスワード。 |
Foundry から接続しようとしたときに認可の問題が発生し、ユーザーの Salesforce ログイン履歴に Failed: API security token required と表示される場合は、ユーザーのセキュリティトークンをパスワードの末尾に追加する必要があります。
セキュリティトークンは自動生成される鍵で、信頼できないネットワークから Salesforce にログインするには、パスワードに追加する必要があります。Salesforce では、アプリケーション内でセキュリティトークンを表示することはできません。代わりに、統合ユーザーとして Salesforce にログインし、右上の私の設定に移動する必要があります。次に、個人用 > 私のセキュリティトークンのリセットに移動します。
直接接続で Salesforce コネクターを実行している場合は、接続を許可リストに登録するためにネットワークエグレスポリシーを追加する必要があります。
既存のポリシーを追加するか、新しいポリシーを作成するかを選択します。
Salesforce の直接接続を許可リストに登録するには、以下のポリシーを追加します。
ログイン URL:DNS、ポート 443 (HTTPS)、および以下のいずれかが必要です。
login.salesforce.com(本番)
またはtest.salesforce.com(サンドボックス)インスタンス URL:<site>.my.salesforce.com の DNS と、ポート 443 (HTTPS) が必要です。
SSL 接続ではサーバー証明書を検証します。通常、SSL の検証は証明書チェーンを通じて行われます。デフォルトでは、Agent と Foundry ワーカーのどちらも、業界標準の証明書チェーンの大半を信頼します。接続先のサーバーに自己署名証明書がある場合、または検証中に TLS インターセプションが発生する場合は、コネクターがその証明書を信頼する必要があります。Data Connection での証明書の使用について、詳しくはこちらをご覧ください。
Salesforce コネクターでは、以下の設定オプションがサポートされています。
| 名前 | 必須 | デフォルト | 説明 |
|---|---|---|---|
| API バージョン | はい | 50 | Salesforce API のバージョン。 |
| 接続アプリケーションの資格情報 | はい | JWT Bearer トークン | Salesforce に接続するために必要な資格情報を含みます。Salesforce では、これらの資格情報を外部クライアントアプリで設定します。詳細については、上記の認証セクションを確認してください。 |
| ログイン URL | いいえ | login.salesforce.com(本番)、または test.salesforce.com(サンドボックス) | OAuth トークンを取得するための接続に使用する URL。 |
| タイムアウト | いいえ | 60 | レスポンスを待機している HTTP クライアント接続がタイムアウトするまでの時間。単位は秒です。 |
| プロキシ設定 | いいえ | いいえ | Salesforce に接続するときに使用するプロキシの設定。 |
テーブルを同期するには、探索表示を使用します。同期を編集するときに、追加の設定オプションを利用できます。
Salesforce コネクターによるインクリメンタル同期では、インクリメンタル列の値が、前回観測された最大値以上の場合に、新しいデータが同期されます。この動作は同期データの精度と正確性を確保するために必要ですが、出力データセットに重複行が生じます。インクリメンタルパイプラインには、必ず重複排除のステップを含める必要があります。
同期の設定に行フィルターを適用して、設定された条件に一致しないデータを除外できます。 条件ツリーを使用してフィルターを定義します。
ALL:配下にネストされたすべてのノードが true である必要があります。ANY:ネストされたノードのうち1つ以上が true である必要があります。設定を同期に適用するために、必ず保存してください。
すでに Salesforce コネクターを使用している場合、レガシーバージョンを実行している可能性があります。コネクターのバージョンを確認するには、接続設定 > 接続情報に移動します。ソース設定に type: salesforce フィールドを含むカスタムYAMLセクションが表示される場合は、レガシー Salesforce コネクターを使用しています。バグ修正以外の Palantir サポートを受けるには、最新バージョンに移行する必要があります。
auth-method または authentication-method ブロックを探します。
type: oauth2-jwt の場合は、JWT 認証で新しいソースを設定します。
claim-sub は、新しいコネクター設定のユーザー名に対応します。x509-cert は PFX にエクスポートし、Base64 エンコードして、証明書として使用します。証明書については、上記の JWT 認証セクションで詳しくはこちらをご覧ください。claim-iss は、新しいコネクター設定のコンシューマー鍵に対応します。type: oauth2-username-password の場合は、ユーザー名とパスワードによる認証で新しいソースを設定します。
username は、新しいコネクター設定のユーザー名に対応します。password は、新しいコネクター設定のパスワードに対応します。client-id および client-secret プロパティは、新しいコネクターでは不要です。auth-url は、新しいコネクター設定のログイン URL に対応します。auth-url の値が test.salesforce.com だった場合は、新しいコネクター設定で Salesforce サンドボックスアカウントをオンにします。新しい Salesforce コネクターを設定したら、レガシーコネクターで以前同期していたオブジェクトの同期を作成します。探索ビューを使用して複数のオブジェクトを一括で同期し、新しいデータセットを作成します。
同じ API バージョンを使用する場合、レガシー Salesforce コネクターと新しい Salesforce コネクターは同じスキーマを使用します。入力を再マッピングすれば、すべての下流のアプリケーションは引き続き機能するはずです。
新しい同期データセットを使用するように下流のパイプラインを移行する必要があります。レガシーデータセットを必要とするほかの利用先がないことを確認したら、そのデータセット、関連する同期、および接続を削除できます。Data Lineage を使用して、環境内でレガシーデータセットが使用されている場所を確認します。