このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示します。
API キー(Apigee ではコンシューマ キーと呼びます)は、クライアント アプリから API プロキシに渡される文字列値です。このキーにより、クライアント アプリが一意に識別されます。
API キー検証は、API に対して設定できるアプリベースのセキュリティの中で最も簡単な方法です。クライアント アプリはリクエストと一緒に API キーを提供し、Apigee はリクエストされたリソースに対して API キーが承認状態かどうかを確認します。内部的には、プロキシはポリシーを使用して API キーの信頼性を検証します。
このシンプルさを実現するには、若干の設定を行う必要があります。API キーをサポートするには、次の操作を行う必要があります。
- API キーで保護する API プロキシをバンドルする Apigee API プロダクトを作成します。
- アプリ認証対象のクライアント アプリ デベロッパーを表す Apigee デベロッパー アプリを作成します。
デベロッパー アプリを作成するときに、デベロッパー アプリでアクセスできる API プロダクトを指定します。API プロダクトには、API キーを指定する必要があります。
- プロキシ(API プロダクトに含まれるプロキシ)に、受信した API キーが有効かどうかを確認するためのポリシーを追加します。
API キーの要求による API の保護チュートリアルでは、API キーを使用して API プロキシへのアクセスを制御する方法を簡単に学習できます。
API キーの仕組み
Apigee では API キーはコンシューマ キーと呼ばれます。デベロッパー アプリを登録すると、Apigee がコンシューマ キーと Secret を生成します。後の検証で使用するため、Apigee はコンシューマ キーを保存します。コンシューマ キーは組織内で一意です。アプリのデベロッパーはクライアント アプリにコンシューマ キーを埋め込みます。クライアント アプリが各リクエストのコンシューマ キーを提示する必要があります。API サービスは、アプリのリクエストを許可する前にコンシューマ キーを検証します。
手順の概要
次のステップでは、Apigee で API キーを使用する方法を説明します。説明の中に OAuth セキュリティに触れている個所があります。多くの場合、この機能は API キーと一緒に使用されています。
- API キーを使用して保護する必要がある API プロキシを含む API プロダクトを作成します。
- 組織にデベロッパー アプリを登録します。登録すると、Apigee がコンシューマ キーとコンシューマ シークレットを生成します。
- デベロッパー アプリを 1 つ以上の API プロダクトに関連付けます。これは、キーの承認でリソースパスと API プロキシを関連付けるプロダクトです。
- 実行時に、クライアント アプリが API に対しリクエストを行うと、クライアント アプリはリクエストを行うときにコンシューマ キーを送信します。実際には、以下のとおり、コンシューマ キーが明示的に渡される場合と、OAuth トークンを介して暗黙的に参照される場合があります。
- API が API キー検証を使用する場合(VerifyAPIKey ポリシーの実装など)、クライアント アプリはコンシューマ キーを明示的に渡します。
- API が OAuth トークン検証を使用する場合(OAuthV2 ポリシーの実装など)、クライアント アプリはコンシューマ キーから派生したトークンを渡す必要があります。
- API プロキシは、VerifyAccessToken オペレーションを持つ VerifyAPIKey ポリシーまたは OAuthV2 ポリシーを使用してリクエスト認証情報を検証します。API プロキシに認証情報の適用ポリシーが含まれていない場合、どの呼び出し元からでも API を正常に呼び出せます。詳細については、VerifyAPIKey ポリシーをご覧ください。
リクエストの認証情報の検証
これは概要です。詳細とコード例については、API キー検証の設定をご覧ください。
- OAuth トークン検証を使用している場合 - 検証する OAuth ポリシーを実装し、クライアント アプリが OAuth トークンを渡しています。
- Apigee は、トークンが期限切れでないことを確認し、トークンの生成に使用されたコンシューマ キーを検索します。
- API キーを使用している場合 - VerifyAPIKey ポリシーを実装し、クライアント アプリがコンシューマ キーを渡しています。
- Apigee は、コンシューマ キーが関連付けられている API プロダクトのリストを確認します。
- Apigee がそれぞれの API プロダクトをチェックし、現在の API プロキシが API プロダクトに含まれているかどうか確認します。また、現在のリソースパス(URL パス)が API プロダクトで有効になっているかどうかも確認します。
- また、コンシューマ キーが期限切れまたは取り消し済みでないことを検証し、アプリが失効していないこと、デベロッパーが非アクティブではないことを確認します。
- 上記の条件がすべて満たされている場合、つまり、トークンが有効期限切れでなく(該当する場合)、コンシューマ キーが有効かつ承認済み、アプリが承認済み、デベロッパーがアクティブ、プロキシがプロダクトで使用可能、リソースがプロダクトで使用可能な場合、認証情報の検証に成功します。