OAuth 2.0 認証
HTTP クライアントは OAuth 2.0 認証をサポートします。アクセストークンを取得し、OAuth 2.0 で保護されたリソースへのリクエストを認証できます。ユーザー認証情報を入力できるようにするために、HTTP クライアントは組み込みの JCEF ブラウザーにログインフォームを表示します。この非モーダルブラウザーでは、IDE での作業が妨げられることはなく、たとえば、ユーザー名とパスワードをコピーして貼り付けることができます。
一般的なフローには次の手順が含まれます。
認証設定を指定する (認可タイプやトークン URL など) (パブリック環境ファイル内の JSON 形式)。
$auth.token変数を使用した HTTP リクエスト内のこの認証構成を参照します。リクエストを実行します。認証が成功すると、保護されたリソースにアクセスできます。受信したアクセストークンとリフレッシュトークンは、HTTP クライアント認証ログまたはサービスツールウィンドウで確認できます。
アクセストークンを手動でリフレッシュしたり、新しいトークンを要求して認証手順を再初期化したりすることもできます。
認証構成の作成
.http ファイルの実行リストで、認証構成を追加する環境を選択します。
ツールバーで「
」をクリックし、「認証構成」を選択します。
これにより、選択した環境の
"Security"にある"Auth"オブジェクト内のパブリック環境ファイルに認証構成テンプレートが追加されます。例:{ "dev": { "Security": { "Auth": { "auth-id": { "Type": "OAuth2", "Grant Type": "", "Client ID": "" } } } } }プレースホルダー
auth-idを、.http ファイル内でこの構成を参照するために使用する意味のある名前に置き換えます。認証パラメーターを指定します。必要なパラメーターは、選択した
"Grant Type"によって異なります。認証パラメーターを入力するときに IntelliJ IDEA コーディング支援を使用します。パラメーター名の入力を開始するか、Ctrl+Space を押して、使用可能な JSON キーのリストを取得します。
HTTP リクエストで認証構成を使用する
認証構成が作成されたら、それを使用してアクセストークンを取得し、リクエストを認証できます。
認証構成の名前を
{{$auth.token()}}変数に渡します (例:{{$auth.token("my-config")}})。この変数は、リクエストAuthorizationヘッダーまたはクエリパラメーターで使用できます。「
」をクリックしてリクエストを送信します。保護されたリソースにアクセスする前に、HTTP クライアントは認可サーバーにリクエストを送信してアクセストークンを取得します。
プロンプトが表示されたら、認証プロセスを完了します。認証が正常に完了すると、HTTP クライアントは保護されたリソースにアクセスします。
{{$auth.token()}} 変数をすばやく追加するには、ライブテンプレートを使用します。HTTP メソッドのヘッダーセクションで「AuthorizationToken 」と入力し、表示される候補のリストから利用可能な認証を選択します。

このようなリクエストを実行すると、サービスツールウィンドウで認証ログの表示ボタンが使用できるようになります。リダイレクトページ、アクセストークン、その他の認証の詳細を表示できます。
アクセストークンを手動で取得する
HTTP リクエストで認証構成を参照すると、HTTP クライアントは、保護されたリソースにアクセスする前にアクセストークンを自動的に取得 (またはリフレッシュ) します。保護されたリソースに実際のリクエストを送信せずにアクセストークンを取得したい場合は、アクセストークンを手動で取得できます。
http-client.env.json ファイルで、認証構成名の横にある
をクリックします。
認証構成にプライベート変数が含まれている場合は、表示されるポップアップでプライベート環境ファイルを選択します。
プロンプトが表示されたら、認証プロセスを完了します。
認証が正常に完了すると、IntelliJ IDEA はアクセストークンを取得します。アクセストークンをすでに持っているものの、有効期限が切れている場合は、IntelliJ IDEA がそれをリフレッシュします。
新しいアクセストークンを取得する
トークンをリフレッシュする以外に、再認証することによって、つまり、最初のアクセストークンを取得するために使用した元のフローを繰り返すことによって、新しいトークンを取得できます。
http-client.env.json ファイルで、認証構成名にキャレットを置きます。
Alt+Enter ( コンテキストアクションの表示 ) を押して、認証トークンの強制取得を選択します。
認証構成にプライベート変数が含まれている場合は、表示されるポップアップでプライベート環境ファイルを選択します。
キャレットが .http ファイル内の $auth.token 変数上にある場合、同じアクションを呼び出すことができます。この場合、HTTP クライアントは .http ファイルと同じフォルダーにある環境ファイルを使用するため、プライベート環境ファイルを選択する必要はありません。
新しいトークンをリフレッシュまたは取得すると、アクセスおよびリフレッシュトークンとその他の認証の詳細が HTTP クライアント認証ログツールウィンドウ () に表示されます。

ブラウザーの Cookie をクリア
認可サーバーは、ブラウザーの Cookie に認証データを保存する場合があります。異なるデータを使用して認証フローをテストする場合は、組み込みの JCEF ブラウザーの Cookie をクリアする必要がある場合があります。
http-client.env.json ファイルで、認証構成名にキャレットを置き、Alt+Enter ( コンテキストアクションの表示 ) を押します。
ブラウザーの Cookie をクリアを選択します。
または、HTTP クライアント認証ログツールウィンドウで をクリックして Cookie をクリアすることもできます。
アクセストークンの代わりに ID トークンを使用する
サーバーでアクセストークンの代わりに ID トークンの使用が必要な場合は、次のいずれかの方法で HTTP クライアントを構成してこれを実行できます。
認証構成では、
"Use ID Token": trueパラメーターを使用します。.http ファイルでは、
$auth.idToken変数 (例:Authorization: Bearer {{$auth.idToken("auth-id-1")}}) を使用します。
カスタム認証パラメーターを使用する
HTTP クライアントには、認可サーバーが必要とするカスタムリクエストパラメーターを定義するオプションが用意されています。これには、たとえば、OAuth 2.0 認可フレームワークを拡張する resource や audience が含まれます。
認証構成に、
"Custom Request Parameters"オブジェクトを追加します。"Custom Request Parameters"内に、パラメーター名と値 (文字列または配列) を入力します。パラメーターの使用を特定のリクエストに制限する場合は、値を 2 つのキーを持つオブジェクトとして定義します。
"Value"(パラメーター値)"Use"— パラメーターの使用スコープ。次の 3 つの値が可能です。"Use": "Everywhere"(いかなるリクエストでも)"Use": "In Auth Request"(認証リクエストのみ)"Use": "In Token Request"(トークンリクエストのみ)
例:
"auth-id-1": { "Type": "OAuth2", "Custom Request Parameters": { "audience": { "Value": "https://my-audience.com/", "Use": "In Token Request" }, "resource": [ "https://my-resource/resourceId1", "https://my-resource/resourceId2" ], "my-custom-parameter": "my-custom-value" }, }
HTTP クライアント認証ログツールウィンドウを使用して、リクエストで使用されるパラメーターとその値を表示します。
カスタムリクエストヘッダーを使用する
HTTP クライアントには、認可サーバーで必要となる可能性のあるカスタム要求ヘッダーを使用するオプションが用意されています。
認証構成に、
"Custom Request Headers"オブジェクトを追加します。"Custom Request Headers"内に、ヘッダー名とその値を入力します。Ctrl+Space を押すと、
Accept、Cookie、User-Agentなどの一般的なヘッダーの候補リストが表示されます。ヘッダーの使用を特定のリクエストに制限する場合は、値を 2 つのキーを持つオブジェクトとして定義します。
"Value"(ヘッダー値)"Use"— ヘッダーの使用スコープ。次の 3 つの値のいずれかになります。"Use": "Everywhere"(いかなるリクエストでも)"Use": "In Auth Request"(認証リクエストのみ)"Use": "In Token Request"(トークンリクエストのみ)
例:
"auth-id-1": { "Type": "OAuth2", "Custom Request Headers": { "Accept": { "Use": "Everywhere", "Value": "application/javascript" }, "my-custom-header": "my-custom-value" }, }
認証構成パラメーター
- タイプ
認証タイプ。可能な値:
"OAuth2": OAuth2 を使用してリクエストを認証します。"Mock"(開発またはテスト環境用): 認証プロセスをエミュレートします。OAuth2 サーバーによって提供されるアクセストークンの代わりに、IntelliJ IDEA は認証構成からのトークンを使用します。アクセストークンとして使用する"Token"を提供し、オプションで ID トークンとして"ID Token"を提供します。例:"my-auth-id": { "Type": "Mock", "Token": "my-token" }
- 権限付与の種類
アクセストークンを取得するメソッド。可能な値:
"Authorization Code"、"Client Credentials"、"Device Authorization"、"Implicit"、"Password"- 認証 URL
アプリケーションが認証コードを取得するためにクライアント要求をリダイレクトする認証 URL。
"Auth URL"は、認可コードおよび暗黙的な許可タイプに必要です。- トークン URL
プロバイダーの認証サーバー。認証コードをアクセストークンと交換します。認証コード、クライアント資格情報、デバイス認証、パスワード付与タイプには
"Token URL"が必要です。- リダイレクト URL
認証後にリクエストをリダイレクトするクライアントアプリケーションのコールバック URL。これはクライアントアプリケーション設定の URL にすることも、認可サーバーが任意の URL を受け入れる場合は任意の URL (例:
http://localhost:12345/foo/bar) を使用することもできます。- クライアント ID
API プロバイダーに登録されたクライアントの公開識別子。このパラメーターはすべての許可型に必要です。
- クライアントシークレット
クライアントアプリケーションが認可サーバーに対して認証するために使用する機密識別子。このパラメーターは、クライアント資格情報付与型に必須です。
- クライアント資格情報
次のいずれかを入力します。
リクエストでクライアント資格情報を指定したくない場合は、
"none"リクエスト本文でクライアント資格情報を送信する場合は、
"in body""basic"は、要求ヘッダーで基本認証要求を送信します (デフォルト値)。
- デバイス認証 URL
クライアントデバイスがデバイスコードとユーザーコードを取得するために要求する URL。
デバイス認証付与タイプに適用可能であり、必須です。
- 完全な URI を開く
trueに設定すると、ブラウザーはユーザーコード (verification_uri_complete(英語)) を含む検証 URI を開きます。デフォルト値はfalseです。ブラウザーは検証 URI (埋め込まれたユーザーコードなし) を開き、通常はユーザーが手動でコードを入力する必要があります。デバイス認証付与タイプに適用可能です。
- ブラウザーの後にポーリングを開始
trueに設定すると、クライアントデバイスは、ブラウザーが閉じられた後にのみ、トークンエンドポイントにアクセストークン要求を送信します (ポーリング)。デフォルト値はfalseです。デバイスは、ユーザーが操作を完了するか、コードの有効期限が切れるまで、トークンエンドポイントを継続的にポーリングします。デバイス認証付与タイプに適用可能です。
- PKCE
コード交換のための証明キー (PKCE)(英語) を有効にします。認可コード付与タイプに適用可能です。
デフォルトのアルゴリズム (自動生成されたコード検証の SHA-256 ハッシュ) を使用するには、
"PKCE": trueと入力します。または、"Code Challenge Method"(プレーンまたは SHA-256) と"Code Verifier"を使用して動作をカスタマイズします。例:"PKCE": { "Code Challenge Method": "Plain", "Code Verifier": "YYLzIBzrXpVaH5KRx86itubKLXHNGnJBPAogEwkhveM" },- スコープ
ユーザーのアカウントへのアプリケーションのアクセスを制限するスコープ。可能な値は、アクセスしようとしているサービスによって異なります。
- 自動取得
デフォルトでは、HTTP クライアントはリクエストを送信する前にアクセストークンを自動的にリフレッシュまたは取得します。リクエストを送信する前にアクセストークンを自動的にリフレッシュまたは取得したくない場合は、「
"Acquire Automatically": false」と入力します。手動でリフレッシュまたは取得できます。- ユーザー名
認証の一部として送信されるユーザー名。パスワード付与タイプで使用されます。
- パスワード
認証の一部として送信されるユーザーのパスワード。パスワード付与型で使用されます。パスワードの共有を避けるには、値の代わりにプライベート変数 (
"Password": "{{password}}"など) を使用できます。- カスタムリクエストパラメーター
カスタムリクエストパラメーターを指定する
- カスタムリクエストヘッダー
カスタムリクエストヘッダーを指定する
関連ページ:
HTTP クライアント変数
HTTP リクエストを作成する場合、変数を使用してその要素をパラメーター化できます。変数は、リクエストのホスト、ポート、パスの値、クエリパラメーターまたは値、ヘッダー値、リクエストの本文内または外部ファイルで使用される任意の値を保持できます。リクエスト内で変数を使用する変数をとして二重波括弧で囲みます。リクエストで波括弧を使用する必要があるが、それを HTTP クライアント変数として扱わないようにしたい場合は、URL エンコード形式を使用します。の場合は、の場合はです。例:### send UR...
HTTP レスポンス処理 API リファレンス
HTTP 応答ハンドラースクリプトは JavaScript ES6 で記述されており、コーディング支援とドキュメントはバンドルされているライブラリによって処理されます。ライブラリは、応答ハンドラースクリプトの作成に使用する 2 つのオブジェクトを公開します。クライアントはセッションメタデータを保存します。これはスクリプト内で変更できます。の状態は、IntelliJ IDEA を閉じるまで保持されます。response は、受信した応答に関する情報(コンテンツタイプ、ステータス、応答本文など)を保持...