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

このようなリクエストを実行すると、 サービス ツールウィンドウで 認証ログの表示 ボタンが使用できるようになります。 リダイレクトページ、アクセストークン、その他の認証の詳細を表示できます。
アクセストークンを手動で取得する
HTTP リクエストで認証構成を参照すると、HTTP クライアントは、保護されたリソースにアクセスする前にアクセストークンを自動的に取得 (またはリフレッシュ) します。 保護されたリソースに実際のリクエストを送信せずにアクセストークンを取得したい場合は、アクセストークンを手動で取得できます。
http-client.env.json ファイルで、認証構成名の横にある
をクリックします。
認証構成に プライベート変数が含まれている場合は、表示されるポップアップでプライベート環境ファイルを選択します。
プロンプトが表示されたら、認証プロセスを完了します。
認証が正常に完了すると、GoLand はアクセストークンを取得します。 アクセストークンをすでに持っていて有効期限が切れている場合、GoLand がそれをリフレッシュします。
新しいアクセストークンを取得する
トークンのリフレッシュのほか、再認証、つまり最初のアクセストークンを取得した元のフローを繰り返すことで新しいトークンを取得できます。
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 認可フレームワークを拡張する リソース や audience が含まれます。
認証構成に、
"Custom Request Parameters"オブジェクトを追加します。"Custom Request Parameters"内に、パラメーター名と値 (文字列または配列) を入力します。パラメーターの使用を特定のリクエストに制限したい場合、値を 2 つのキーを持つオブジェクトとして定義します:
"値"(パラメーター値)"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 つのキーを持つオブジェクトとして定義します。
"値"(ヘッダー値)"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 サーバーが提供するアクセストークンの代わりに、GoLand は認証構成からトークンを使用します。 アクセストークンとして使用する"トークン"を指定し、必要に応じて ID トークンとして"ID Token"を指定してください。 例:"my-auth-id": { "Type": "Mock", "Token": "my-token" }
- 認可タイプ
アクセストークンを取得するメソッドです。 可能な値:
"Authorization Code"、"Client Credentials"、"Device Authorization"、"暗黙的"、"パスワード"。- 認証 URL
認証コードを取得するために、アプリケーションがクライアントリクエストをリダイレクトする認証 URL です。 認可コードと暗黙的な認可タイプには
"Auth URL"が必要です。- トークン URL
プロバイダーの認証サーバーで、認可コードをアクセストークンと交換します。 認可コード、クライアント資格情報、デバイス認可、パスワード認可タイプには
"Token URL"が必要です。- リダイレクト URL
認証後にリクエストがリダイレクトされるクライアントアプリケーションの コールバック URLです。 これはクライアントアプリケーションの設定にある URL か、認可サーバーが任意の URL を許可する場合は、例えば
http://localhost:12345/foo/barなどの任意の URL を使用できます。- クライアント ID
API プロバイダーに登録されたクライアントの公開識別子です。 このパラメーターはすべての 認可タイプで必須です。
- クライアントシークレット
クライアントアプリケーションが認証サーバーに認証するために使用する機密識別子です。 クライアント資格情報 認可タイプでこのパラメーターが必要です。
- クライアント資格情報
次のいずれかを入力してください:
リクエストでクライアント資格情報を指定したくない場合は、
"なし"リクエスト本文でクライアント資格情報を送信する場合は、
"in body""基本"は、要求ヘッダーで基本認証要求を送信します (デフォルト値)。
- デバイス認証 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}}"。- カスタムリクエストパラメーター
カスタムリクエストパラメーターを指定してください
- カスタムリクエストヘッダー
カスタムリクエストヘッダーを指定してください