メインコンテンツまでスキップ

Key Authentication (Key Auth)

概要

Key Authentication (key-auth) ポリシーは、API 消費者がリクエストヘッダーに有効な API Key を含めることを要求することで、API セキュリティを強化します。このメカニズムにより、認可されたユーザーまたはアプリケーションのみが API にアクセスできるようになります。

キー認証の仕組み

  • API 消費者は、リクエストヘッダーに valid API Key を提供する必要があります。
  • API ゲートウェイは、リクエストを処理する前に API キーを検証します。
  • API キーが missing または invalid の場合、リクエストは認証エラーで拒否されます。

キー認証を使用するタイミング

  • API アクセスを authorized clients に制限するため。
  • API consumer identification メカニズムが必要な場合。
  • combining multiple authentication methods の場合(例:key-auth + JWT)。

Note: key-authJWT authentication の両方が有効な場合、both 認証メソッドを渡す必要があります。

設定の詳細

API キーの作成

Key Authentication ポリシーを適用する前に、API キーを生成する必要があります。次の手順に従ってください。

Step 1: Open the API Key Management Page
  • APIM コンソールの APIM Management メニューに移動します。
  • API キーを作成したいプロジェクトを選択します。
Step 2: Generate a New API Key
  • Create API Key ボタンをクリックします。
  • API キーのための description を入力します(例:"モバイルアプリアクセス用のキー")。
  • システムは automatically generate a unique API Key します。

Step 3: Check and view the API Key stored in management screen:
  • 作成されると、APIキーはAPIキー管理画面に表示されます。
  • ユーザーはAPIキーを探して、必要に応じて再度コピーできます。

設定フィールド

Key Authenticationポリシーには、以下の設定が含まれています:

Field NameDescriptionData Input
ヘッダー名APIキーがリクエストに含まれるべきHTTP header。デフォルトのヘッダー名はx-apim-keyです。Kubernetesデプロイメント「apim-dff」では、環境変数を介してヘッダー名を変更できます。これらの変数を変更すると、APIMコンソールが再起動され、短時間のサービス中断が発生する可能性があります。環境変数を介して設定可能です(K8sのみ)。
APIキー検証システムは、提供されたAPIキーが登録されており、有効であるかを確認してからAPIアクセスを許可します。
注:APIキーは通常、32文字の英数字の文字列です。
自動検証
エラーハンドリング有効なAPIキーが提供されない場合、リクエストはHTTP 401 Unauthorizedレスポンスで拒否されます。自動レスポンス

キー認証を使用したAPI呼び出しの例

認証されたAPIリクエストを行うには、リクエストヘッダーにAPI Keyを含めます:

GET /api/resource HTTP/1.1
Host: api.example.com
headers: { "x-apim-key": "202cb962ac59075b964b07152d234b70" }


APIキーが有効な場合、リクエストは正常に処理されます。そうでない場合、レスポンスは次のようになります:

{
"message": "無効な認証情報",
"status": 401
}