- 未経験歓迎|システムエンジニア
- 業種未経験OK|SES営業
- 未経験歓迎
- 他18件の職種
- 開発
- ビジネス
みなさん、こんにちは。
今回はJWT認証を使用したMuleとSalesforceの接続を試してみました。
昨今、API連携を使用してのシステム実装が増えており、使用する機会が多くなりそうなので覚えておいて損はないと思います。
今回はMuleSoftからSalesforceへ接続する手順について紹介しますが、他の接続元でもベースは同じとなりますので是非ご活用ください。
【目次】
必要なもの
Salesforce側の設定
- 接続用ユーザの作成
- 証明書の作成
- 接続アプリケーション設定
- キーストア生成
- 権限セットの作成
MuleSoft側の設定
最後に
必要なもの
JWTベアラー認証のために必要となるものです。【】内は今後設定で使用するためにラベル付けしていますので、設定する際に参考にしてください。
- 連携用Salesforceユーザ
- 【A-1】ユーザ名
- 証明書(crtファイル)
- 【B-1】一意の名前
- 【B-2】crtファイル
- キーストア
- 【C-1】jksファイル
- 【C-2】エクスポートパスワード
- 接続アプリケーション
- 【D-1】コンシューマ鍵
Salesforce側の設定
❚接続用ユーザの作成
Salesforce側で接続用のユーザを作成します。このユーザはMuleとの接続用に使用することになるため、最終的にはAPI連携用ユーザとなります。
Salesforceユーザを作成したら、ユーザ名を控えておきます。最終的にはSalesforceへログインしないユーザになるため、パスワードの控えまでは不要です。
今回はこちらの「Mule連携用ユーザ」を使用します。ユーザ名【A-1】を控えておくようにしましょう。
❚証明書の作成
本手順ではSalesforce証明書を使用します。既に他から証明書が発行済みであればこちらの手順は不要となります。
設定の[セキュリティ]→[証明書と鍵の管理]から「自己署名証明書作成」を選択します。
証明書の必要事項を入力します。
作成後、証明書のダウンロードボタンから証明書をダウンロードします。端末にcrtファイルがダウンロードされます。「一意の名前」(【B-1】)は後のMule側の接続設定で入力することになるため、控えておきましょう。
ダウンロードされたcrtファイルは「{一意の名前}.crt」ファイル【B-2】となり、後述の接続アプリケーション設定に使用します。
❚接続アプリケーション設定
続いて接続アプリケーションを設定していきます。接続アプリケーションでは認証機関から発行された証明書(crtファイル【B-2】)を使用します。Salesforce以外から証明書を発行している場合は、crtファイルを準備してください。
アプリケーションマネージャから接続アプリケーションを作成します。設定項目はたくさんありますが、今回の設定に必要な項目は以下の通りです。
メールやコールバックURLなどの必須項目もありますが、今回の認証には関係ないため任意の値を入力して問題ありません。今回は「Mule」という名前で接続アプリケーションを作成することにします。
接続アプリケーションを作成したら、「コンシューマの詳細を管理」ボタンからコンシューマ鍵【D-1】とコンシューマの秘密を表示します。コンシューマ鍵【D-1】は後述するMule側の接続設定に使用しますので控えておきましょう。コンシューマの秘密は不要です。
❚キーストア生成
本手順ではキーストアについてもSalesforce環境から作成します。別手順でキーストアを作成するのであれば、こちらの手順は不要です。
再び設定の[セキュリティ]→[証明書と鍵の管理]からキーストアにエクスポートを選択します。
キーストアのパスワードを入力し、エクスポートします。エクスポートされたjksファイル【C-1】とパスワード【C-2】は後ほどMule側の設定に使用しますので控えておいてください。
Salesforceからキーストアをエクスポートした場合は、{組織ID}.jksというファイル名でダウンロードされます。
また、キーストアのエクスポートはSalesforce組織に対して実施されますので、複数の証明書を作成している場合は1つのキーストアに対し、複数の証明書が紐づくことになります。複数の証明書から一意の証明書を特定するために証明書で設定した一意の名前【B-1】が使用されますのでそちらも控えておきましょう。
❚権限セットの作成
権限セットの作成は必須という訳ではありませんが、権限設定を一元化するために作成することを推奨します。JWT認証用の権限セットを作成し、以下の権限を付与します。
今回は「MuleUser」という名前の権限セットを作成します。ライセンスを「Salesforce」で選択して作成します。
権限セット作成後、システム権限から以下の権限を付与します。API連携用の権限セットとなるため、Salesforceに直接ログインせずに、パスワード変更やMFA認証をパスするように以下の権限を付与してください。
- API 限定ユーザ
- パスワード無期限
- 除外ユーザの多要素認証を放棄
続いて、接続アプリケーションを割り当てます。割り当てられた接続アプリケーションから前述で作成した接続アプリケーション(Mule)を割り当てます。
最後に権限セットにユーザを割り当てます。割り当ての管理から連携用Salesforceユーザを割り当ててください。
Salesforce側の設定は以上となります。
MuleSoft側の設定
以上でSalesforce側に連携するための材料を揃えましたので、次はMule側での接続設定となります。
Mule側はConnector configurationに接続情報を設定していきます。プロパティファイルとGlobal Elementsで情報を一元化すると楽です。
一通り設定が完了したら、Test Connectionで接続を確認してみましょう。「Test Connection successful」が出れば成功です。
これでパスワードなしで接続アプリケーション経由でSalesforceへと接続することができました。あとはSalesforceの各コネクタに対し、Connector configurationを上記のSalesforce configに設定すればOKです。
最後に
以上がJWTベアラーフローを使用したMuleとSalesforceの接続設定の流れとなります。なかなか設定周りが難しく試行錯誤するかもしれませんが、接続できた時は喜びもひとしおです。セキュリティ的にもユーザ名とパスワードによるBasic認証よりも安全性が高い手法となっていますので、設定に慣れておきましょう。
■お知らせ
テックブログではSalesforceに関する有益な情報を発信しています。ぜひチェックしてみてください!