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 を押すと、
受諾、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 を受け入れる場合は、例えば
http://localhost:12345/foo/barのような任意の URL を使用できます。- クライアント ID
API プロバイダーに登録したクライアントの公開識別子です。 すべての 認可型でパラメーターが必要です。
- クライアントシークレット
クライアントアプリケーションが認可サーバーに認証する際に使用される機密識別子です。 クライアント資格情報 認可型にはパラメーターが必要です。
- クライアント資格情報
次のいずれかを入力します。
リクエストでクライアント資格情報を指定したくない場合は、
"none"リクエスト本文でクライアント資格情報を送信する場合は、
"in body""basic"は、要求ヘッダーで基本認証要求を送信します (デフォルト値)。
- デバイス認証 URL
クライアントデバイスがデバイスコードとユーザーコードを取得するために要求する URL。
デバイス認証付与タイプに適用可能であり、必須です。
- 完全な URI を開く
trueが設定されている場合、ブラウザーはユーザーコードを含む確認用 URI (verification_uri_complete) を開きます。 デフォルト値は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}}"。- カスタムリクエストパラメーター
カスタムリクエストパラメーターを指定する
- カスタムリクエストヘッダー},{
カスタムリクエストヘッダーを指定します