🤖

Informatica IICS で Salesforce OAuth を設定する~外部クライアントアプリケーションとPKCE~

に公開

はじめに

Informatica と Salesforce を接続する機会があったので、その手順を綴りました。
また、ここ2年くらいで外部クライアントと Salesforce を接続する設定が色々変わったので、2025年9月時点の最新の設定方法を用いて説明します。

設定の流れ

  • [Salesforce] 連携ユーザーを用意する
  • [Salesforce] 外部クライアントアプリケーションマネージャーの作成
  • [Salesforce] PKCE パラメーターの生成
  • [Salesforce] 認可コードの要求
  • [Salesforce] アクセストークンの要求
  • [Informatica] Salesforce 接続設定

[Salesforce] 連携ユーザーを用意する

さっそく変化点の1つ目のご紹介です。従来、連携ユーザーには Salesforce ライセンスや Salesforce Platform ライセンスを割り当てるのが普通でしたが、今は Salesforce Integration ライセンスを使うのが普通になりました。
それでは Salesforce Integration ライセンスを使って設定していきましょう。

プロファイル作成

Salesforce Integration ライセンスに対応した標準プロファイル [Minimum Access - API Only Integrations] をコピーして、Informatica連携ユーザーに使用するプロファイルを作成します。

連携ユーザー作成

データ連携時に使用するユーザーを作成します。ユーザーライセンスは「Salesforce Integration」を選択し、プロファイルには前工程で作成したプロファイルを指定します。

パスワード設定してログインすると、以下のような画面に遷移するため、パスワード設定時にはゲストブラウザを使用することをおすすめいたします。

権限セットライセンス割り当て

権限セットライセンス「Salesforce API Integration」を作成した連携ユーザーに割り当てます。

[Salesforce] 外部クライアントアプリケーションマネージャーの作成

ここで2つ目の変化点です。従来は「接続アプリケーション」が主に利用されていましたが、今はデフォルトでは作成できないようになっており、今は「外部クライアントアプリケーション」を作成するようになっています。

[設定] -> [外部クライアントアプリケーションマネージャー] に遷移します。
[新規外部クライアントアプリケーション] をクリックします。

基本情報を入力

必須となっている項目を入力します。

OAuth 設定の有効化

初期値はチェックなしになっているので、チェックをいれます。
チェックをいれると、OAuth の設定項目が表示されます。

OAuth 設定

コールバック URL

https://login.salesforce.com を入力します。

OAuth 範囲

以下の3つを選択します。

  • API を使用してユーザーデータを管理 (api)
  • Web ブラウザーを使用してユーザーデータを管理 (web)
  • いつでも要求を実行 (refresh_token, offline_access)

OAuth ポリシー設定

セキュリティ

以下の3つにチェックを入れます。

  • Web サーバーフローの秘密が必要
  • 更新トークンフローの秘密が必要
  • サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求

    一度保存してください。

プラグインポリシー

ポリシータブを選択し、編集ボタンをクリックします。

許可されているユーザーの項目で「管理者が承認したユーザーは事前承認済み」を選択します。

確認画面が表示されるので、OKをクリックします。

保存します。

アプリケーションポリシー設定

プラグインポリシーの設定により、アプリケーションポリシーセクションにプロファイルと権限セットが指定できるようになります。
今回は、連携ユーザー用に作成したプロファイルを選択し、保存します。

ここまでの作業で、外部クライアントアプリケーションの設定は完了です。

コンシューマー鍵と秘密を取得

OAuth 認証フローで使用するコンシューマー鍵と秘密を取得します。
まずは、外部クライアントアプリケーションの設定タブを選択し、OAuth 設定セクションの「コンシューマー鍵と秘密」をクリックします。

以下の画面が開き、合わせて今操作しているユーザーのメールアドレスにメールが送信されますので、メールに記載されている確認コードを入力し、検証ボタンをクリックします。

検証が成功すると、画面遷移し、コンシューマー鍵とコンシューマーの秘密が表示されます。
後の作業で使用するため、いずれもメモしておいてください。

私のドメインの確認

後の作業でマイドメイン(私のドメイン)を使用するため、マイドメインの確認をしましょう。
[設定] -> [私のドメイン] を開き、「現在の [私のドメイン] の URL」をメモしてください。

[Salesforce] PKCE パラメーターの生成

さて、ここで3つ目の変化点があります。PKCE(ピクシー)という OAuth 2.0 の拡張仕様が使えるようになりました。Salesforce Help でも PKCE の実装を強く推奨しています。

では早速 PKCE パラメーターを生成しましょう。生成方法は簡単です。
以下のURLに REST クライアントを用いて GET リクエストを送信してください。

https://<マイドメイン>.salesforce.com/services/oauth2/pkce/generator

URLにアクセスすると、以下のように code_challenge や code_verifier が返ってくるので、これもメモしておきます。

[Salesforce] 認可コードの要求

続いて、認可コードを取得するため、以下のURLを作成します。
これまでの作業で取得した「マイドメイン」「コンシューマー鍵」「code_challenge」を使用します。
redirect_uriには、外部クライアントアプリケーションで設定したコールバック URL を設定します。

https://<マイドメイン>.salesforce.com/services/oauth2/authorize
?response_type=code 
&client_id=<コンシューマー鍵> 
&redirect_uri=<コールバックURL>
&code_challenge=<code_challenge>

URL例

https://brave-goat-2v5xtk-dev-ed.trailblaze.my.salesforce.com/services/oauth2/authorize?response_type=code

&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3X

HrXDiCQjK1mdgAvhCscA9GE&redirect_uri=https://login.salesforce.com&code_challenge=JB7nT*************

ユーザーによるアクセスの認証および承認

URL の準備ができたら、ブラウザでアクセスします。これまでの作業に不備がなければ、以下のように Salesforce のログイン画面が表示されます。
連携ユーザーのアカウントを用いてログインします。

Salesforce による認可コードの付与

ログインしたのにまたログイン画面が表示されましたか?はい、それであっています。
ブラウザの URL 欄をみてください。

https://login.salesforce.com/?code=aWekysIEeqM9PiThEfm0Cnr6MoLIfwWyRJcqOqHdF8f9INokharAS09ia7UNP6RiVScerfhc4w%3D%3D

上記のような URL になっていれば成功です。code=より後ろの値をメモしておいてください。

[Salesforce] アクセストークンの要求

Salesforce 側での最後の手順です。

Salesforce によるアクセストークンの付与

今度は POST を使います。以下の画像にならって、REST クライアント へこれまで取得した値を設定してください。code には認可コードを設定してください。
実行してアクセストークンが返ってくれば成功です。Informatica に使用するには refresh_token なので、メモしておいてください。

[Informatica] Salesforce 接続設定

ようやく Informatica の接続設定ができますね。
コンシューマーキー、コンシューマシークレットは、Salesforce でいう コンシューマー鍵と秘密 を設定してください。
更新トークンには refresh_token を設定してください。
サービスURLの末尾の数字は、Salesforce の API バージョンを表しています。可能な限り大きい数字を設定しましょう。

接続のテスト

設定が終わったら「接続のテスト」をクリックします。
以下のように成功のメッセージが表示されればOKです。保存しましょう。

登録内容の確認

接続設定が完了すると、以下のように設定が確認できました。

[Salesforce] ログイン履歴の確認

最後にログイン履歴も見ておきましょう。
今回作成した外部クライアントアプリケーションを用いて認証したので、連携ユーザーのOAuth アプリケーションには、作成したアプリケーションが表示されていますね。
ログイン履歴には OAuth 更新トークンを用いた履歴があり、接続場所が「Australia」ですね。
Informatica の Asia の Service Agent はオーストラリアにホストされているのかな?

さいごに

手順が多いですね。最後まで読んでくださった方ありがとうございます。
Informatica をはじめとした ETL ツールでの Salesforce の認証方法に、UserId/Password での認証方法が提供されているかとおもいます。しかし、Salesforce の SOAP API の login() が廃止されることがアナウンスされました。これにより、OAuth での設定をする機会が今後増えるものと考えられます。
その時にこの記事が役に立てば幸いです。

参考文献

Discussion