소개
이 문서에서는 Open API를 사용하여 Cisco Identity Service Engine 3.3 pxGrid Context-in을 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco ISE(Identity Service Engine) 3.3
- 고급 REST API
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco ISE 3.3
- Insomnia REST API 클라이언트
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
REST API를 통한 pxGrid Context-In 솔루션 이는 Context-In pubsub 모델이 프로파일링 및 권한 부여 정책에서 사용자 지정 특성을 사용하는 것과 관련하여 몇 가지 제한 사항이 있기 때문입니다.
사용자 지정 특성은 일반 네트워크 프로브를 통해 엔드포인트 데이터로 제공되지 않는 사용자 정의 특성입니다. ISE 3.3 이전에는 주로 두 가지 방법으로 사용자 지정 특성 값을 엔드포인트 데이터로 입력할 수 있었습니다.
- pxGrid Context-In 자산 항목에서 ISE는 소비자 역할을 하며 외부 서드파티 제품에 의해 게시된 엔드포인트 데이터를 사용합니다.
- 엔드포인트 ERS(Extensible RESTful Services) 생성/업데이트 API.
두 채널 모두 프로파일링 및 권한 부여 정책에서 사용자 지정 특성을 사용하는 데 제한이 있습니다.
초기 단계
ISE에서 Open API 활성화
Open API는 ISE에서 기본적으로 비활성화되어 있습니다. 활성화하려면 Administration > System > API Settings > API Service Settings
. Open API 옵션을 전환하고 Save를 클릭합니다.
Open API 활성화
ISE에서 프로파일링 시행을 위한 사용자 지정 특성 활성화
프로파일링 시행을 위한 사용자 지정 특성은 ISE에서 기본적으로 비활성화되어 있습니다. 활성화하려면 Work Centers > Profiler > Settings > Profiler Settings
. 프로파일링 시행을 위한 사용자 지정 특성을 활성화합니다. 저장을 클릭합니다.
프로파일링 시행을 위한 사용자 지정 특성 활성화
참고: 프로파일링 적용 플래그의 Custom Attribute(사용자 지정 특성)는 사용자 지정 특성이 수정될 경우 자동 다시 프로파일링 작업이 수행됨을 나타냅니다.
스웨거 UI
ISE의 모든 Open 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=엔드포인트
스웨거 UI
개방형 API를 사용하여 엔드포인트 맞춤형 특성 구성
엔드포인트 사용자 지정 특성 생성
엔드포인트 사용자 지정 특성을 생성하려면 이름과 유형을 지정해야 합니다.
사용할 수 있는 유형은 다음과 같습니다.
방법 |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
인증 유형 |
기본 |
자격 증명 |
Open API 계정 자격 증명 사용 |
헤더 |
수락:application/json Content-Type:application/json |
본문 |
{ "attributeName": "DeviceType", "attributeType": "String" } |
본문:
본문 끝점 사용자 지정 특성
인증:
인증 엔드포인트 사용자 지정 특성
헤더:
헤더 엔드포인트 사용자 지정 특성
예상 출력:
출력 끝점 사용자 지정 특성이 필요합니다.
사용자 지정 특성 생성 확인
ISE에서 Administration > Identity Management > Settings > Endpoint Custom Attributes
. 특성이 생성되었는지 확인합니다.
엔드포인트 사용자 지정 특성 GUI
참고: 엔드포인트 맞춤형 특성은 수동으로 추가할 수 있습니다. ISE에서 Administration > Identity Management > Settings > Endpoint Custom Attributes
. +를 누른 다음 속성 이름을 입력하고 유형을 선택합니다.
단일 엔드포인트용 Context-In API
사용자 지정 특성에 대한 프로파일링 정책
ISE에서 Work Centers > Profiler > Profiling Policies
. 클릭 Add
.
입력 사항 Name
프로파일링 정책.
아래 Rules
, 다음으로 이동 Attributes > Create New Condition > CUSTOMATTRIBUTE
. 생성된 사용자 지정 특성을 선택하고 Operator를 선택한 다음 매칭할 값을 입력합니다. Submit(제출)을 클릭합니다.
이 예에서는 DeviceTypeA 프로파일링 정책이 CUSTOMATTRIBUTE_DeviceType으로 정의됩니다.
프로파일러 정책
엔드포인트 생성
이 예에서는 mac 주소가 있는 엔드포인트입니다 94:DA:5F:96:74:63
DeviceType이 A로 설정된 경우
방법 |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint |
인증 유형 |
기본 |
자격 증명 |
Open API 계정 자격 증명 사용 |
헤더 |
수락:application/json Content-Type: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(엔드포인트 프로파일) 열에서 생성한 프로파일링 정책의 이름으로 필터링합니다.
컨텍스트 가시성 디바이스 유형A
엔드포인트 업데이트
Open API를 통해 엔드포인트를 업데이트하려면 URL 경로에 매개변수 값이 필요합니다. 이 매개변수는 엔드포인트의 ID 또는 MAC 주소일 수 있습니다.
이 예에서는 새 프로파일링 정책이 DeviceTypeB
은(는) B로 설정된 사용자 지정 특성 DeviceType을 업데이트하기 위해 정의되었으며, 값은 MAC 주소로 설정됩니다.
방법 |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
인증 유형 |
기본 |
자격 증명 |
Open API 계정 자격 증명 사용 |
헤더 |
수락:application/json Content-Type: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
Context-In API 대량
엔드포인트 ID 그룹을 사용한 권한 부여 정책 컨피그레이션
ISE에서 Policy > Policy Sets > Select a Policy Set > Authorization Policy
. Authorization Policies(권한 부여 정책)에서 톱니바퀴 아이콘을 클릭하고 Insert(삽입)를 선택합니다.
Condition Studio를 열려면 규칙의 이름을 지정하고 새 조건을 추가합니다.
새 속성을 추가하고 다음으로 이동 Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
.
조건의 결과로 프로파일을 선택합니다. 클릭 저장.
이 예에서 DeviceTypeA는 규칙의 이름입니다.
정책 집합
대량 엔드포인트 업데이트
다른 엔드포인트의 특성을 변경하려면 대량 API 호출이 필요합니다.
이 예에서는 다른 엔드포인트의 Radius 요청에 사용자 지정 특성이 없으며 엔드포인트 프로파일이 Unknown으로 설정됩니다.
컨텍스트 가시성 알 수 없는 프로파일
방법 |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
인증 유형 |
기본 |
자격 증명 |
Open API 계정 자격 증명 사용 |
헤더 |
수락:application/json Content-Type: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를 사용하려면 엔드포인트를 다시 인증해야 합니다.
컨텍스트 가시성 장치 유형 권한 부여 정책
문제 해결
이 섹션에서는 컨피그레이션의 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
ISE에서 Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
. PAN(Primary Admin Node)을 선택하고 Edit(편집)를 클릭합니다.
API 서비스별 구성 요소 이름을 필터링하고 필요한 로그 레벨을 선택합니다. 저장을 클릭합니다.
디버그 레벨 컨피그레이션 오픈 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(정상): Open API가 원하는 작업을 성공적으로 수행했음을 나타냅니다.
- 201(작성됨): 리소스가 작성되었고 요청이 성공했음을 나타냅니다.
- 400(잘못된 요청): 서버에서 요청을 처리할 수 없습니다. 잘못된 요청 구문, 잘못된 매개 변수 등으로 인한 클라이언트 오류를 인식합니다. 가능한 경우 메시지 세부사항을 읽습니다.
- 401(인증되지 않음): 잘못된 자격 증명으로 작업을 시작했거나 자격 증명이 없거나 계정에 이 작업을 수행할 권한이 없음을 나타냅니다.
- 403(사용 권한 없음): 서버가 요청을 이해할 수 있지만 권한이 없음을 나타냅니다.
- 404(찾을 수 없음): 서버가 요청된 리소스를 찾을 수 없음을 나타냅니다.
- 500(내부 서버 오류): 서버 측의 문제를 나타냅니다. ISE에 로그온하면 원인을 파악하는 데 도움이 됩니다.