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. API プロキシは、VerifyAccessToken オペレーションを持つ VerifyAPIKey ポリシーまたは OAuthV2 ポリシーを使用してリクエスト認証情報を検証します。API プロキシに認証情報の適用ポリシーが含まれていない場合、どの呼び出し元からでも API を正常に呼び出せます。詳細については、API キーポリシーを検証するをご覧ください。

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

これは概要です。詳細とコード例については、API キー検証の設定をご覧ください。

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