前回の記事では、API Managerの設定方法と、Runtime Managerの紐付けについてお伝えしました。
ポリシーとは
ポリシーとはAPIを使用する際のルールのようなものです。APIはポリシーに定めらてたルールを元にAPI Managerでアクセス制御などを実施することができます。ポリシーでは標準機能で汎用的なよく使用するルールを使用することもできますし、カスタムのポリシーを自作して適用することも可能です。
標準のポリシーの代表的なものは以下のものがあります。
- クライアントID適用ポリシー
- IP許可リスト
- IPブロックリスト
- JSON脅威保護
- レート制限
API Managerにポリシーを適用する
API Managerからポリシーを適用するには、APIを選択してから「Polices」を選択します。
「Add policy」を選択しましょう。
今回は「Client ID Enforcement」のポリシーを適用してみます。認証用にヘッダーにClient_IDとClient_secretが必要になるポリシーです。ポリシーの中から「Client ID Enforcement」を選択し、Nextへ。
次はヘッダに指定するクライアントIDとシークレットのパラメータになります。デフォルトのままでOKなのでApplyします。
これでポリシーの適用ができました。今後、APIにアクセスする際はクライアントIDとシークレットが必要になります。
クライアントIDとシークレットに設定する値は、クライアントアプリケーションを通じてのアクセスになるため、まずはクライアントアプリケーションも作成する必要があります。Salesforceでいう接続アプリケーションにあたるものです。
クライアントアプリケーションの作成にはEchangeがら該当のAPIを選択し、「Request Access」を選択します。
API InstanceにはAPI ManagerのインスタンスIDを、また初回のみApplicationの部分は「Create a new application」でクライアントアプリケーションを作成します。クライアントアプリケーションは任意の名前でOKです。クライアントアプリケーション作成後、「Request access」しましょう。
Request access後、クライアントIDとシークレットが表示されますので、この値がヘッダに付与するクライアントIDとシークレットになります。
では、実際にポリシーが動作しているか確かめてみましょう。まず、ヘッダにクライアントIDとシークレットを入れない場合、401のエラーが出ます。
続いて、ヘッダにクライアントIDとシークレットを適当に入れた場合、こちらも401のエラーが出ます。
クライアントIDとシークレットを先ほど作成したクライアントアプリケーションの値を設定すると、このように認証が通りAPIが作動することが分かります。
こんな感じで、APIを実行する際の手前の段階でアクセス制御されることになります。今回はClient ID Enforcementを例に取り上げましたが、設定方法はポリシーによって異なるので、各ポリシーの仕様を確認してみてください。
コメント