概要
このドキュメントでは、Open APIを使用してCisco Identity Service Engine(ISE)3.3 pxGridコンテキストインを設定する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Identity Service Engine(ISE)3.3
- 高度なREST API
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cisco ISE 3.3
- 不眠症REST APIクライアント
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
REST APIを使用したpxGrid Context-Inソリューションこれは、Context-In pubsubモデルには、プロファイリングおよび認可ポリシーでのカスタム属性の使用に関して、いくつかの制限があるためです。
カスタム属性は、通常のネットワークプローブではエンドポイントデータとして取り込まれないユーザ定義属性です。ISE 3.3より前のバージョンでは、カスタム属性値をエンドポイントデータとして入力する方法は主に2つありました。
- pxGrid Context-Inアセットトピック。このトピックでは、ISEがコンシューマとして機能し、外部サードパーティ製品によって公開されたエンドポイントデータを使用します。
- エンドポイントのExtensible RESTful Services(ERS)Create/Update API。
どちらのチャネルにも、プロファイリングおよび許可ポリシーでカスタム属性を使用する際の制限があります。
最初のステップ
ISEでのOpen APIの有効化
Open APIは、ISEではデフォルトで無効になっています。有効にするには、次の場所に移動します。 Administration > System > API Settings > API Service Settings
を参照。Open APIオプションを切り替えて、Saveをクリックします。
オープンAPIの有効化
ISEでのプロファイリング適用のためのカスタム属性の有効化
ISEでは、プロファイル適用のカスタム属性はデフォルトで無効になっています。有効にするには、次の場所に移動します。 Work Centers > Profiler > Settings > Profiler Settings
を参照。プロファイル適用のカスタム属性を有効にします。[Save] をクリックします。
プロファイル適用のためのカスタム属性の有効化
注:プロファイル適用のカスタム属性フラグは、カスタム属性が変更されると自動的に再プロファイルアクションが実行されることを示します。
Swagger UI
ISE上のすべてのオープンAPI定義にアクセスするには、 Administration > System > Settings > API Settings
「ISE Open APIの詳細については、次のサイトを参照してください。」をクリックします。
このドキュメントで使用する定義のURLは次のとおりです。
- カスタム属性:https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=CustomAttributes
- エンドポイント:https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=Endpoints
Swagger UI
Open APIを使用したエンドポイントのカスタム属性の設定
エンドポイントカスタム属性の作成
エンドポイントのカスタム属性を作成するには、名前とタイプを指定する必要があります。
使用できるタイプは次のとおりです。
- String
- Int
- ブール
- フロート
- Long
- IP
- 日付
メソッド |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
認証タイプ |
基本 |
Credentials |
Open APIアカウントの資格情報を使用する |
ヘッダー |
許可:application/json コンテンツタイプ:application/json |
本文 |
{ "attributeName": "DeviceType", "attributeType": "String" } |
本文:
ボディエンドポイントのカスタム属性
認証:
認証エンドポイントカスタム属性
ヘッダー:
ヘッダーエンドポイントカスタム属性
予想される出力:
出力エンドポイントカスタム属性が必要です
カスタム属性の作成の確認
ISEから、 Administration > Identity Management > Settings > Endpoint Custom Attributes
を参照。属性が作成されたことを確認します。
エンドポイントカスタム属性GUI
注:エンドポイントのカスタム属性は手動で追加できます。ISEから、 Administration > Identity Management > Settings > Endpoint Custom Attributes
を参照。+をクリックして、属性名を入力し、タイプを選択します。
シングルエンドポイント用のコンテキストインAPI
カスタム属性のプロファイルポリシー
ISEから、 Work Centers > Profiler > Profiling Policies
を参照。 クリック Add
を参照。
Name
プロファイルポリシーの一部です。
通常の Rules
を選択し、 Attributes > Create New Condition > CUSTOMATTRIBUTE
を参照。作成したカスタム属性を選択し、「演算子」を選択して、照合する値を入力します。[Submit] をクリックします。
この例では、DeviceTypeAプロファイリングポリシーはCUSTOMATTRIBUTE_DeviceTypeで定義されています。
プロファイラポリシー
エンドポイントの作成
この例では、MACアドレス 94:DA:5F:96:74:63
Aに設定されたDeviceTypeが作成されます。
メソッド |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/エンドポイント |
認証タイプ |
基本 |
Credentials |
Open APIアカウントの資格情報を使用する |
ヘッダー |
許可:application/json コンテンツタイプ:application/json |
本文 |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
本文:
ボディ端点
認証:
認証エンドポイント
ヘッダー:
ヘッダーエンドポイント
予想される出力:
予想される出力エンドポイント
エンドポイント作成の確認
ISEから、 Context Visibility > Endpoints
を参照。Endpoint Profile列に作成されたプロファイリングポリシーの名前でフィルタリングします。
コンテキストの可視性DeviceTypeA
エンドポイントの更新
Open APIを介してエンドポイントを更新するには、URLパスにパラメータ値が必要です。 このパラメータには、エンドポイントのIDまたはMACアドレスを指定できます。
この例では、新しいプロファイリングポリシーが DeviceTypeB
は、カスタム属性DeviceTypeをBに設定して更新するために定義され、値はMACアドレスとして設定されます。
メソッド |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
認証タイプ |
基本 |
Credentials |
Open APIアカウントの資格情報を使用する |
ヘッダー |
許可:application/json コンテンツタイプ:application/json |
本文 |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"B"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
本文:
ボディ更新エンドポイント
認証:
認証更新エンドポイント
ヘッダー:
ヘッダー更新エンドポイント
予想される出力:
予期された出力の更新エンドポイント
エンドポイントの更新の確認
ISEから、 Context Visibility > Endpoints
を参照。次の場所で作成されたプロファイリングポリシーの名前でフィルタ処理します。 Endpoint Profile
カラム.
コンテキストの可視性デバイスタイプB
コンテキストインAPIの一括
エンドポイントアイデンティティグループを使用した認可ポリシーの設定
ISEから、 Policy > Policy Sets > Select a Policy Set > Authorization Policy
を参照。 任意の許可ポリシーで歯車アイコンをクリックし、Insertを選択します。
ルールに名前を付け、条件スタジオを開くために新しい条件を追加します。
新しい属性を追加し、 Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
を参照。
条件の結果としてプロファイルを選択します。クリック 保存します。を参照。
この例では、DeviceTypeAがルールの名前です。
ポリシーセット
エンドポイントの一括更新
異なるエンドポイントの属性を変更するには、一括APIコールが必要です。
この例では、異なるエンドポイントからのRADIUS要求にカスタム属性がなく、Endpoint ProfileがUnknownに設定されています。
コンテキストの可視性の既知のプロファイル
メソッド |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
認証タイプ |
基本 |
Credentials |
Open APIアカウントの資格情報を使用する |
ヘッダー |
許可:application/json コンテンツタイプ:application/json |
本文 |
[ { "name": "94:DA:5F:96:74:61", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:61", "portalUser": "", "profileId": "", "ipAddress": "94:DA:5F:96:74:61", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false }, { "name": "94:DA:5F:96:74:62", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:62", "portalUser": "", "profileId": "", "ipAddress": "10.218.185.96", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false },....... ] |
本文:
ボディ端点の一括
認証:
認証エンドポイントの一括
ヘッダー:
ヘッダーエンドポイントの一括
予想される出力:
予想される出力エンドポイントの一括
エンドポイントの一括更新の確認
ISEから、 Context Visibility > Endpoints
を参照。Endpoint Profile列に作成されたプロファイリングポリシーの名前でフィルタリングします。
コンテキストの可視性デバイスタイプAエンドポイントプロファイル
エンドポイントで正しい許可ポリシーDeviceTypeAを使用するには、エンドポイントを再認証する必要があります。
Context Visibility DeviceTypeA許可ポリシー
トラブルシュート
このセクションでは、設定のトラブルシューティングに役立つ情報を提供します。
ISEから、 Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
を参照。 プライマリ管理ノード(PAN)を選択し、Editをクリックします。
Component Nameby APIサービスをフィルタリングし、必要なログレベルを選択します。Saveをクリックします。
デバッグレベル設定オープンAPI
- ISE PAN CLIでは、ログは次の場所にあります。
admin#show logging application api-service.log
- ISE GUIで、次の順に移動します。
Operations > Troubleshoot > Download Logs > Select ISE PAN > Debug log > Debug Log Type > Application Logs
を参照。のzipファイルをダウンロードします api-service.log
を参照。
- API応答コードとその意味:
- 200 (OK): Open APIが目的のアクションを正常に実行したことを示します。
- 201 (作成済み):リソースが作成され、要求が正常に完了したことを示します。
- 400 (無効な要求):サーバーは要求を処理できません。不正な要求構文や無効なパラメータなどが原因のクライアントエラーを認識します。メッセージの詳細があれば読みます。
- 401 (認証されていません):これは、アクションが間違ったクレデンシャルで実行されたか、クレデンシャルがないか、またはアカウントがこのアクションを実行する権限がないことを示します。
- 403(禁止):サーバが要求を理解する能力はあるが、許可されていないことを示します。
- 404 (見つかりません):サーバーが要求されたリソースを見つけられないことを示します。
- 500(内部サーバエラー):サーバ側の問題を示します。ISEのログは原因の理解に役立ちます。