APIにポリシーを適用する

前回の記事では、API Managerの設定方法と、Runtime Managerの紐付けについてお伝えしました。

スポンサーリンク

ポリシーとは

ポリシーとはAPIを使用する際のルールのようなものです。APIはポリシーに定めらてたルールを元にAPI Managerでアクセス制御などを実施することができます。ポリシーでは標準機能で汎用的なよく使用するルールを使用することもできますし、カスタムのポリシーを自作して適用することも可能です。

標準のポリシーの代表的なものは以下のものがあります。

  • クライアントID適用ポリシー
  • IP許可リスト
  • IPブロックリスト
  • JSON脅威保護
  • レート制限

API Managerにポリシーを適用する

API Managerからポリシーを適用するには、APIを選択してから「Polices」を選択します。

API Managerポリシー

「Add policy」を選択しましょう。

ポリシーの追加

今回は「Client ID Enforcement」のポリシーを適用してみます。認証用にヘッダーにClient_IDとClient_secretが必要になるポリシーです。ポリシーの中から「Client ID Enforcement」を選択し、Nextへ。

ポリシーのClient ID Enforcement

次はヘッダに指定するクライアントIDとシークレットのパラメータになります。デフォルトのままでOKなのでApplyします。

Client ID Enforcementの設定

これでポリシーの適用ができました。今後、APIにアクセスする際はクライアントIDとシークレットが必要になります。

クライアントIDとシークレットに設定する値は、クライアントアプリケーションを通じてのアクセスになるため、まずはクライアントアプリケーションも作成する必要があります。Salesforceでいう接続アプリケーションにあたるものです。

クライアントアプリケーションの作成にはEchangeがら該当のAPIを選択し、「Request Access」を選択します。

ExchangeからRequest access

API InstanceにはAPI ManagerのインスタンスIDを、また初回のみApplicationの部分は「Create a new application」でクライアントアプリケーションを作成します。クライアントアプリケーションは任意の名前でOKです。クライアントアプリケーション作成後、「Request access」しましょう。

Request access

Request access後、クライアントIDとシークレットが表示されますので、この値がヘッダに付与するクライアントIDとシークレットになります。

クライアントアプリケーション

では、実際にポリシーが動作しているか確かめてみましょう。まず、ヘッダにクライアントIDとシークレットを入れない場合、401のエラーが出ます。

401 Unauthorized Authentication denied

続いて、ヘッダにクライアントIDとシークレットを適当に入れた場合、こちらも401のエラーが出ます。

401 Unauthorized Invalied Client

クライアントIDとシークレットを先ほど作成したクライアントアプリケーションの値を設定すると、このように認証が通りAPIが作動することが分かります。

Client ID Enforcementを適用した正常ケース

こんな感じで、APIを実行する際の手前の段階でアクセス制御されることになります。今回はClient ID Enforcementを例に取り上げましたが、設定方法はポリシーによって異なるので、各ポリシーの仕様を確認してみてください。

MuleSoft
スポンサーリンク

コメント