はじめに
このドキュメントでは、Cisco FMCおよびCisco FDMのアプリケーションプログラミングインターフェイス(API)エクスプローラを使用したナビゲーションについて説明します。
前提条件
REST APIの基本的な知識
要件
このデモンストレーションでは、このFirepower Management Center(FMC)で管理されるデバイスを1つ以上使用して、Firepower Management Center(FMC)のGUIにアクセスする必要があります。 このデモンストレーションのFDM部分では、FDM GUIにアクセスするために、Firepower Threat Defense(FTD)をローカルで管理する必要があります。
使用するコンポーネント
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
FMC APIエクスプローラ経由のナビゲーションの確認
FMC APIエクスプローラにアクセスするには、次のURLに移動します。
https://<FMC_mgmt_IP>/api/api-explorer
FMC GUIに使用したのと同じクレデンシャルでログインする必要があります。これらのクレデンシャルは、APIエクスプローラのURLを入力したときに、次のようなウィンドウに入力します。
ログインすると、APIクエリが、APIを使用して実行できるコールに対応するカテゴリに分割されていることが確認できます。
注:GUIまたはCLIから使用できるすべての設定機能がAPIから使用できるわけではありません。
カテゴリをクリックすると展開され、そのカテゴリで使用可能なさまざまなコールが表示されます。これらのコールは、それぞれのRESTメソッドおよびそのコールのUniversal Resource Identifier(URI)とともに表示されます。
次の例では、FMCで設定されているアクセスポリシーを表示するように要求します。対応する方法をクリックして展開し、Try it outボタンをクリックします。
重要なのは、各API呼び出しで使用可能なパラメータを使用してクエリをパラメータ化できることです。赤いアスタリスクの付いている人だけが必須です、他の人は空のままにすることができます。
たとえば、domainUUIDはすべてのAPIコールに必須ですが、APIエクスプローラでは自動的に入力されます。
次のステップは、Executeをクリックしてこのコールを発信することです。
[Execute]をクリックする前に、コールに対する応答例を確認し、要求が正しいかどうかに応じて可能な応答を確認できます。
APIコールが実行されると、応答ペイロードとともに応答コードが取得されます。この例では、OK要求に対応する200です。 また、cURLと発信したコールのURLも取得します。この情報は、外部のクライアント/ソフトウェアを使用してこのコールを発信する場合に役立ちます。
取得した応答は、FMCで設定されているACPを、そのobjectIDとともに返します。この場合、次の図の赤いボックスに次の情報が表示されます。
このobjectIDは、このACPへの参照が必要なコールで入力する値です。たとえば、このACP内でルールを作成します。
中かっこ{}で囲まれた値を含むURIは、この呼び出しに必要な値です。 domainUUIDは自動的に入力される唯一の値であることに注意してください。
これらのコールに必要な値は、コールの説明で指定されます。ACPのルールを作成するには、次の図に示すようにpolicyIDが必要です。
このpolicyIDは、containerUUIDとして指定されたフィールドに入力します。POSTメソッドのもう1つの必須フィールドは、ペイロードまたは要求本文です。必要に応じて、ここで示した例を使用して変更できます。
変更されたペイロードの例:
{ "action": "ALLOW", "enabled": true, "type": "AccessRule", "name": "Testing API rule", "sendEventsToFMC": false, "logFiles": false, "logBegin": false, "logEnd": false, "sourceZones": { "objects": [ { "name": "Inside_Zone", "id": "8c1c58ec-8d40-11ed-b39b-f2bc2b448f0d", "type": "SecurityZone" } ] }, "destinationZones": { "objects": [ { "name": "Outside_Zone", "id": "c5e0a920-8d40-11ed-994a-900c72fc7112", "type": "SecurityZone" } ] }, "newComments": [ "comment1", "comment2" ] }
注:使用可能なゾーンとそのIDは、次のクエリを使用して取得できます。
前のコールを実行すると、要求が成功してリソースの作成につながったことを示す201応答コードが表示されます。
最後に、ACPが変更されたFTDでこれらの変更を有効にするには、展開を行う必要があります。
そのためには、導入する準備ができている変更があるデバイスのリストを取得する必要があります。
この例では、ハイアベイラビリティに設定されたデバイスのペアが使用されています。このHAのIDを取得する必要があります。スタンドアロンデバイスの場合、そのデバイスのIDを取得する必要があります。
HAのデバイスIDを取得するために必要なクエリは次のとおりです。
デバイスIDと導入バージョン番号を使用して、次のコール例のペイロードを変更し、この導入を実行するためのコールを発信できます。
このコールが実行されると、すべてが正しければ、コード202で応答が返されます。
FDM APIエクスプローラでのナビゲーションの確認
FDM APIエクスプローラにアクセスするには、次の図に示すように、FDM GUIのボタンを使用して直接APIエクスプローラに移動します:
APIエクスプローラで、クエリーがカテゴリに分割されていることがわかります。
カテゴリを展開するには、そのカテゴリをクリックする必要があります。次に、いずれかの操作をクリックして展開できます。各操作の中で最初に見つかるのは、このコールに対するOK応答の例です。
次に、コールの応答を制限するために使用できるパラメータが表示されます。このようなコールを発信するには、必須としてマークされたフィールドだけが必須であることに注意してください。
最後に、このコールが返すことができる応答コードを確認します。
この通話を発信するには、「発信する」をクリックする必要があります。このボタンは各コールの一番下にあるため、このボタンを見つけるには、このボタンが見つかるまで下にスクロールする必要があります。
Try It Outボタンをクリックすると、それ以上のフィールドを必要としないコールの場合は、ただちに実行され、応答が返されます。
トラブルシュート
各コールは、HTTP応答コードと応答本文を生成します。これにより、エラーの場所を特定できます。
次に、セッションが期限切れになると発生する一般的なエラーがあります。これは、トークンが期限切れであるために無効であることを示します。
次に、コールが返すことができるHTTP応答コードの例を示します。
- 2xxシリーズ:成功。200(GETおよびPUT)、201(POST)、202、204(DELETE)などのステータスコードがあります。APIコールが成功したことを示します。
- 30xシリーズ:リダイレクト。クライアントが最初にHTTPを使用し、HTTPSにリダイレクトされたときに使用できます。
- 4xxシリーズ:クライアントからサーバに送信されたAPIコールのクライアント側の障害。2つの例として、セッションが認証されていないことを示す401ステータスコードと、アクセスが禁止されていることを示す403コードがあります。
- 5xxシリーズ:サーバ、デバイス、またはサービス側の障害。これは、デバイスAPIサービスが無効になっているか、IPネットワーク経由でアクセスできないことが原因である可能性があります