Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

What's a policy?

Apigee Edge では、「ポリシー」を使用することで、コードの記述なしで API の動作を「プログラミング」できます。ポリシーは、特定の限定的な管理機能を実装するモジュールに似ています。ポリシーは、高い信頼性を維持しながら、一般的なタイプの管理機能を API に簡単に追加できるように設計されています。ポリシーには、セキュリティ、レート制限、変換、仲介機能などの機能が備わっています。したがって、独自の環境でこれらの機能をコーディング、保守する必要がありません。

Apigee Edge で提供されるポリシータイプセットに限定されていません。カスタムのスクリプトとコード (JavaScript や Node.js アプリケーションなど) を記述することもできます。これらは、API プロキシの機能性を拡張するため、Apigee ポリシでサポートされる基本的な管理機能に基づいて革新的な機能を実現できます。

ポリシータイプ

技術的には、ポリシーは XML 形式の構成ファイルです。各ポリシータイプの構造 (例えば、必須、オプションの構成要素) は、XML スキーマによって定義されます。XML ツールを使い慣れている場合は、Github の  API プラットフォームサンプルにあるポリシースキーマを使用してみることをお勧めします。

Edge ポリシーのタイプは、次の機能カテゴリで分類されています。

トラフィック管理

トラフィック管理カテゴリのポリシーでは、API プロキシを通じて、リクエストとレスポンスメッセージのフローを制御できます。これらのポリシーは、運用レベルと業務レベルの両方の制御をサポートします。これらのポリシーを使用すると、未処理のスループットを制御して、アプリ単位でトラフィックを制御することも可能です。トラフィック管理ポリシータイプでは、クォータを強制できます。またこれらは、DoS (Denial of Service) 攻撃に対する被害の軽減に役立ちます。

セキュリティ

セキュリティカテゴリのポリシーは、認証、承認、コンテンツベースのセキュリティをサポートします。

仲介

仲介カテゴリのポリシーでは、API プロキシを通過する際に積極的にメッセージを操作できます。これらのポリシーでは、メッセージの形式を XML から JSON (および逆方向) に変換したり、特定の XML 形式を別の XML 形式に変換したりできます。またメッセージの解析、新しいメッセージの生成、送信メッセージの値変更なども実行できます。さらに仲介ポリシーは、API サービスで開放されている基本的なサービスと連携しているため、アプリ、開発者、セキュリティトークン、API 製品の情報を実行時に取得できます。 

拡張機能 

拡張機能カテゴリのポリシーでは、API サービスの拡張性に基づいて、選択したプログラミング言語でカスタムの動作を実装できます。

各ポリシータイプについては、「 Policy reference overview」で詳細に説明します。このトピックでは、一般的な連携動作について説明し、ポリシーの作成方法、API プロキシ構成でのフローへの添付方法を示します。

ポリシーの変更の展開

ポリシーの変更を有効にするには、API プロキシのリビジョンを環境に展開する必要があります。ポリシーを添付した後、または既存のポリシーを変更した後、管理 UI または管理 API を使用して変更を展開します。

ポリシー強制の検証

ポリシーが適切に強制されていることを検証するには、HTTP クライアントで API を呼び出す必要があります。このクォータ構成を検証するには、複数のリクエストを API に送信して、Quota ポリシーに設定されたクォータ制限を超過してみます。以下のリクエストで、URI パスは、ProxyEndpoint のベースパス設定に従って構成されており、値は /weather になっています。

http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

1 分間に 1を超えるリクエストを送信すると、次のエラーメッセージが表示されます。

{"fault":{"faultstring":"policies.ratelimit.QuotaViolation","detail":{"errorcode":"policies.ratelimit.QuotaViolation"}}}

これは、API サービスによって Quota ポリシーが強制されていることを示しています。

ポリシーベースの障害処理

上記のエラーメッセージの形式に注意してください。このメッセージには、faultstring プロパティおよび errorcode プロパティが含まれています。多くの場合、これらのエラーに対応するために、いくつかの動作を実装する必要があります。例えば、カスタマイズメッセージを開発者に送信して、だれのアプリがクォータ超過になったのかを通知できます。

For more on fault handling, see Handling faults.

ベストプラクティス: 一般的なポリシーセット

基本的な管理要件を満たすために、API プロキシは通常以下のポリシーを強制します。

基本的な API キー検証

ProxyEndpoint リクエストフロー :
  1. SpikeArrest
  2. XMLThreatProtection または JSONThreatProtection
  3. API キー検証
  4. クォータ
  5. ResponseCache
ProxyEndpoint レスポンスフロー :
  1. ResponseCache

基本的な変換: JSON から XML へ

リクエストフロー:
  1. SpikeArrest
  2. JSONThreatProtection
  3. API キー検証
  4. クォータ
  5. JSONToXML
レスポンスフロー :
  1. XMLToJSON
  2. ResponseCache

ポリシー構成の動作するサンプルは、GitHub の「サンプル API プロキシの使用」で入手できます。

 

Help or comments?