見出し画像

【Salesforce】OAuth認証フローでのアクセストークン取得

こんにちは、CREFILの稲田です。

Salesforceと外部APIを接続する際、認証フローに基づいてアクセストークンが必要になることが多いと思います。
そこで今回は、Salesforce側で接続アプリケーションを作成し、アクセストークンを発行するまでの手順をご紹介します。

接続アプリケーション作成

  1. Salesforceの設定から「App Manager」に移動し、新規接続アプリを作成します。

2.新規作成画面で基本情報とOAuthの設定を行います。

Basic Information

  • Connected App Name:接続アプリケーションの名称を入力

  • API Name:接続アプリケーションのAPI参照名を入力

  • Contact Email:メールアドレスを入力

Basic Informationを設定する

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 クライアント認証フローを有効化

API (Enable OAuth Settings)を設定する

3.作成した接続アプリケーションの「Manage Consumer Details」をクリックすると、認証コードが登録しているメールアドレスへ送信されるため、メール認証を行います。

メールを確認し、認証コードを入力する

4.Consumer KeyとConsumer Secretをコピーし、メモ帳などに保存しておきます。

Copyボタンを押下し、生成されたConsumer Key, Consumer Secretを控える

5.Salesforceの設定から「Manage Conntected Apps」へ移動し、作成した接続アプリケーション名をクリックします。

6.「Edit Policies」ボタンをクリックし、クライアント認証用のユーザーを紐づけます。

Client Credentials Flow

Run As:「The Minimum Access - API Only Integrations」プロファイルを持つ、API実行用のユーザーを選択します。

虫眼鏡アイコンを押下し、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(固定)

実行結果

アクセストークンが返却されていることを確認します。

access_tokenが正常に返却されていることを確認(HTTPステータス:200)

アクセストークン取得の手順は以上となります。
こちらのアクセストークンを用いてSalesforceと外部APIを接続することが可能になります。


この記事が参加している募集