【Salesforce】OAuth認証フローでのアクセストークン取得
こんにちは、CREFILの稲田です。
Salesforceと外部APIを接続する際、認証フローに基づいてアクセストークンが必要になることが多いと思います。
そこで今回は、Salesforce側で接続アプリケーションを作成し、アクセストークンを発行するまでの手順をご紹介します。
接続アプリケーション作成
Salesforceの設定から「App Manager」に移動し、新規接続アプリを作成します。
2.新規作成画面で基本情報とOAuthの設定を行います。
Basic Information
Connected App Name:接続アプリケーションの名称を入力
API Name:接続アプリケーションのAPI参照名を入力
Contact Email:メールアドレスを入力
API (Enable OAuth Settings)
Enable OAuth Settings:チェックをつけてOAuthを有効化
Callback URL:コールバックURLを入力(エンドポイント + /callback)
Selected OAuth Scopes:content / openid / full / api / refresh_token, offline_access をSelected OAuth Scopesへ追加
※セキュリティポリシーにあわせて、スコープは設定をしてください
Require Secret for Web Server Flow:OAuth 2.0 Webサーバーフローを有効化
Require Secret for Refresh Token Flow:OAuth 2.0 リフレッシュトークンフローを有効化
Enable Client Credentials Flow:OAuth 2.0 クライアント認証フローを有効化
3.作成した接続アプリケーションの「Manage Consumer Details」をクリックすると、認証コードが登録しているメールアドレスへ送信されるため、メール認証を行います。
4.Consumer KeyとConsumer Secretをコピーし、メモ帳などに保存しておきます。
5.Salesforceの設定から「Manage Conntected Apps」へ移動し、作成した接続アプリケーション名をクリックします。
6.「Edit Policies」ボタンをクリックし、クライアント認証用のユーザーを紐づけます。
Client Credentials Flow
Run As:「The Minimum Access - API Only Integrations」プロファイルを持つ、API実行用のユーザーを選択します。
アクセストークン取得
1.APIをコールし、アクセストークンを取得します。
curl
curl --location --globoff --request POST 'https://{domainName}/services/oauth2/token?client_id=xxx&client_secret=xxx&grant_type=client_credentials'
Query Params
client_id:接続アプリケーションのConsumer Key
client_secret:接続アプリケーションのConsumer Secret
grant_type:client_credentials(固定)
実行結果
アクセストークンが返却されていることを確認します。
アクセストークン取得の手順は以上となります。
こちらのアクセストークンを用いてSalesforceと外部APIを接続することが可能になります。