内容

はじめに

背景

前提条件

要件

使用するコンポーネント

設定

ネットワーク図

ISEでの設定

Pythonの例

クラスタに導入されているすべてのノードのリストを取得します。

デプロイ済ノードの詳細の取得

トラブルシュート

はじめに

このドキュメントでは、openAPIを使用してCisco Identity Services Engine(ISE)の導入を管理する手順について説明します。

背景

現代のエンタープライズネットワークでは、セキュリティと管理がますます複雑で重要になっています。これらの課題に対処するため、Cisco ISE 3.1以降では、堅牢なネットワークアクセス制御およびポリシー管理機能を提供するOpenAPI形式の新しいAPIを使用できます。管理者は、OpenAPIを使用してISE導入をより効率的に確認し、エンドユーザからの問題レポートを待たずにプロアクティブにアクションを実行できるようになりました。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Cisco Identity Services Engine（ISE）

- REST API

- Python

使用するコンポーネント

- ISE 3.3

- Python 3.10.0

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

設定

ネットワーク図

トポロジ

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の順に移動します。Open API Visitリンクをクリックします。

OpenAPIにアクセス

Pythonの例

クラスタに導入されているすべてのノードのリストを取得します。

APIは、クラスタに導入されているすべてのノードを一覧表示します。

ステップ1:APIコールに必要な情報。

メソッド

GET

URL

https://<ISE-PAN-IP>/api/v1/deployment/node

Credentials

Open APIアカウントの資格情報を使用する

ヘッダー

Accept:application/json（アプリケーション/json）

コンテンツタイプ:application/json

ステップ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アカウントの資格情報を使用する

ヘッダー

Accept:application/json（アプリケーション/json）

コンテンツタイプ: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の順に移動します。

デバッグログのダウンロード