2.3.2. アプリケーションプランによる API アクセスポリシーの設定
「API の保護」の手順を実施すると、認証された呼び出しだけがご自分のプロダクトにアクセスできるようになります。本セクションでは、ポリシーを適用して流量制御を変更します。
3scale では、アプリケーション により API プロダクトにアクセスするためのクレデンシャルが定義されます。アプリケーションには必ず 1 つ アプリケーションプラン が関連付けられ、アクセスポリシーが定義されます。アプリケーションは、開発者アカウント 内に保管されます。3scale の Basic プランでは、1 つのアプリケーションしか許可されません。より高度なプランでは、アカウントごとに複数のアプリケーションが許可されます。
プロトタイプ では、プロダクトの総ヒット数に基づいてアクセスを制御することしかできません。カスタムメソッドおよびメトリクスを使用して初めて、3scale の柔軟性を体感することができます。カスタムメソッドおよびメトリクスを使用することで、アプリケーションプランおよびプロダクトの解析をより高度化することができます。詳細は、解析に関するガイド を参照してください。
- API の構造と 3scale のメソッドまたはメトリクスとの間のマッピングは論理的です。整合性のとれたルールを定義すれば、3scale からプロダクトの使用状況に関するレポートを受け取ることができます。詳細さのレベルを決める必要があります。一般的には、5 - 20 メソッド/メトリクスを目標とする必要があります。
- 3scale に報告される値は、増加するだけです。絶対値を設定したりカウンターを減らしたりすることはできません。
- 新たなメソッドまたはメトリクスを 3scale に追加したら、API ゲートウェイまたはコードプラグインなどのインテグレーションポイントに新しいシステム名を追加することが重要です。
- 実行時に、再デプロイせずに流量制御などに変更を加えることができます。
Echo API
プロダクトのアプリケーションプランにポリシーを追加するには、以下の例に示す手順を実施します。
- 操作対象のプロダクトを選択します。
- Application Plans セクションで Basic を選択し、3scale へのサインアップまたはインスタンスのデプロイ後に自動的に生成されたプランのいずれかを編集します。
- Hits に流量制御が設定されている場合には、その設定を削除します。
- プランの Hits メトリックに 新規メソッド を追加し、システム名を test に設定します。
- test メソッドの流量制御を 1 時間あたり 5 回に設定します。
-
2 つの 新規メトリクス を追加し、システム名を
v1
およびv2
に設定します。 - v2 メトリックの Enabled 列をクリックし、アクセスを無効にします。これは、流量制御をゼロに設定するのと同じ効果を持ちます。
APIcast のデプロイメント
- [Your_product_name] > Integration > Configuration の順に移動します。
MAPPING RULES セクションを展開し、以下のマッピングを追加します。
注記/のデフォルトのマッピングは削除されています。このデフォルトマッピングを使用すると、ヒット数が二重にカウントされます。
コードプラグインのデプロイメント
- 3scale の承認およびレポート呼び出しにカスタムメソッドおよびメトリクスの使用状況を追加するには、プラグインライブラリーの手順および例に従ってください。
-
URL 構造からカスタムメソッド
test
へのマッピングを確認します。 -
URL からカスタムメトリクス
v1
およびv2
へのマッピングを確認します。 3scale の Basic プランに関連付けられたアプリケーションのクレデンシャルを使用して、呼び出しをテストします。
呼び出しは許可されます。
curl "https://api-2445581407825.staging.apicast.io:443/v1/test?user_key=287d64924e6120d215b1000ac07c063b"
5 回目以降は、呼び出しが拒否されます。これは、test メソッドに設定した制限のためです。
3scale の Basic プランでは
v2
は許可されないので、呼び出しは拒否されます。curl "https://api-2445581407825.staging.apicast.io:443/v2/test?user_key=287d64924e6120d215b1000ac07c063b"
missing に設定されたマッピングルールがないので、呼び出しは拒否されます。
curl "https://api-2445581407825.staging.apicast.io:443/missing?user_key=287d64924e6120d215b1000ac07c063b"
プラグインのマッピングの実装状態によっては、これらの呼び出しは NGINX に対して許可されます。以下の呼び出しで 404 not found のレスポンスが返されるかどうかは、お使いのアプリケーションによります。これを避けるには、マッピングを調整してください。
curl "https://api-2445581407825.staging.apicast.io:443/noversion/test?user_key=287d64924e6120d215b1000ac07c063b"
この基本概念により、プロダクトレベルおよびバックエンドレベルの両方で、柔軟に API レイヤーを定義することができます。カスタムメソッドおよびメトリクスに何を使うかについて、早期に決定しておく必要があります。システム名に変更を加えた場合には、ベーシックパスの「API の保護」で説明したように、必ず変更を再デプロイします。