この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

OAuth 更新トークンプロセスについて

Web サーバ OAuth 認証フローとユーザエージェントフローはどちらも、新しいアクセストークンの取得に使用可能な更新トークンを提供します。

アクセストークンは、Salesforce のセッションタイムアウトで指定された有効期間に制限されています。アプリケーションが有効期限の切れたアクセストークンを使用すると、「Session expired or invalid」エラーが返されます。アプリケーションが Web サーバまたはユーザエージェント OAuth 認証フローを使用している場合、認証中に更新トークンが提供されます。この更新トークンを使用して、新しいアクセストークンを取得します。

更新トークン要求

クライアントアプリケーションが新しいアクセストークンを取得するには、次の要求パラメータを指定して POST 要求をトークン要求エンドポイントに送信します。
パラメータ 説明
grant_type 値は refresh_token である必要があります。
refresh_token クライアントアプリケーションがすでに受け取っている更新トークン。
client_id 接続アプリケーション定義の [コンシューマ鍵]
client_secret 接続アプリケーション定義の [コンシューマの秘密][Web サーバフローの秘密が必要] 設定が接続アプリケーション定義で有効になっていない場合を除き、必須です。このパラメータは省略可能です。
format 期待される戻り形式。デフォルトは、json です。値は次のとおりです。
  • urlencoded
  • json
  • xml
返される形式は、要求のヘッダーに次のいずれかを使用して指定することもできます。
  • Accept: application/x-www-form-urlencoded
  • Accept: application/json
  • Accept: application/xml
このパラメータは省略可能です。
次の例は、本文でクライアント ID とクライアントの秘密を送信する更新トークン POST 要求を示します。
1POST /services/oauth2/token HTTP/1.1
2Host: https://login.salesforce.com/ 
3grant_type=refresh_token&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0
4QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=1955279925675241571
5&refresh_token=your token here

POST 要求の本文でクライアントのログイン情報をパラメータとして送信する代わりに、Salesforce では HTTP 基本認証スキームがサポートされています。このスキーマでは、次のように要求の認証ヘッダーに client_idclient_secret が必要です。

Authorization: Basic64Encode(client_id:secret)

client_idclient_secret はコロン (:) で区切ります。詳細は、「OAuth 2.0 認証フレームワーク」を参照してください。

次の例は、(POST 要求の本文でクライアントのログイン情報を送信する代わりに) HTTP 基本認証スキームを使用する更新トークン POST 要求を示します。
1POST /services/oath2/token HTTP/1.1
2Host: login.salesforce.com
3Authorization: Basic M01WRzlJdTY2RktlSGhJTXFxSHNrdVQ2S1JwdnliQTN
4wZnFFbWpVeklmUkVhdmEyMk1hdVliVzU5SU1IcHRJUm9rZmVXdGtwOUJnR24yOVh
5jT3hXaTozNDY5MzIyMjcwMjQzMjcwNjk0
6
7grant_type=refresh_token&refresh_token=your token here

client_idclient_secret が POST 要求の本文で送信される場合、認証ヘッダーは無視されます。

メモ

Salesforce の応答

Salesforce は、更新トークン要求を検証した後、次のレスポンスボディパラメータを使用してアプリケーションに応答を送信します。
パラメータ 説明
access_token アプリケーションが要求を行うために使用するセッション ID として機能するアクセストークン。このトークンは、ユーザログイン情報と同様に保護する必要があります。
instance_url API コールの送信先となる Salesforce インスタンスを示します。
id ユーザを識別し、ユーザの詳細を照会するために使用できる ID URL。エンドユーザに関する詳細な情報を取得するための HTTP 要求で使用できます。
issued_at 署名が作成された日時。UNIX エポック (1970 年 1 月 1 日 00:00:00 UTC) からの秒数として表されます。
signature 連結 ID と issued_at 値を含む client_secret (非公開鍵) で署名されている Base64 符号化された HMAC-SHA256 署名。signature を使用して、ID URL がサーバから送信されたときに変更されなかったことを確認します。
次の例は、JSON レスポンスボディを示しています。
1{ "id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
2"issued_at":"1278448384422","instance_url":"https://yourInstance.salesforce.com/",
3"signature":"SSSbLO/gBhmmyNUvN18ODBDFYHzakxOMgqYtu+hDPsc=",
4"access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7T
5rqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4"}

考慮事項

更新トークン OAuth プロセスを使用するときの考慮事項は、次のとおりです。
  • アクセストークンのセッションタイムアウトを Salesforce で設定するには、[設定] から [クイック検索] ボックスに「セッションの設定」と入力し、[セッションの設定] を選択します。
  • アプリケーションがユーザ名パスワード OAuth 認証フローを使用する場合、このフローではユーザはアプリケーションを認証できないため、更新トークンは発行されません。アクセストークンの有効期限が切れた場合、ユーザ名パスワード OAuth フローを使用するアプリケーションはユーザを再認証する必要があります。