API キー

API キー(Apigee Edge ではコンシューマ キーともいいます)は、クライアント アプリが API プロキシに渡す文字列値です。このキーにより、クライアント アプリが一意に識別されます。

API キー検証は、API に構成できるアプリベースのセキュリティの中で最も簡単な方法です。クライアント アプリはリクエストと一緒に API キーを提供し、Apigee Edge はリクエストされたリソースに対して API キーが承認状態かどうか検証します。内部的には、プロキシがポリシーを使用して API キーの真正性を検証します。

この機能を実現するには、いくつかの設定が必要です。API キーをサポートするため、次の操作を行う必要があります。

  • API キーで保護する API プロキシをバンドルする Apigee Edge API プロダクトを作成する
  • 認証するクライアント アプリのデベロッパーを提示する Apigee Edge デベロッパー アプリを作成する

    デベロッパー アプリを作成するときに、デベロッパー アプリがアクセスし、API キーの提供が必要になる API プロダクトを指定します。

  • プロキシ(API プロダクトに含まれるプロキシ)には、受信した API キーが有効かどうかを確認するポリシーを追加します。

API キーの要求による API の保護チュートリアルでは、API キーで API プロキシへのアクセスを制御する方法を学習できます。

API キーの機能

Apigee Edge では、API キーをコンシューマ キーといいます。デベロッパー アプリを登録すると、Apigee Edge がコンシューマ キーとシークレットを生成します。後の検証で使用するため、Apigee Edge はコンシューマ キーを保存します。コンシューマ キーは組織内で一意です。アプリのデベロッパーはクライアント アプリにコンシューマ キーを埋め込みます。クライアント アプリは、リクエストを送信するたびにコンシューマ キーを提供する必要があります。API サービスは、アプリのリクエストを許可する前にコンシューマ キーを検証します。

手順の概要

以下では、Apigee Edge で API キーを使用する方法を説明します。説明の中に OAuth セキュリティに触れている個所があります。多くの場合、この機能は API キーと一緒に使用されています。

  1. API キーで保護する API プロキシを含む API プロダクトを作成します。
  2. 組織でデベロッパー アプリを登録します。登録すると、Apigee Edge がコンシューマ キーとコンシューマ シークレットを生成します。
  3. 1 つ以上の API プロダクトにデベロッパー アプリを関連付けます。これは、キーの承認でリソースパスと API プロキシを関連付けるプロダクトです。
  4. ランタイムに、クライアント アプリが API にリクエストを送信します。リクエストの作成時にクライアント アプリがコンシューマ キーを送信します。コンシューマ キーは明示的に渡されることも、OAuth トークンで間接的に参照されることもあります。
    • API が API キー検証を使用する場合(VerifyAPIKey ポリシーの実装など)、クライアント アプリはコンシューマ キーを明示的に渡します。
    • API が OAuth トークン検証を使用する場合(OAuthV2 ポリシーの実装など)、クライアント アプリはコンシューマ キーから派生したトークンを渡します。
  5. VerifyAccessToken オペレーションで VerifyAPIKey ポリシーまたは OAuthV2 ポリシーを使用して、API プロキシがリクエストの認証情報を検証します。API プロキシに認証情報適用ポリシーを含めない場合、任意の呼び出し側が API を呼び出します。詳細については、Verify API Key ポリシーをご覧ください。

リクエストの認証情報の検証

これは概要です。API キー検証の設定で詳細とサンプルコードを確認してください。

  1. OAuth トークン検証を使用している場合。検証する OAuth ポリシーを実装し、クライアント アプリが OAuth トークンを渡しています。
    • Apigee Edge が有効期間内のトークンであることを確認し、トークンの生成に使用されたコンシューマ キーを探します。
  2. API キーを使用している場合。VerifyAPIKey ポリシーを実装し、クライアント アプリがコンシューマ キーを渡しています。
    1. Apigee Edge は、コンシューマ キーが関連付けられている API プロダクトのリストを確認します。
    2. Edge がそれぞれの API 製品をチェックし、現在の API プロキシが API プロダクトに含まれているかどうか確認します。また、現在のリソースパス(URL パス)が API プロダクトで有効になっているかどうかも確認します。
    3. Edge が、期限切れまたは失効したコンシューマ キーでないことを確認し、アプリが失効していないことを確認します。また、デベロッパーが非アクティブでないことも確認します。
    4. トークンが期限切れでない(該当する場合)。コンシューマ キーが有効で承認されている。アプリが承認されている。デベロッパーがアクティブな状態になっている。プロダクトがプロキシで使用できる。リソースがプロダクトで使用できる。これらのすべての条件を満たすと、認証情報の検証に成功します。