はじめに
このドキュメントでは、openAPIを使用してCisco Identity Services Engine(ISE)の導入を管理する手順について説明します。
背景
今日の企業ネットワークでは、セキュリティと管理がますます複雑になり、重要性が増しています。これらの課題に対処するため、Cisco ISE 3.1以降では、堅牢なネットワークアクセス制御とポリシー管理機能を提供する新しいAPIがOpenAPI形式で使用できます。管理者は、OpenAPIを使用してISE導入をより効率的に確認し、エンドユーザからの問題レポートを待たずに予防的にアクションを実行できるようになりました。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Identity Services Engine(ISE)
- REST API
- Python
使用するコンポーネント
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
ネットワーク図
トポロジ
ISEでの設定
ステップ1:Open API adminアカウントを追加します。
API管理者を追加するには、Administration > System > Admin Access > Administrators > Admin Users > Addの順に移動します。
API管理者
ステップ2:ISEでOpen APIを有効にする
ISEでは、オープンAPIはデフォルトで無効になっています。これを有効にするには、Administration > System > Settings > API Settings > API Service Settingsの順に移動します。Open APIオプションを切り替えます。[Save] をクリックします。
OpenAPIの有効化
ステップ3:ISEオープンAPIを調べる
Administration > System > Settings > API Settings > Overviewの順に移動します。「APIを開く」をクリックします。
OpenAPIにアクセス
Pythonの例
クラスタに展開されているすべてのノードのリストを取得します
APIには、クラスタ内に展開されているすべてのノードが一覧表示されます。
ステップ1:APIコールに必要な情報。
手順2:展開情報の取得に使用するURLを見つけます。
API URI(API URI)
ステップ3:ここはPythonコードの例です。コンテンツをコピーして貼り付けます。ISEのIP、ユーザ名、パスワードを置き換えます。実行するPythonファイルとして保存します。
ISEとPythonコード例を実行しているデバイスの間の接続が良好であることを確認します。
from requests.auth import HTTPBasicAuth
import requests
requests.packages.urllib3.disable_warnings()
if __name__ == "__main__":
url = "https://10.106.33.92/api/v1/deployment/node"
headers = {"Accept": "application/json", "Content-Type": "application/json"}
basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")
response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)
print("Return Code:")
print(response.status_code)
print("Expected Outputs:")
print(response.json())
次に、予想される出力の例を示します。
Return Code:
200
Expected Outputs:
{'response': [{'hostname': 'ISE-BGL-CFME01-PAN', 'fqdn': 'ISE-BGL-CFME01-PAN.cisco.com', 'ipAddress': '192.168.20.240', 'roles': ['PrimaryAdmin'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-BGL-CFME02-MNT', 'fqdn': 'ISE-BGL-CFME02-MNT.cisco.com', 'ipAddress': '192.168.21.240', 'roles': ['PrimaryMonitoring'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-DLC-CFME01-PSN', 'fqdn': 'ISE-DLC-CFME01-PSN.cisco.com', 'ipAddress': '192.168.40.240', 'roles': [], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-DLC-CFME02-PSN', 'fqdn': 'ISE-DLC-CFME02-PSN.cisco.com', 'ipAddress': '192.168.41.240', 'roles': [], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-RTP-CFME01-PAN', 'fqdn': 'ISE-RTP-CFME01-PAN.cisco.com', 'ipAddress': '192.168.10.240', 'roles': ['SecondaryAdmin'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-RTP-CFME02-MNT', 'fqdn': 'ISE-RTP-CFME02-MNT.cisco.com', 'ipAddress': '192.168.11.240', 'roles': ['SecondaryMonitoring'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}], 'version': '1.0.0'}
デプロイ済ノードの詳細の取得
このAPIは、特定のISEノードの詳細情報を取得します。
ステップ1:APIコールに必要な情報。
メソッド |
GET |
URL |
https://<ISE-PAN-IP>/api/v1/deployment/node/<ISE-Node-Hostname> |
Credentials |
Open APIアカウントの資格情報を使用する |
ヘッダー |
受け入れ:application/json
Content-Type:application/json
|
ステップ2:特定のISEノード情報を取得するために使用されるURLを見つけます。
API URI(API URI)
ステップ 3:次に、Pythonコードの例を示します。コンテンツをコピーして貼り付けます。ISEのIP、ユーザ名、パスワードを置き換えます。実行するPythonファイルとして保存します。
ISEとPythonコード例を実行しているデバイスの間の接続が良好であることを確認します。
from requests.auth import HTTPBasicAuth
import requests
requests.packages.urllib3.disable_warnings()
if __name__ == "__main__":
url = "https://10.106.33.92/api/v1/deployment/node/ISE-DLC-CFME02-PSN"
headers = {"Accept": "application/json", "Content-Type": "application/json"}
basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")
response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)
print("Return Code:")
print(response.status_code)
print("Expected Outputs:")
print(response.json())
次に、予想される出力の例を示します。
Return Code:
200
Expected Outputs:
{'response': {'hostname': 'ISE-DLC-CFME02-PSN', 'fqdn': 'ISE-DLC-CFME02-PSN.cisco.com', 'ipAddress': '192.168.41.240', 'roles': [], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, 'version': '1.0.0'}
トラブルシュート
オープンAPIに関連する問題をトラブルシューティングするには、デバッグログ設定ウィンドウでtheapiservicecomponentのログレベルをDEBUGに設定します。
デバッグを有効にするには、Operations > Troubleshoot > Debug Wizard > Debug Log Configuration > ISE Node > apiserviceの順に移動します。
APIサービスのデバッグ
デバッグログをダウンロードするには、Operations > Troubleshoot > Download Logs > ISE PAN Node > Debug Logsの順に移動します。
デバッグログのダウンロード