はじめに
このドキュメントでは、アプリケーションプログラミングインターフェイス(API)管理者がFirepower Management Center(FMC)で認証し、トークンを生成し、その後のAPIインタラクションでトークンを使用する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
- REST API(バージョン6.1以降)をサポートし、REST APIが有効になっているFirePOWER Management Center。
- Postman、Pythonスクリプト、CURLなどのRESTクライアント
背景説明
REST APIは、ネットワーク管理者がネットワークの設定と管理に使用できる軽量でプログラム可能なアプローチであるため、ますます普及しています。FMCは、任意のRESTクライアントと組み込みのAPIエクスプローラを使用した設定と管理をサポートしています。
設定
FMCでのREST APIの有効化
ステップ 1:System> Configuration> REST API Preferences> Enable REST APIの順に選択します。
ステップ 2:Enable REST APIチェックボックスにチェックマークを付けます。
ステップ 3:Saveをクリックすると、図に示すように、REST APIが有効なときにSave Successfulダイアログボックスが表示されます。

FMCでのユーザの作成
FMCでAPIインフラストラクチャを使用する際のベストプラクティスは、UIユーザとスクリプトユーザを分離することです。さまざまなユーザロールと新規ユーザの作成のガイドラインについては、『FMC用のユーザアカウントガイド』を参照してください。
認証トークンを要求する手順
ステップ 1:REST API Clientを開きます。
ステップ 2:POSTコマンドを実行するようにクライアント(URL:https://<management_center_IP_or_name>/api/fmc_platform/v1/auth/generatetoken)を設定します。
ステップ 3:基本認証ヘッダーとしてユーザ名とパスワードを含めます。POSTの本文は空白である必要があります。
たとえば、Pythonを使用した認証要求は次のようになります。
import requests
url = "https://10.10.10.1//api/fmc_platform/v1/auth/generatetoken"
payload = {}
headers = {
'Authorization': 'Basic Y2lzY291c2VyOmNpc2NwYXBpdXNlcg=='
}
response = requests.request("POST", url, headers=headers, data = payload, verify=False)
print(response.headers)
CURLを使用した認証要求のもう1つの例を次に示します。
$ curl --request POST 'https://10.10.10.1/api/fmc_platform/v1/auth/generatetoken' --header 'Authorization: Basic Y2lzY291c2VyOmNpc2NwYXBpdXNlcg==' -k -i
HTTP/1.1 204 204
Date: Tue, 11 Aug 2020 02:54:06 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-store
Accept-Ranges: bytes
Vary: Accept-Charset,Accept-Encoding,Accept-Language,Accept
X-auth-access-token: aa6f8326-0a0c-4f48-9d85-7a920c0fdca5
X-auth-refresh-token: 674e87d1-1572-4cd1-b86d-3abec04ca59d
USER_UUID: fc47b914-8121-11ea-ac18-f0428d0155cd
DOMAIN_ID: 111
DOMAIN_UUID: e276abec-e0f2-11e3-8169-6d9ed49b625f
global: e276abec-e0f2-11e3-8169-6d9ed49b625f
DOMAINS: [{"name":"Global","uuid":"e276abec-e0f2-11e3-8169-6d9ed49b625f"}]
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=edge
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
Referrer-Policy: same-origin
Content-Security-Policy: base-uri 'self'
X-Content-Type-Options: nosniff
図に示すように、PostmanなどのGUIベースのクライアントの例:

後続のAPI要求の送信
注:出力に表示されるのは応答ヘッダーであり、応答の本文ではありません。実際の応答の本文が空白です。 抽出する必要がある重要なヘッダー情報は、X-auth-access-token、X-auth-refresh-token、およびDOMAIN_UUIDです。
FMCへの認証に成功し、トークンを抽出したら、以降のAPI要求に対して次の情報を活用する必要があります。
- 要求の一部として、ヘッダーのX-auth-access-token <authentication token value>を追加します。
- トークンを更新する要求に、ヘッダーX-auth-access-token <authentication token value>およびX-auth-refresh-token <refresh token value>を追加します。
- サーバに対するすべてのREST要求で、認証トークンのDomain_UUIDを使用します。
このヘッダー情報を使用すると、REST APIを使用してFMCと正常に対話できます。
一般的な問題のトラブルシューティング
- 認証のために送信されるPOSTの要求と応答の本文が空白です。要求ヘッダーの基本認証パラメータを渡す必要があります。すべてのトークン情報は、応答ヘッダーを介して返されます。
- RESTクライアントを使用すると、自己署名証明書が原因のSSL証明書の問題に関連するエラーが表示される場合があります。使用しているクライアントに応じて、この検証を無効にすることができます。
- ユーザクレデンシャルは、REST APIインターフェイスとGUIインターフェイスの両方に同時に使用することはできません。両方に使用した場合、ユーザは警告なしでログアウトされます。
- FMC REST API認証トークンの有効期間は30分で、最大3回の更新が可能です。