ユーザエージェント OAuth 認証フローについて
ユーザエージェント認証フローは、ユーザのデバイスにあるクライアントアプリケーション (コンシューマ) で使用されます。これは、JavaScript などのスクリプト言語を使用するブラウザ内で、または携帯機器またはデスクトップアプリケーションから実装することができます。これらのコンシューマは顧客の秘密の機密を保持することができません。
このフローでは、クライアントアプリケーションは、アクセストークンを抽出してアプリケーションに戻すことができる他の Web サーバまたはリソースにユーザをリダイレクトするように認証サーバに要求します。このフローの手順は、次のとおりです。
- アプリケーションはユーザを適切な Salesforce 認証エンドポイント (https://login.salesforce.com/services/oauth2/authorize など) にリダイレクトします。次のパラメータは必須です。
次のパラメータは省略可能です。
パラメータ 説明 response_type この認証フローの場合、必ず token にする client_id 接続アプリケーション定義の [コンシューマ鍵]。 redirect_uri 接続アプリケーション定義の [コールバック URL]。 認証 URL の例は、次のようになります。パラメータ 説明 display ログインページの表示の種類を変更します。有効な値は、次のとおりです。 - page — 全画面のページ認証。これは、値が指定されていない場合のデフォルト値です。
- popup — 最新の Web ブラウザのポップアップウィンドウ用に最適化されたコンパクトなダイアログ。
- touch — Android や iPhone など、最新のスマートフォン用に設計されたモバイル用に最適化されたダイアログ。
- mobile — BlackBerry OS 5 など、タッチスクリーンをサポートしていないスマートフォン用に設計された、モバイル用に最適化されたダイアログ。
scope アプリケーションがアクセスできるデータを指定します。詳細は、オンラインヘルプの「範囲パラメータの値」を参照してください。 state 承認後にコールバック URL で返される、追加の URL 符号化された状態データを指定します。 1https://login.salesforce.com/services/oauth2/authorize?response_type=token& 2client_id=3MVG9lKcPoNINVBIPJjdw1J9LLJbP_pqwoJYyuisjQhr_LLurNDv7AgQvDTZwCoZuD 3ZrXcPCmBv4o.8ds.5iE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fuser_callback.jsp& 4state=mystate - ユーザが自分のログイン情報で Salesforce にログインします。ユーザは認証エンドポイントを直接操作するため、アプリケーションがユーザのログイン情報を認識することはありません。
- 認証されると、認証エンドポイントはユーザをリダイレクト URL にリダイレクトします。この URL は、アプリケーション用に作成されたリモートアクセスアプリケーションに定義されています。Salesforce は、アクセストークン情報を次の値でリダイレクト URL に付加します。
アクセス情報がハッシュ記号 (#) の後に付加されたコールバック URL の例は、次のようになります。
パラメータ 説明 access_token アプリケーションが要求を行うために使用するセッション ID として機能するアクセストークン。このトークンは、ユーザログイン情報と同様に保護する必要があります。 expires_in アクセストークンが有効な時間 (秒)。 refresh_token 新しいアクセストークンを取得するために将来使用できるトークン。 更新トークンが返されるのは、リダイレクト URI が https://login.salesforce.com/services/oauth2/success であるか、HTTPS 以外のカスタムプロトコルで使用されている場合のみです。 state 最初の要求の一部として渡される状態値 (該当する場合のみ)。 instance_url API コールの送信先となる Salesforce インスタンスを示します。 id ユーザ、およびユーザの詳細に関するクエリの両方を識別するために使用できる ID URL。エンドユーザに関する詳細な情報を取得するための HTTP 要求で使用できます。 issued_at 署名が作成された日時。UNIX エポック (1970 年 1 月 1 日 00:00:00 UTC) からの秒数として表されます。 signature 連結 ID と issued_at 値を含むコンシューマの非公開鍵で署名されている Base64 符号化された HMAC-SHA256 署名。この signature は、ID URL がサーバから送信された後に変更されていないことを確認するために使用できます。 1https://www.mysite.com/user_callback.jsp#access_token=00Dx0000000BV7z%21AR8 2AQBM8J_xr9kLqmZIRyQxZgLcM4HVi41aGtW0qW3JCzf5xdTGGGSoVim8FfJkZEqxbjaFbberKGk 38v8AnYrvChG4qJbQo8&refresh_token=5Aep8614iLM.Dq661ePDmPEgaAW9Oh_L3JKkDpB4xR 4eb54_pZfVti1dPEk8aimw4Hr9ne7VXXVSIQ%3D%3D&expires_in=7200&state=mystate - アプリケーションは、提供されたアクセストークンと更新トークンを使用して保護されたユーザデータにアクセスします。