はじめに
このドキュメントでは、RESTクライアントとしてPostManを使用して、ERS API経由でISE上にネットワークアクセスデバイス(NAD)を作成するプロセスについて説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- ISE(Identity Services Engine)
- ERS(外部RESTfulサービス)
- RESTクライアントには、Postman、RESTED、Insomniaなどがあります。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアのバージョンに基づいています。
- Cisco ISE(Identity Services Engine)3.1パッチ6
- Postman RESTクライアントv10.17.4
注:手順は、他のISEバージョンとRESTクライアントで類似または同一です。これらの手順は、特に記載のない限り、すべての2.xおよび3.x ISEソフトウェアリリースで使用できます。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
設定
ERSの有効化(ポート9060)
ERS APIは、ポート443およびポート9060で動作するHTTPS専用のREST APIです。ポート9060はデフォルトで閉じられているため、最初に開く必要があります。 このポートにアクセスしようとしているクライアントが最初にERSをイネーブルにしていない場合、サーバからのタイムアウトが表示されます。したがって、最初の要件は、Cisco ISE管理UIからERSを有効にすることです。
Administration > Settings > API Settingsの順に移動し、ERS(読み取り/書き込み)トグルボタンを有効にします。
注:ERS APIはTLS 1.1とTLS 1.2をサポートしています。ERS APIは、Cisco ISE GUIのSecurity Settingsウィンドウ(Administration > System > Settings > Security Settings)でTLS 1.0を有効にしたかどうかに関係なく、TLS 1.0をサポートしません。[セキュリティの設定]ウィンドウでTLS 1.0を有効にすることは、EAPプロトコルのみに関連し、ERS APIには影響しません。
ERS管理者の作成
Cisco ISE管理者を作成し、パスワードを割り当て、ユーザをERS Adminとして管理グループに追加します。残りの設定は空のままにしておくことができます。
Postmanの設定
Postmanのオンライン版をダウンロードまたは使用します。
- ユーザを作成し、ワークスペースを作成します。これを行うには、「ワークスペース」タブにある「ワークスペースを作成」をクリックします。
2. 「ブランク・ワークスペース」を選択し、ワークスペースに名前を割り当てます。説明を追加して公開できます。 この例では、Personalisが選択されています。
ワークスペースを作成したら、APIコールを設定できます。
ISE SDKと基本的なポストマン認可
コールを設定するには、最初にISE ERS SDK(ソフトウェア開発者キット)にアクセスします。このツールは、ISEが実行できるAPIコールのリスト全体をコンパイルします。
- https://{ise-ip}/ers/sdkに移動します。
- ISE管理者クレデンシャルを使用してログインします。
- API Documentationを展開します。
- Network Deviceが表示されるまでスクロールダウンして、これをクリックします。
- このオプションでは、ISEのネットワークデバイスに対して実行できるすべての操作を検索できます。Createを選択します。
6. これで、任意のRestクライアント上でXMLまたはJSONを使用してAPIコールを実行するために必要な設定と、想定される応答例が表示されます。
7.Postmanに戻るISEへの基本認証を設定します。Authorization タブで、認証タイプとしてBasic Authを選択し、ISEで作成済みのISE ERSユーザクレデンシャルを追加します。
注:Postmanで変数が設定されていない限り、パスワードはクリアテキストで表示されます。
XMLを使用したNADの作成
XMLを使用して、RADIUS TACACS、SNMP、およびTrustSec設定でTESTNAD1を作成します。
1. SDKのCreateの下に、コールの実行に必要なヘッダーとテンプレート、および予期される応答が表示されます。
2. Headersタブに移動し、SDKに表示されるAPIコールに必要なヘッダーを設定します。ヘッダー設定は次のようになります。
3. Bodyヘッダーに移動し、rawを選択します。これにより、NADの作成に必要なXMLテンプレートを貼り付けることができます。
4. XMLテンプレートは次のようになります(必要に応じて値を変更します)。
<?xml version="1.0" encoding="UTF-8"?> <ns0:networkdevice xmlns:ns0="network.ers.ise.cisco.com" xmlns:xs="Schema XML File" xmlns:ns1="ers.ise.cisco.com" xmlns:ers="ers.ise.cisco.com" description="This NAD was added via ERS API" name="TESTNAD1"> <authenticationSettings> <dtlsRequired>true</dtlsRequired> <enableKeyWrap>true</enableKeyWrap> <keyEncryptionKey>1234567890123456</keyEncryptionKey> <keyInputFormat>ASCII</keyInputFormat> <messageAuthenticatorCodeKey>12345678901234567890</messageAuthenticatorCodeKey> <radiusSharedSecret>cisco123</radiusSharedSecret> </authenticationSettings> <coaPort>1700</coaPort> <dtlsDnsName>Domain</dtlsDnsName> <NetworkDeviceIPList> <NetworkDeviceIP> <ipaddress>NAD IP Address</ipaddress> <mask>32</mask> </NetworkDeviceIP> </NetworkDeviceIPList> <NetworkDeviceGroupList> <NetworkDeviceGroup>Location#All Locations#LAB</NetworkDeviceGroup> <NetworkDeviceGroup>Device Type#All Device Types#Access-Layer</NetworkDeviceGroup> </NetworkDeviceGroupList> <profileName>Cisco</profileName> <snmpsettings> <linkTrapQuery>true</linkTrapQuery> <macTrapQuery>true</macTrapQuery> <originatingPolicyServicesNode>Auto</originatingPolicyServicesNode> <pollingInterval>3600</pollingInterval> <roCommunity>aaa</roCommunity> <version>ONE</version> </snmpsettings> <tacacsSettings> <connectModeOptions>ON_LEGACY</connectModeOptions> <sharedSecret>cisco123</sharedSecret> </tacacsSettings> <trustsecsettings> <deviceAuthenticationSettings> <sgaDeviceId>TESTNAD1</sgaDeviceId> <sgaDevicePassword>cisco123</sgaDevicePassword> </deviceAuthenticationSettings> <deviceConfigurationDeployment> <enableModePassword>cisco123</enableModePassword> <execModePassword>cisco123</execModePassword> <execModeUsername>Admin</execModeUsername> <includeWhenDeployingSGTUpdates>true</includeWhenDeployingSGTUpdates> </deviceConfigurationDeployment> <pushIdSupport>false</pushIdSupport> <sgaNotificationAndUpdates> <coaSourceHost>ise3-1test</coaSourceHost> <downlaodEnvironmentDataEveryXSeconds>86400</downlaodEnvironmentDataEveryXSeconds> <downlaodPeerAuthorizationPolicyEveryXSeconds>86400</downlaodPeerAuthorizationPolicyEveryXSeconds> <downloadSGACLListsEveryXSeconds>86400</downloadSGACLListsEveryXSeconds> <otherSGADevicesToTrustThisDevice>false</otherSGADevicesToTrustThisDevice> <reAuthenticationEveryXSeconds>86400</reAuthenticationEveryXSeconds> <sendConfigurationToDevice>false</sendConfigurationToDevice> <sendConfigurationToDeviceUsing>ENABLE_USING_COA</sendConfigurationToDeviceUsing> </sgaNotificationAndUpdates> </trustsecsettings> </ns0:networkdevice>
注:次の行は、<enableKeyWrap>{false|true}</enableKeyWrap>がtrueに設定されている場合にのみ必要であることに注意してください。それ以外の場合は、XMLテンプレートから同じものを削除できます。
<keyEncryptionKey>1234567890123456</keyEncryptionKey> <keyInputFormat>ASCII</keyInputFormat> <messageAuthenticatorCodeKey>12345678901234567890</messageAuthenticatorCodeKey>
不要な設定をテンプレートから削除し、NADの作成中に実際に追加する必要があるデータを残すことができます。例として、同じテンプレートがTACACS設定だけに含まれている場合を示します。必要な構成に関係なく、テンプレートの末尾が</ns0:networkdevice>であることを確認してください。
<?xml version="1.0" encoding="UTF-8"?> <ns0:networkdevice xmlns:ns0="network.ers.ise.cisco.com" xmlns:xs="Schema XML File" xmlns:ns1="ers.ise.cisco.com" xmlns:ers="ers.ise.cisco.com" description="This NAD was added via ERS API" name="TESTNAD1"> <NetworkDeviceIPList> <NetworkDeviceIP> <ipaddress>NAD IP Address</ipaddress> <mask>32</mask> </NetworkDeviceIP> </NetworkDeviceIPList> <NetworkDeviceGroupList> <NetworkDeviceGroup>Location#All Locations#LAB</NetworkDeviceGroup> <NetworkDeviceGroup>Device Type#All Device Types#Access-Layer</NetworkDeviceGroup> </NetworkDeviceGroupList> <profileName>Cisco</profileName> <tacacsSettings> <connectModeOptions>ON_LEGACY</connectModeOptions> <sharedSecret>cisco123</sharedSecret> </tacacsSettings> </ns0:networkdevice>
5. rawのXMLテンプレートをBodyヘッダーの下に貼り付けます。
6. 方法としてPOSTを選択し、https://{ISE-ip}/ers/config/networkdeviceをペーストして、Sendをクリックします。 すべてが正しく設定されていれば、「201 Created」というメッセージが表示され、結果は空白になります。
7. NADのGETコールを実行するか、ISE NADリストを確認して、NADが作成されているかどうかを確認します。
JSONを使用したNADの作成
JSONを使用して、RADIUS TACACS、SNMP、およびTrustSec設定でTESTNAD2を作成します。
1. SDKのCreateの下に、コールの実行に必要なヘッダーとテンプレート、および予期される応答が表示されます。
2. Headersタブに移動し、SDKに表示されるAPIコールに必要なヘッダーを設定します。ヘッダー設定は次のようになります。
3. Bodyヘッダーに移動し、rawを選択します。これにより、NADの作成に必要なJSONテンプレートを貼り付けることができます。
4. JSONテンプレートは次のようになります(必要に応じて値を変更します)。
{ "NetworkDevice": { "name": "TESTNAD2", "description": "This NAD was added via ERS API", "authenticationSettings": { "radiusSharedSecret": "cisco123", "enableKeyWrap": true, "dtlsRequired": true, "keyEncryptionKey": "1234567890123456", "messageAuthenticatorCodeKey": "12345678901234567890", "keyInputFormat": "ASCII" }, "snmpsettings": { "version": "ONE", "roCommunity": "aaa", "pollingInterval": 3600, "linkTrapQuery": true, "macTrapQuery": true, "originatingPolicyServicesNode": "Auto" }, "trustsecsettings": { "deviceAuthenticationSettings": { "sgaDeviceId": "TESTNAD2", "sgaDevicePassword": "cisco123" }, "sgaNotificationAndUpdates": { "downlaodEnvironmentDataEveryXSeconds": 86400, "downlaodPeerAuthorizationPolicyEveryXSeconds": 86400, "reAuthenticationEveryXSeconds": 86400, "downloadSGACLListsEveryXSeconds": 86400, "otherSGADevicesToTrustThisDevice": false, "sendConfigurationToDevice": false, "sendConfigurationToDeviceUsing": "ENABLE_USING_COA", "coaSourceHost": "ise3-1test" }, "deviceConfigurationDeployment": { "includeWhenDeployingSGTUpdates": true, "enableModePassword": "cisco123", "execModePassword": "cisco123", "execModeUsername": "Admin" }, "pushIdSupport": "false" }, "tacacsSettings": { "sharedSecret": "cisco123", "connectModeOptions": "ON_LEGACY" }, "profileName": "Cisco", "coaPort": 1700, "dtlsDnsName": "Domain", "NetworkDeviceIPList": [ { "ipaddress": "NAD IP Adress", "mask": 32 } ], "NetworkDeviceGroupList": [ "Location#All Locations", "Device Type#All Device Types" ] } }
注:次の行が必要になるのは、enableKeyWrap":{false|true}がtrueに設定されている場合だけであることに注意してください。それ以外の場合は、JSONテンプレートから同じものを削除できます。
"keyEncryptionKey": "1234567890123456", "messageAuthenticatorCodeKey": "12345678901234567890", "keyInputFormat": "ASCII" また、不要な設定をテンプレートから削除し、NADの作成中に実際に追加する必要があるデータを残すこともできます。
5. rawのJSONテンプレートをBodyヘッダーの下に貼り付けます。
6. 方法としてPOSTを選択し、https://{ISE-ip}/ers/config/networkdeviceをペーストして、Sendをクリックします。 すべてが正しく設定されていれば、201 Createdメッセージが表示され、結果が空になります。
7. NADのGETコールを実行するか、ISE NADリストを確認して、NADが作成されているかどうかを確認します。
確認
https://{iseip}:{port}/api/swagger-ui/index.htmlやhttps://{iseip}:9060/ers/sdkなどのAPIサービスのGUIページにアクセスできる場合は、APIサービスが期待どおりに動作していることを意味します。
トラブルシュート
- すべてのREST操作が監査され、ログがシステムログに記録されます。
- Open APIに関連する問題をトラブルシューティングするには、Debug Log ConfigurationウィンドウでapiserviceコンポーネントのログレベルをDEBUGに設定します。
- ERS APIに関する問題をトラブルシューティングするには、Debug Log ConfigurationウィンドウでersコンポーネントのLog LevelをDEBUGに設定します。このウィンドウを表示するには、Cisco ISE GUIに移動し、メニューアイコンをクリックして、Operations > Troubleshoot > Debug Wizard > Debug Log Configurationの順に選択します。
- ログは、Download Logsウィンドウからダウンロードできます。このウィンドウを表示するには、Cisco ISE GUIに移動し、メニューアイコンをクリックして、Operations > Troubleshoot > Download Logsの順に選択します。
- Support Bundleタブの下のDownloadボタンをクリックして、このタブからサポートバンドルをダウンロードするか、api-serviceデバッグログのLog Fileの値をクリックして、このapi-serviceデバッグログをDebug Logsタブからダウンロードするかを選択できます。