本文へスキップ
BecomeCoder

C#実践コース · 第2章 HTTP通信 · レッスン14

認証ヘッダー

ブラウザで完結

導入

多くのAPIは「誰からのリクエストか」を確認します。その身元証明を運ぶのが認証ヘッダー。最も一般的なAuthorization: Bearer <トークン>の付け方を学びます。

図解

flowchart LR
    C["リクエスト"] -->|Authorization: Bearer abc123| S["サーバー"]
    S --> V{"トークンは有効?"}
    V -->|はい| OK["200 データを返す"]
    V -->|いいえ| NG["401 未認証"]

サンプル

using System.Net.Http.Headers;

using var client = new HttpClient();

// Authorization ヘッダーに Bearer トークンを設定する
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "abc123");

// 確認: 付与されたヘッダーを表示
Console.WriteLine(client.DefaultRequestHeaders.Authorization);
// Bearer abc123

// この状態で GetAsync すれば、全リクエストにトークンが付く
// トークンはソースに直書きせず、設定ファイルや環境変数から読むのが鉄則
  • Authorization: Bearer <トークン>が最も一般的な認証方式
  • client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token)で設定
  • トークン直書き厳禁——設定ファイルや環境変数から読む

演習

using System.Net.Http.Headers;

using var client = new HttpClient();

// TODO: Authorization ヘッダーに Bearer トークン "secret-token" を設定し、
//       client.DefaultRequestHeaders.Authorization を出力してください
___
  • 期待される出力: Bearer secret-token
ヒント1を見る

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "secret-token");

ヒント2を見る

Console.WriteLine(client.DefaultRequestHeaders.Authorization);

まとめ

  • Authorization: Bearer <トークン>で身元を伝える
  • AuthenticationHeaderValueで設定する
  • トークンは直書きせず設定ファイル・環境変数から読む

次章: プログラムを「動く成果物」にする——ビルド・コンパイルの仕組みとプロジェクトの構成を学ぶ「ビルド・ツールとプロジェクト基礎」へ進みます。

ターミナルでのファイル操作・パイプ・grep・sed・シェルスクリプトは、独立した Linux コース にまとめてあります。あわせてどうぞ。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。