Cisco Identity Services Engine API Reference Guide, Release 1.3 November 12, 2014 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: OL-26134-01 THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. CCDE, CCVP, Cisco Eos, Cisco StadiumVision, the Cisco logo, DCE, and Welcome to the Human Network are trademarks; Changing the Way We Work, Live, Play, and Learn is a service mark; and Access Registrar, Aironet, AsyncOS, Bringing the Meeting To You, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, CCSP, Cisco, the Cisco Certified Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Collaboration Without Limitation, Enterprise/Solver, EtherChannel, EtherFast, EtherSwitch, Event Center, Fast Step, Follow Me Browsing, FormShare, GigaDrive, HomeLink, Internet Quotient, IOS, iPhone, IP/TV, iQ Expertise, the iQ logo, iQ Net Readiness Scorecard, iQuick Study, IronPort, the IronPort logo, LightStream, Linksys, MediaTone, MeetingPlace, MGX, Networkers, Networking Academy, Network Registrar, PCNow, PIX, PowerPanels, ProConnect, ScriptShare, SenderBase, SMARTnet, Spectrum Expert, StackWise, The Fastest Way to Increase Your Internet Quotient, TransPath, WebEx, and the WebEx logo are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries. All other trademarks mentioned in this document or Website are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (0801R) Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental. Cisco Identity Services Engine API Reference Guide, Release 1.3 © 2014 Cisco Systems, Inc. All rights reserved. CONTENTS Preface vii Overview of Cisco Identity Services Engine Purpose Audience vii viii viii Document Organization ix Document Conventions ix Documentation Updates Product Documentation x x Related Documentation x Release-Specific Documentation x Platform-Specific Documentation iii-xi Obtaining Documentation and Submitting a Service Request xi Cisco ISE Monitoring REST APIs Introduction to the Monitoring REST API Verifying a Monitoring Node 1-1 1-2 Supported API Calls 1-2 HTTP PUT API Calls 1-8 Session Management Query APIs 2-1 Session Counter API Calls 2-1 Active Sessions Counter 2-1 ActiveCount API Output Schema 2-1 Invoking the ActiveCount API Call 2-2 Sample Data Returned from the ActiveCount API Call 2-2 Posture Sessions Counter 2-2 PostureCount API Output Schema 2-2 Invoking the PostureCount API Call 2-3 Sample Data Returned from the PostureCount API Call 2-3 Profiler Sessions Counter 2-3 ProfilerCount API Output Schema 2-4 Invoking the ProfilerCount API Call 2-4 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 iii Contents Sample Data Returned from the ProfilerCount API Call 2-4 Simple Session List API Calls 2-5 Active Sessions List 2-5 ActiveList API Output Schema 2-5 Invoking the ActiveList API Call 2-6 Sample Data Returned from the ActiveList API Call 2-6 Authenticated Sessions List 2-7 AuthList API Output Schema 2-7 Invoking the AuthList API Call 2-8 Sample Data Returned from the AuthList API Call with the null/null Option 2-8 Sample Data Returned from the AuthList API Call with the endtime/null Option 2-9 Sample Data Returned from the AuthList API Call with the null/starttime Option 2-9 Sample Data Returned from the AuthList API Call with the statttime/endtime Option 2-10 Detailed Session Attribute API Calls 2-11 MAC Address Session Search 2-11 MACAddress API Output Schema 2-11 Invoking the MACAddress API Call 2-13 Sample Data Returned from the MACAddress API Call 2-13 User Name Session Search 2-15 UserName API Output Schema 2-15 Invoking the UserName API Call 2-17 Sample Data Returned from the UserName API Call 2-17 NAS IP Address Session Search 2-19 IPAddress API Output Schema 2-19 Invoking the NAS IPAddress API Call 2-21 Sample Data Returned from the IPAddress API Call 2-21 Stale Sessions 2-23 Removing Stale Sessions Query APIs for Troubleshooting Cisco Prime NCS API Calls 2-23 3-1 3-1 Troubleshooting Cisco ISE using the Query API Calls 3-1 Node Version and Type API Call 3-1 Version API Output Schema 3-2 Invoking the Version API Call 3-2 Sample Data Returned from the Version API Call 3-2 Failure Reasons API Call 3-3 FailureReasons API Output Schema 3-3 Invoking the FailureReasons API Call 3-4 Sample Data Returned from the FailureReasons API Call 3-4 Cisco Identity Services Engine API Reference Guide, Release 1.2 iv OL-26134-01 Contents Authentication Status API Call 3-6 AuthStatus API Output Schema 3-8 Invoking the AuthStatus API Call 3-10 Sample Data Returned from the AuthStatus API Call Account Status API Call 3-12 AcctStatus API Output Schema 3-12 Invoking the AcctStatus API Call 3-13 Sample Data Returned from the AcctStatus API Call Change of Authorization REST APIs Introduction 3-10 3-13 4-1 4-1 CoA Session Management API Calls 4-1 Session Reauthentication API Call 4-1 Reauth API Output Schema 4-2 Invoking the Reauth API Call 4-2 Sample Data Returned from the Reauth API Call 4-3 Session Disconnect API Call 4-3 Disconnect API Output Schema 4-3 Invoking the Disconnect API Call 4-3 Sample Data Returned from the Disconnect API Call 4-4 Cisco ISE External RESTful Services APIs Introduction to ERS APIs Overview 5-1 5-1 External RESTful Services API Authentication and Authorization Enabling External RESTful Services APIs from the GUI External RESTful Services API Status Data Validation Namespaces 5-1 5-2 5-2 5-3 5-3 External RESTful Services SDK 5-4 External RESTful Services Schema File 5-5 Downloading the Schema File 5-6 External RESTful Service Requests and Responses 5-6 External RESTful Service Requests Headers 5-6 External RESTful Service Response Headers 5-7 Common External RESTful Service HTTP Status Codes Version Control with External RESTful Services APIs Searching and Filtering 5-7 5-8 5-9 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 v Contents Filtering Parameters for External RESTful Services APIs 5-9 Paging Parameters for External RESTful Services APIs 5-10 External RESTful Services System Flow 5-10 Hyperlinks 5-12 Example of links within a search result Bulk Operations Guest REST API 5-13 5-13 6-1 An API for Guest User Resources 6-1 Sponsor Authentication and Authorization 6-1 Guest REST API Requests 6-2 Request Structure 6-3 Request Contents 6-4 Bulk Executions 6-4 Guest REST API Responses 6-5 Response Status Codes 6-5 Response Structure 6-6 Guest Passwords 6-6 Response Error Messages 6-6 Unsupported Media Type Example Versioning 6-8 6-7 Searching and Filtering 6-8 Filtering Parameters 6-9 Filtering Examples 6-10 Page Size Parameters 6-10 Sorting Parameters 6-10 Example: GET First 20 Guest User Records and Sort ascending by the Last Name External RESTful Services API Operations Overview 6-11 7-1 7-1 Prerequisites for Using the External RESTful Services API Calls 7-1 GetVersion 7-2 Sample Request for GetVersion Operation 7-2 Sample Response for GetVersion Operation 7-2 External RESTful Services APIs for Internal Users 7-2 Retrieve All Internal Users 7-3 Sample Request for Retrieve All Internal Users API 7-3 Sample Response for Retrieve All Internal Users API 7-3 Get Internal Users by ID 7-4 Cisco Identity Services Engine API Reference Guide, Release 1.2 vi OL-26134-01 Contents Sample Request for Read Internal Users API 7-4 Sample Response for Read Internal Users API 7-4 Create Internal Users 7-5 Sample Request for Create Internal Users API 7-5 Sample Response for Create Internal Users API 7-6 Update Internal Users 7-6 Sample Request for Update Internal Users API 7-6 Sample Response for Update Internal Users API 7-7 Delete Internal Users 7-7 Sample Request for Delete Internal Users API 7-7 Sample Response for Delete Internal Users API 7-7 External RESTful Services APIs for Endpoints 7-8 Get All Endpoints 7-8 Sample Request for Get All Endpoints API 7-8 Sample Response for Get All Endpoints API 7-9 Get Endpoints by ID 7-9 Sample Request for Read Endpoints API 7-9 Sample Response for Read Endpoints API 7-9 Create Endpoints 7-10 Sample Request for Create Endpoints API 7-10 Sample Response for Create Endpoints API 7-11 Update Endpoints 7-11 Sample Request for Update Endpoints API 7-11 Sample Response for Update Endpoints API 7-11 Delete Endpoints 7-12 Sample Request for Delete Endpoints API 7-12 Sample Response for Delete Endpoints API 7-12 Register Endpoints 7-12 Sample Request for Register Endpoints API 7-13 Sample Response for Register Endpoints API 7-13 Deregister Endpoints 7-13 Sample Request for Deregister Endpoint API Call 7-14 Sample Response for Deregister Endpoint API Call 7-14 Start Bulk Execution for Endpoints 7-14 Sample Request for Start Bulk Execution for Endpoints API Call 7-14 Sample Response for Start Bulk Execution for Endpoints API Call 7-15 Get Bulk Status for Endpoints 7-15 Get Bulk Status for Endpoints Example 7-16 External RESTful APIs for Endpoint Identity Groups Get All Endpoint Identity Groups 7-17 7-16 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 vii Contents Sample Request for Get All Endpoint Identity Groups API Call 7-17 Sample Response for Get All Endpoint Identity Groups API Call 7-17 Get Endpoint Identity Groups by ID 7-18 Sample Request for Read Endpoint Identity Groups API Call 7-18 Sample Response for Read Endpoint Identity Groups API Call 7-18 Create Endpoint Identity Groups 7-18 Sample Request for Create Endpoint Identity Groups API Call 7-19 Sample Response for Create Endpoint Identity Groups API Call 7-19 Update Endpoint Identity Groups 7-19 Sample Request for Update Endpoint Identity Groups API Call 7-19 Sample Response for Update Endpoint Identity Groups API Call 7-20 Delete Endpoint Identity Groups 7-20 Sample Request for Delete Endpoint Identity Groups API Call 7-20 Sample Response for Delete Endpoint Identity Groups API Call 7-20 External RESTful Services APIs for Identity Groups 7-21 Retrieve All Identity Groups 7-21 Sample Request for Retrieve All Identity Group API Call 7-21 Sample Response for Retrieve All Identity Group API Call 7-21 External RESTful Services APIs for Guest Users 7-22 Content Type and Accept Headers 7-22 Get a Guest User 7-23 Get a Guest User Examples 7-23 Get a Guest User by ID Example 7-23 Filter by Usernames that Start with “ilucky” Example 7-24 Filter by Username that Starts with “ilucky” and Last Name that Starts with “J” Example Filter By the First Name “John” and Sort By Username Example 7-26 Guest User Request and Response Using curl Example 7-26 Get All Guest Users 7-28 Get All Example 7-28 Create a Guest User 7-29 Create a Guest User Example 7-29 Update a Guest User 7-30 Update Guest Users Examples 7-30 Update User Example 7-31 Reset User’s Password Example 7-31 Delete a Guest User 7-32 Delete a Guest User Example 7-32 Suspend a Guest User 7-32 Suspend a Guest User by ID Example 7-33 Reinstate a Guest User 7-33 7-25 Cisco Identity Services Engine API Reference Guide, Release 1.2 viii OL-26134-01 Contents Reinstate Guest User Example 7-33 Send an Email to a Guest User 7-34 Send an Email to a Guest User Example 7-34 Send an SMS Text to a Guest User 7-34 Send an SMS Example 7-35 Approve a Guest User 7-35 Approve a Guest User Example 7-35 Deny Approval for a Guest User Account 7-36 Deny a Guest User’s Approval Example 7-36 Start Bulk Execution for Guest Users 7-36 Create Guest Bulk Example 7-37 Get Bulk Status for Guest Users 7-38 Get Bulk Status for Guest Users Example 7-38 Change a Sponsor’s Password 7-39 Change a Sponsor’s Password Example 7-39 External RESTful Services APIs for Portals 7-40 Get All Portals 7-40 Sample Request for Get All Portals Call 7-40 Sample Response for Get All Portals Call 7-40 Get Portal by ID 7-41 Sample Request for Get Portal by ID Call 7-41 Sample Response for Get Portal by ID Call 7-41 External RESTful Services APIs for Network Devices 7-43 Get All Network Devices 7-43 Sample Request for Get All Network Devices Call 7-43 Sample Response for Get All Network Devices Call 7-44 Get Network Device by ID 7-44 Sample Request for Get Network Device by ID Call 7-44 Sample Response for Get Network Device by ID Call 7-44 Create Network Device 7-45 Sample Request for Create Network Device Call 7-45 Sample Response for Create Network Device Call 7-46 Update Network Device 7-46 Sample Request for Update Network Device Call 7-46 Sample Response for Update Network Device Call 7-47 Delete Network Device 7-47 Sample Request for Update Network Device Call 7-47 Sample Response for Update Network Device Call 7-47 External RESTful Services APIs for Network Device Groups 7-47 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 ix Contents Get All Network Device Groups 7-48 Sample Request for Get All Network Device Groups API Call 7-48 Sample Response for Get All Network Device Groups API Call 7-48 Get Network Device Group 7-49 Sample Request for Get Network Device Group API Call 7-49 Sample Response for Get Network Device Group API Call 7-49 External RESTful Services APIs for SGTs 7-50 Get All SGTs 7-50 Sample Request for Get All SGTs API Call 7-50 Sample Response for Get All SGTs API Call 7-50 Get SGT by ID 7-51 Sample Request for Get SGT by ID API Call 7-51 Sample Response for Get SGT by ID API Call 7-51 REST API Client 7-52 GET Method 7-52 URI 7-52 Accept Header 7-53 Authorization Header 7-53 Making the GET Request Using POSTMAN 7-53 POST Method 7-54 URI 7-54 Content-Type Header 7-55 Authorization Header 7-55 Making the POST Request Using POSTMAN 7-55 PUT Method 7-56 URI 7-56 Content-Type Header 7-57 Authorization Header 7-57 Making the PUT Request Using POSTMAN 7-57 Delete Method 7-58 URI 7-58 Accept Header 7-59 Authorization Header 7-59 Making the DELETE Request Using POSTMAN 7-59 Cisco ISE Failure Reasons Report Introduction A-1 A-1 Viewing Failure Reasons A-1 Cisco Identity Services Engine API Reference Guide, Release 1.2 x OL-26134-01 Preface Revised: 11/12/14, OL-26134-01 This preface explains the objectives, intended audience, and organization of the Cisco Identity Services Engine API Reference Guide, Release 1.3. The preface also describes the conventions that provide instructions and provides other types of information in the following sections: • Overview of Cisco Identity Services Engine, page vii • Purpose, page viii • Audience, page viii • Document Organization, page ix • Document Conventions, page ix • Documentation Updates, page x • Product Documentation, page x • Related Documentation, page x • Obtaining Documentation and Submitting a Service Request, page xi Overview of Cisco Identity Services Engine Cisco Identity Services Engine (ISE), as a next-generation identity and access control policy platform enables enterprises to enforce compliance, enhance infrastructure security, and streamline their service operations. The unique architecture of Cisco ISE allows enterprises to gather real-time contextual information from networks, users, and devices in order to make proactive governance decisions by tying identity to various network elements including access switches, wireless LAN controllers (WLCs), virtual private network (VPN) gateways, and data center switches. Cisco ISE is a key component of the Cisco Security Group Access Solution. Cisco ISE is a consolidated policy-based access control solution that: • Combines authentication, authorization, accounting (AAA), posture, profiler, and guest management services into one appliance • Enforces endpoint compliance by checking the device posture of all endpoints accessing the network, including 802.1X environments • Provides support for discovery, profiling, policy-based placement, and monitoring of endpoint devices on the network • Enables consistent policy in centralized and distributed deployments allowing services to be delivered where they are needed Cisco Identity Services Engine API Reference Guide, Release 1.3 OL-26134-01 vii • Employs advanced enforcement capabilities including Security Group Access (SGA) through the use of Security Group Tags (SGTs) and Security Group (SG) Access Control Lists (ACLs) • Supports scalability to support a number of deployment scenarios from small office to large enterprise environments The Cisco ISE architecture supports standalone and distributed deployments, allowing you to configure and manage your network from a centralized portal. For more information on the capabilities of Cisco ISE, see the Cisco Identity Services Engine Admin Guide, Release 1.3. Purpose This application programming interface (API) reference guide provides only a brief high-level overview of the capabilities afforded by the supported APIs. The purpose of this API reference guide is to provide a developer, system or network administrator, or system integrator with basic guidelines for using the outlined APIs within the Cisco ISE deployment. The REST API calls use queries to determine the following types of data: • Number of active sessions • Types of active sessions • Authentication status of active session • MAC addresses in use • NAS IP addresses in use • Node versions and types • Reasons for node session failures The External RESTful Services APIs and related API calls can be used to perform CRUD (Create, Read, Update, Delete) operations on Cisco ISE resources. External RESTful Services is based on HTTP protocol and REST methodology. Note For more information about the Cisco ISE network, its nodes and personas, concepts of operation or usage, or how to use the Cisco ISE user interface, see the Cisco Identity Services Engine Admin Guide, Release 1.3. Audience This API reference guide is intended for experienced system administrators who administer Cisco ISE appliances within a network environment, system integrators who may want to make use of the APIs, or third-party partners who have with the responsibility for managing or troubleshooting Cisco ISE deployments. As a prerequisite to using this API reference guide, you should have a basic understanding of troubleshooting and diagnostic practices and how to make and interpret API calls. Cisco Identity Services Engine API Reference Guide, Release 1.3 viii OL-26134-01 Document Organization This guide is organized as follows: • Part 1 — Cisco ISE Monitoring REST APIs – Chapter 1, “Introduction to the Monitoring REST API” – Chapter 2, “Session Management Query APIs” – Chapter 3, “Query APIs for Troubleshooting” – Chapter 4, “Change of Authorization REST APIs” • Part 2 — Cisco ISE External RESTful Services APIs – Chapter 5, “Introduction to ERS APIs” – Chapter 7, “External RESTful Services API Operations” • Part 3 — Cisco pxGrid APIs – Appendix A, “Cisco ISE Failure Reasons Report” Document Conventions This section outlines the conventions used throughout this document. Caution Note Means reader be careful. You are capable of doing something that might result in equipment damage or loss of data. Means reader take note. Notes contain helpful suggestions or references to materials not contained in this manual. This API reference guide uses the following conventions to convey instructions and information. Item Convention Commands, keywords, special terminology, and options that should be chosen during procedures boldface font Variables for which you supply values and new or italic font important terminology Displayed session and system information, paths, screen font and file names Information you enter boldface screen Variables you enter italic screen Menu items and button names boldface font Indicates menu items to choose, in the order in which you choose them. Option > Network Preferences font font Cisco Identity Services Engine API Reference Guide, Release 1.3 OL-26134-01 ix Documentation Updates Table 1 lists the updates made to this document since its inception, with the most recent update featured first in the list. Table 1 Updates for Cisco Identity Services Engine API Reference Guide, Release 1.3 Date Description 8-25-2014 Cisco Identity Services Engine (ISE) Release 1.3 Product Documentation Note We sometimes update the printed and electronic documentation after original publication. Therefore, you should also review the documentation on http://www.cisco.com for any updates. Table 2 lists the related product documentation that is available for Cisco ISE Release 1.3 on www.cisco.com. To find end-user documentation for all products on www.cisco.com, go to: http://www.cisco.com/go/techdocs Related Documentation This section provides information on release-specific documentation, as well as platform-specific documentation. Release-Specific Documentation Table 2 lists the product documentation available for the Cisco ISE Release. General product information for Cisco ISE is available at http://www.cisco.com/go/ise. End-user documentation is available on Cisco.com at http://www.cisco.com/en/US/products/ps11640/tsd_products_support_series_home.html. Table 2 Product Documentation for Cisco Identity Services Engine Document Title Location Release Notes for the Cisco Identity Services Engine, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr od_release_notes_list.html Cisco Identity Services Engine Network Component Compatibility, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr oducts_device_support_tables_list.html Cisco Identity Services Engine Admin Guide, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr oducts_user_guide_list.html Cisco Identity Services Engine Hardware Installation Guide, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr od_installation_guides_list.html Cisco Identity Services Engine API Reference Guide, Release 1.3 x OL-26134-01 Table 2 Product Documentation for Cisco Identity Services Engine (continued) Document Title Location Cisco Identity Services Engine Migration Guide for Cisco Secure ACS 5.5 to Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr od_installation_guides_list.html Cisco Identity Services Engine Sponsor Portal User Guide, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr oducts_user_guide_list.html Cisco Identity Services Engine CLI Reference Guide, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr od_command_reference_list.html Cisco Identity Services Engine API Reference Guide, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr od_command_reference_list.html Cisco Identity Services Engine Troubleshooting Guide, Release 1.3 http://www.cisco.com/en/US/products/ps11640/pr od_troubleshooting_guides_list.html Regulatory Compliance and Safety Information for Cisco Identity Services Engine, Cisco 1121 Secure Access Control System, Cisco NAC Appliance, Cisco NAC Guest Server, and Cisco NAC Profiler http://www.cisco.com/en/US/products/ps11640/pr od_installation_guides_list.html Cisco Identity Services Engine In-Box Documentation and China RoHS Pointer Card http://www.cisco.com/en/US/products/ps11640/pr oducts_documentation_roadmaps_list.html Platform-Specific Documentation Links to Policy Management Business Unit documentation are available on http://www.cisco.com at the following locations: • Cisco ISE http://www.cisco.com/en/US/products/ps11640/prod_installation_guides_list.html • Cisco Secure ACS http://www.cisco.com/en/US/products/ps9911/tsd_products_support_series_home.html • Cisco NAC Appliance http://www.cisco.com/en/US/products/ps6128/tsd_products_support_series_home.html • Cisco NAC Profiler http://www.cisco.com/en/US/products/ps8464/tsd_products_support_series_home.html • Cisco NAC Guest Server http://www.cisco.com/en/US/products/ps10160/tsd_products_support_series_home.html Obtaining Documentation and Submitting a Service Request For information on obtaining documentation, submitting a service request, and gathering additional information, refer to the monthly What’s New in Cisco Product Documentation, which also lists all new and revised Cisco technical documentation, at: http://www.cisco.com/en/US/docs/general/whatsnew/whatsnew.html Subscribe to the What’s New in Cisco Product Documentation as a Really Simple Syndication (RSS) feed and set content to be delivered directly to your desktop using a reader application. The RSS feeds are a free service and Cisco currently supports RSS version 2.0. Cisco Identity Services Engine API Reference Guide, Release 1.3 OL-26134-01 xi Cisco Identity Services Engine API Reference Guide, Release 1.3 xii OL-26134-01 PART 1 Cisco ISE Monitoring REST APIs CH A P T E R 1 Introduction to the Monitoring REST API The Monitoring REST API allows allow you to gather session and node-specific information by using Monitoring nodes in your network. A session is defined as the duration between when you access a desired node and complete the operations needed to gather information. The following Monitoring REST API categories are supported in Cisco ISE, Release 1.3: Note • Session Management • Troubleshooting • Change of Authorization (CoA) You use only supported categories to gather information about endpoints being monitored by the Monitoring persona. Monitoring is one of three supported personas that a node type can perform in a Cisco ISE, Release 1.3, deployment. For the remainder of this guide, “Monitoring node” will be used to describe the Monitoring persona of a Cisco ISE node. Any attempt to use these categories to gather information about the Policy Service persona of a Cisco ISE appliance will result in an error. For more information about Cisco ISE nodes and personas, see Cisco Identity Services Engine Admin Guide, Release 1.3. Monitoring REST API calls allow you to locate, monitor, and accumulate important real-time, session-based information stored in individual endpoints in a network. You can access this information through a Monitoring node. The real-time, session-based information that you gather can help understand Cisco ISE operations and assist in diagnosing conditions or issues. It can also be used to troubleshoot error conditions or an activity or behavior that may be affecting monitoring operations. As shown in Figure 1-1, the Monitoring REST API calls are used to access the Monitoring node and retrieve important session-based information that is stored in the Cisco ISE deployment endpoints. Note The Monitoring REST API for Cisco ISE, Release 1.2 has been deprecated and the URL path for all service calls has been changed. Please use the Monitoring REST API for Cisco ISE, Release 1.3. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 1-1 Chapter 1 Introduction to the Monitoring REST API Verifying a Monitoring Node Figure 1-1 Monitoring REST API Calls in a Distributed Deployment Browser-based client Cisco ISE Deployment Web server REST (HTTPS) APIs Adminstration persona Monitoring persona PHP-based client 310131 Policy service persona Remote java client Verifying a Monitoring Node Before you Begin Before you can successfully invoke the API calls on a Monitoring node, you need to verify that the node you want to monitor is valid. Note To be able to use a public Monitoring REST API, you must first authenticate with Cisco ISE using valid credentials. Step 1 Enter valid login credentials (Username and Password) in the Cisco ISE Login window, and click Login. The Cisco ISE dashboard and user interface appears. Step 2 Choose Authorization > System > Deployment. The Deployment Nodes page appears, which lists all configured nodes that are deployed. Step 3 In the Roles column of the Deployment Nodes page, verify that the role for the target node that you want to monitor is listed as a Monitoring node. Supported API Calls The following tables describe the different types of API calls and provide an example of the API call format: • Table 1-1 on page 1-3—defines API calls for session management. • Table 1-2 on page 1-6—defines API calls for troubleshooting. • Table 1-3 on page 1-7—defines CoA API calls. Cisco Identity Services Engine API Reference Guide, Release 1.2 1-2 OL-26134-01 Chapter 1 Introduction to the Monitoring REST API Supported API Calls If you intend to use a generic programmatic interface to authenticate with the Monitoring REST API supported by Cisco ISE, you need to first create a REST-based client that bridges Cisco ISE and the specific tool you use. You then use this REST client to authenticate with the Cisco ISE Monitoring REST APIs, marshal and submit the API requests to the Monitoring nodes, and then unmarshal the API responses and pass them on to the specified tool. Table 1-1 Cisco ISE Session Management API Calls API Call Category Description and Example Session Counters ActiveCount Lists the number of active sessions. https://<ISEhost>/admin/API/mnt/Session/ActiveCount PostureCount Lists the number of Postured endpoints. https://<ISEhost>/admin/API/mnt/Session/PostureCount Note ProfilerCount Posture is a service that aids in checking the state (or posture) for all the endpoints that connect to a Cisco ISE network. Cisco ISE utilizes NAC Agent for checking the posture compliance of a device. Lists the number of active Profiler service sessions. https://<ISEhost>/admin/API/mnt/Session/ProfilerCount Note Profiler is a service that aids in identifying, locating, and determining the capabilities of all attached endpoints on a Cisco ISE network. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 1-3 Chapter 1 Introduction to the Monitoring REST API Supported API Calls Table 1-1 Cisco ISE Session Management API Calls (continued) API Call Category Description and Example Session List Note A session list includes the MAC address, network access device (NAD) IP address, username, and session ID information associated with a session. ActiveList Lists all active sessions. https://<ISEhost>/admin/API/mnt/Session/ActiveList In this release of Cisco ISE, the maximum number of active authenticated endpoint sessions that can be displayed is limited to 250,000. Note AuthList Lists all currently active authenticated sessions. https://<ISEhost>/admin/API/mnt/Session/AuthList/<parameteroptio ns> You can specify the following parameter options that will return different values: • null/null—Lists all active authenticated sessions. • null/endtime—Lists all active authenticated sessions after the specified end time. • starttime/null—Lists all active authenticated sessions before the specified start time. • starttime/endtime—Lists all active authenticated sessions between the specified start time and end time. Enter the date and time for the start time and end time in the following format: YYYY-MM-DD hh:mm:ss.s where: • YYYY—four-digit year • MM—two-digit month (01=January, and so on) • DD—two-digit day of the month (01 through 31) • hh—two-digit hour (00 through 23) (a.m. and p.m. are not allowed) • mm—two-digit minute (00 through 59) • ss—two-digit second (00 through 59) • s—one or more digits representing a decimal fraction of a second Note Every Cisco ISE node is configured with a time zone. Recommended time zone is UTC. See Sample Data Returned from the AuthList API Call with the null/null Option, page 2-8, for samples that show all four parameter options. Cisco Identity Services Engine API Reference Guide, Release 1.2 1-4 OL-26134-01 Chapter 1 Introduction to the Monitoring REST API Supported API Calls Table 1-1 Cisco ISE Session Management API Calls (continued) API Call Category Description and Example Session Attributes Note This is a timestamp-based search for the latest session that contains the specified search attribute. MACAddress Searches the database for the latest session that contains the specified MAC address. https://<ISEhost>/admin/API/mnt/Session/MACAddress/<macaddres s> UserName Note XX:XX:XX:XX:XX:XX is the MAC address format and is not case sensitive (for example, 0a:0B:0c:0D:0e:0F). Note The MAC address serves as the only unique key to finding the correct session you want to monitor. Use the ActiveList API call to list all active sessions and their MAC addresses, from which you can base your MAC address search. Searches the database for the latest session that contains the specified username. https://<ISEhost>/admin/API/mnt/Session/UserName/<username> Note IPAddress Usernames must conform to the same Cisco ISE password policy used for network usernames. The only invalid character for the Monitoring REST APIs is the backslash (\) character. For details, see “User Password Policy” in Cisco Identity Services Engine User Guide, Release 1.1. Searches the database for the latest session that contains the specified NAS IP address. https://<ISEhost>/admin/API/mnt/Session/IPAddress/<nasipaddress> Note xxx.xxx.xxx.xxx is the NAS IP address format (for example, 10.10.10.10). For specific details about Cisco ISE API calls for session management, see Chapter 2, “Session Management Query APIs”. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 1-5 Chapter 1 Introduction to the Monitoring REST API Supported API Calls Table 1-2 Cisco ISE Troubleshooting API Calls - Troubleshooting API Call Description and Example Version Lists the node version and type. https://<ISEhost>/admin/API/mnt/Version Node type can be any of the following values (0-3): 0—STAND_ALONE_MNT_NODE 1—ACTIVE_MNT_NODE 2—STAND_BY_MNT_NODE 3—NOT_AN_MNT_NODE Note STAND_ALONE_MNT_NODE means it is a Monitoring node that does not function in any distributed deployment. ACTIVE_MNT_NODE means it is a primary node in a primary-secondary relationship in a distributed deployment. STAND_BY_MNT_NODE means it is a secondary node in a primary-secondary pair in a distributed deployment. NOT_AN_MNT_NODE means it is not a Monitoring node. See Cisco Identity Services Engine User Guide, Release 1.1 for details about the supported ISE nodes and personas. FailureReasons Lists the reasons for failure. https://<ISEhost>/admin/API/mnt/FailureReasons Each failure reason displays an error code (failureReason id), a brief description (code), a failure reason (cause), and a possible response (resolution), as shown in the following example: <failureReason id="100009"> <code> 100009 WEBAUTH_FAIL <cause> This may or may not be indicating a violation. <resolution> Please review and resolve this issue according to your organization's policy. Note The FailureReasons API call to be called only once to gather the information from the Monitoring node. You should store the contents of any returned failure reasons into your own file system or database. The returned contents of these API calls are intended to be used for reference purposes. If you experience any issues during authentication, you should compare the failure reason code provided in the authentication response with the list of failure reasons that you have stored in your own file system or database. For a complete list of Cisco ISE failure reasons, see Appendix A, “Cisco ISE Failure Reasons Report”. Cisco Identity Services Engine API Reference Guide, Release 1.2 1-6 OL-26134-01 Chapter 1 Introduction to the Monitoring REST API Supported API Calls Table 1-2 Cisco ISE Troubleshooting API Calls - Troubleshooting (continued) API Call Description and Example AuthStatus Lists the authentication status for all sessions. https://<ISEhost>/admin/API/mnt/AuthStatus/MACAddress/<macaddre ss>/<numberofseconds>/<numberofrecordspermacaddress>/All Note The seconds parameter <numberofseconds> is user-configurable, the range is from 0 to 432000 seconds (5 days). Get Session Accounting Status AcctStatus Lists the accounting status of all sessions within a specific period of time. https://<ISEhost>/admin/API/mnt/Session/AcctStatusTT/MACAddress/ <macaddress>/<numberof seconds> Note The seconds parameter <numberofseconds> is user-configurable, with the range is from 0 to 432000 seconds (5 days). For specific details about Cisco ISE API calls for troubleshooting, see Chapter 2, “Session Management Query APIs”. Table 1-3 Cisco ISE Change of Authorization API Calls API Call Description and Example Reauth Sends a session reauthentication command and type. https://<ISEhost>/admin/API/mnt/CoA/Reauth/<serverhostname>/ <macaddress>/<reauthtype>/<nasipaddress>/ <destinationipaddress> Where <ISEhost> denotes the ip address of the ISE host, <serverhostname> denotes the name of the ISE server, <nasipaddress> denotes the identifying ip address of NAS, and <destinationipaddress> denotes the ip address of the destination. Reauth type can be any of the following values (0-2): 0—REAUTH_TYPE_DEFAULT 1—REAUTH_TYPE_LAST 2—REAUTH_TYPE_RERUN Note If you do not know the NAS IP address, you can enter the required values up to that point and the API will use these values in its search query. However, you must know the MAC address to perform this API call, but you can leave other parameters as null. This API call can only be executed on a Monitoring ISE node, which submits the requests to perform CoA remotely. The Administration ISE node is not involved or required to execute these CoA API calls. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 1-7 Chapter 1 Introduction to the Monitoring REST API Supported API Calls Table 1-3 Cisco ISE Change of Authorization API Calls (continued) API Call Description and Example Session Disconnect Disconnect Sends a session disconnect command and port option type. https://<ISEhost>/admin/API/mnt/CoA/Disconnect/<serverhostname>/ <macaddress>/<disconnecttype>/<nasipaddress>/ <destinationipaddress> Port option type can be any of the following values (0-2): 0—DYNAMIC_AUTHZ_PORT_DEFAULT 1—DYNAMIC_AUTHZ_PORT_BOUNCE 2—DYNAMIC_AUTHZ_PORT_SHUTDOWN Note If you do not know the NAS IP address, enter the required values up to that point and the API will use these values in its search query. However, you must know the MAC address to perform this API call, but you can leave other parameters as null. For details about Cisco ISE Change of Authorization API calls, see Chapter 4, “Change of Authorization REST APIs”. HTTP PUT API Calls Similar to AuthStatus API call in Table 1-2, there is an HTTP PUT version of an API call that allows clients to retrieve account status. The Monitoring REST API supports both HTTP PUT and HTTP GET calls, with the examples in this guide documenting HTTP GET calls. HTTP PUT addresses the need for calls that require parameter inputs. The following schema file example is a request for account status: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="acctRequest" type="mnTRESTAcctRequest"/> <xs:complexType name="mnTRESTAcctRequest"> <xs:complexContent> <xs:extension base="mnTRESTRequest"> <xs:sequence> <xs:element name="duration" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="mnTRESTRequest" abstract="true"> <xs:sequence> <xs:element name="valueList"> <xs:complexType> <xs:sequence> <xs:element name="value" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="searchCriteria" type="xs:string"/> </xs:sequence> </xs:complexType> Cisco Identity Services Engine API Reference Guide, Release 1.2 1-8 OL-26134-01 Chapter 1 Introduction to the Monitoring REST API Supported API Calls </xs:schema> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 1-9 Chapter 1 Introduction to the Monitoring REST API Supported API Calls Cisco Identity Services Engine API Reference Guide, Release 1.2 1-10 OL-26134-01 CH A P T E R 2 Session Management Query APIs This chapter describes the session management API calls that provide the means for retrieving important session-related information from within the Cisco Monitoring ISE node in your Cisco ISE deployment. Session Counter API Calls The following session counter API calls let you quickly gather a current count of session-related information on a target Cisco Monitoring ISE node in your Cisco ISE deployment: • Active sessions (ActiveCount)—An active session is one that is authenticated onto the network. • Postured sessions (PostureCount)—Postured state is asserted when posture is concluded (Compliant/Noncompliant). Posture is optional, for example, IP-phone/printer would not go to Postured state. Postured state is a short lived interim state, since after Postured, it moves to Started state when accounting start is set. • Profiled sessions (ProfilerCount) These various states are meant to troubleshoot if an endpoint gets stuck in any of the phases. Active Sessions Counter You can use the ActiveCount API call to retrieve a count of all currently active sessions. This section provides a schema file output example, a procedure for counting all active sessions by invoking the ActiveCount API call, and a sample of the active sessions data returned after this API call is issued. ActiveCount API Output Schema This sample schema file is the output of the ActiveCount API call for retrieving a count of the active sessions on the target Monitoring persona of an ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="sessionCount" type="activeCount"/> <xs:complexType name="activeCount"> <xs:sequence> <xs:element name="count" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-1 Chapter 2 Session Management Query APIs Session Counter API Calls Invoking the ActiveCount API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the ActiveCount API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>): https://acme123/admin/API/mnt/Session/ActiveCount Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents the target Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the ActiveCount API Call The following example illustrates the data returned (number of active sessions) when you invoke an ActiveCount API call on a target Cisco Monitoring ISE node: This XML file does not appear to have any style information associated with it. The document tree is shown below. <sessionCount> <count>5</count> </sessionCount> Posture Sessions Counter You can use the PostureCount API call to retrieve a current count of all currently active Posture sessions. PostureCount API Output Schema This sample schema file is the output of the PostureCount API call for retrieving a count of the current active Posture sessions on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-2 OL-26134-01 Chapter 2 Session Management Query APIs Session Counter API Calls <xs:element name="sessionCount" type="postureCount"/> <xs:complexType name="postureCount"> <xs:sequence> <xs:element name="count" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema> Invoking the PostureCount API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the PostureCount API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/Session/<specific-api-call>): https://acme123/admin/API/mnt/Session/PostureCount Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents the target Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the PostureCount API Call The following example illustrates the data returned (number of current active Posture sessions) when you invoke a PostureCount API call on a target Cisco Monitoring ISE node: This XML file does not appear to have any style information associated with it. The document tree is shown below. <sessionCount> <count>3</count> </sessionCount> Profiler Sessions Counter You can use the ProfilerCount API call to retrieve a count of all currently active Profiler sessions. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-3 Chapter 2 Session Management Query APIs Session Counter API Calls ProfilerCount API Output Schema This sample schema file is the output of the ProfilerCount API call for retrieving a count of the current active Profiler sessions on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="sessionCount" type="profilerCount"/> <xs:complexType name="profilerCount"> <xs:sequence> <xs:element name="count" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema> Invoking the ProfilerCount API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the ProfilerCount API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/Session/<specific-api-call>): https://acme123/admin/API/mnt/Session/ProfilerCount Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the ProfilerCount API Call The following example illustrates the data returned (number of active Profiler sessions) when you invoke a ProfilerCount API call on a target Cisco Monitoring ISE node: This XML file does not appear to have any style information associated with it. The document tree is shown below. <sessionCount> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-4 OL-26134-01 Chapter 2 Session Management Query APIs Simple Session List API Calls <count>1</count> </sessionCount> Simple Session List API Calls The following simple session list API calls let you quickly gather session-related information such as the MAC address, the network access device (NAD) IP address, user name, and session ID associated with a current active session on a target Cisco Monitoring ISE node in your Cisco ISE deployment: • Active sessions list (ActiveList) • Authenticated sessions list (AuthList) Active Sessions List You can use the ActiveList API call to list all currently active sessions. Note The maximum number of active authenticated endpoint sessions that can be displayed is limited to 100,000. ActiveList API Output Schema This sample schema file is the output of the ActiveList API call for retrieving a list of the current active sessions (and session-related information) on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="activeSessionList" type="simpleActiveSessionList"/> <xs:complexType name="simpleActiveSessionList"> <xs:sequence> <xs:element name="activeSession" type="simpleActiveSession" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="noOfActiveSession" type="xs:int" use="required"/> </xs:complexType> <xs:complexType name="simpleActiveSession"> <xs:sequence> <xs:element name="user_name" type="xs:string" minOccurs="0"/> <xs:element name="calling_station_id" type="xs:string" minOccurs="0"/> <xs:element name="nas_ip_address" type="xs:string" minOccurs="0"/> <xs:element name="acct_session_id" type="xs:string" minOccurs="0"/> <xs:element name="audit_session_id" type="xs:string" minOccurs="0"/> <xs:element name="server" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-5 Chapter 2 Session Management Query APIs Simple Session List API Calls Invoking the ActiveList API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the ActiveList API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/Session/<specific-api-call>): https://acme123/admin/API/mnt/Session/ActiveList Note Step 5 You must carefully enter each API call in the URL Address field of a target node, because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the ActiveList API Call The following example illustrates the session-related data returned from the list of active sessions when you invoke an ActiveList API call on a target Cisco Monitoring ISE node: This XML file does not appear to have any style information associated with it. The document tree is shown below. <activeSessionList noOfActiveSession="5"> <activeSession> <calling_station_id>00:0C:29:FA:EF:0A</calling_station_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <calling_station_id>70:5A:B6:68:F7:CC</calling_station_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>tom_wolfe</user_name> <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000032</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-6 OL-26134-01 Chapter 2 Session Management Query APIs Simple Session List API Calls <activeSession> <user_name>graham_hancock</user_name> <calling_station_id>00:50:56:8E:28:BD</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>0000002C</acct_session_id> <audit_session_id>0ACB6BA10000002A165FD0C8</audit_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>ipepvpnuser</user_name> <calling_station_id>172.23.130.89</calling_station_id> <nas_ip_address>10.203.107.45</nas_ip_address> <acct_session_id>A2000070</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> </activeSessionList> Authenticated Sessions List You can use the AuthList API call to retrieve a list of all currently active authenticated sessions. Note The maximum number of active authenticated endpoint sessions that can be displayed is limited to 100,000. AuthList API Output Schema This sample schema file is the output of the AuthList API call for retrieving a list of all currently active authenticated sessions within a specified period of time (or for no specified time using the “null/null” parameter) on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="activeSessionList" type="simpleActiveSessionList"/> <xs:complexType name="simpleActiveSessionList"> <xs:sequence> <xs:element name="activeSession" type="simpleActiveSession" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="noOfActiveSession" type="xs:int" use="required"/> </xs:complexType> <xs:complexType name="simpleActiveSession"> <xs:sequence> <xs:element name="user_name" type="xs:string" minOccurs="0"/> <xs:element name="calling_station_id" type="xs:string" minOccurs="0"/> <xs:element name="nas_ip_address" type="xs:string" minOccurs="0"/> <xs:element name="acct_session_id" type="xs:string" minOccurs="0"/> <xs:element name="audit_session_id" type="xs:string" minOccurs="0"/> <xs:element name="server" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-7 Chapter 2 Session Management Query APIs Simple Session List API Calls Invoking the AuthList API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the AuthList API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/Session/<specific-api-call>): Note The first of the following two examples uses a defined starttime and null parameter, which displays a list of the currently active sessions that were authenticated after the specified start time. The second example uses the null/null parameter that displays a list of all currently active authenticated sessions. See Sample Data Returned from the AuthList API Call with the null/null Option, page 2-8, which displays samples of the four parameter setting types for this API call. https://acme123/admin/API/mnt/Session/AuthList/2010-12-14 15:33:15/null https://acme123/admin/API/mnt/Session/AuthList/null/null Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the AuthList API Call with the null/null Option The following example illustrate the list of currently active authenticated sessions that is returned when you invoke an AuthList API call using the null/null option: This XML file does not appear to have any style information associated with it. The document tree is shown below. <activeSessionList noOfActiveSession="3"> <activeSession> <user_name>ipepwlcuser</user_name> <calling_station_id>00:26:82:7B:D2:51</calling_station_id> <nas_ip_address>10.203.107.10</nas_ip_address> <audit_session_id>0acb6b0c000000174D07F487</audit_session_id> <server>HAREESH-R6-1-PDP2</server> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-8 OL-26134-01 Chapter 2 Session Management Query APIs Simple Session List API Calls </activeSession> <activeSession> <user_name>tom_wolfe</user_name> <calling_station_id>00:50:56:8E:28:BD</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000035</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>graham_hancock</user_name> <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000033</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> </activeSessionList> Sample Data Returned from the AuthList API Call with the endtime/null Option The following example illustrate the list of currently active authenticated sessions that is returned when you invoke an AuthList API call using the endtime/null option: This XML file does not appear to have any style information associated with it. The document tree is shown below. <activeSessionList noOfActiveSession="3"> <activeSession> <user_name>ipepwlcuser</user_name> <calling_station_id>00:26:82:7B:D2:51</calling_station_id> <nas_ip_address>10.203.107.10</nas_ip_address> <audit_session_id>0acb6b0c0000001F4D08085A</audit_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>hunter_thompson</user_name> <calling_station_id>00:50:56:8E:28:BD</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000035</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>bob_ludlum</user_name> <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000033</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> </activeSessionList> Sample Data Returned from the AuthList API Call with the null/starttime Option The following example illustrate the list of currently active authenticated sessions that is returned when you invoke an AuthList API call using the null/starttime option: Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-9 Chapter 2 Session Management Query APIs Simple Session List API Calls This XML file does not appear to have any style information associated with it. The document tree is shown below. <activeSessionList noOfActiveSession="3"> <activeSession> <user_name>ipepwlcuser</user_name> <calling_station_id>00:26:82:7B:D2:51</calling_station_id> <nas_ip_address>10.203.107.10</nas_ip_address> <audit_session_id>0acb6b0c0000001F4D08085A</audit_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>bob_ludlum</user_name> <calling_station_id>00:50:56:8E:28:BD</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000035</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>tom_wolfe</user_name> <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000033</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> </activeSessionList> Sample Data Returned from the AuthList API Call with the statttime/endtime Option The following example illustrate the list of currently active authenticated sessions that is returned when you invoke an AuthList API call using the starttime/endtime option: This XML file does not appear to have any style information associated with it. The document tree is shown below. <activeSessionList noOfActiveSession="3"> <activeSession> <user_name>ipepwlcuser</user_name> <calling_station_id>00:26:82:7B:D2:51</calling_station_id> <nas_ip_address>10.203.107.10</nas_ip_address> <audit_session_id>0acb6b0c0000001F4D08085A</audit_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>graham_hancock</user_name> <calling_station_id>00:50:56:8E:28:BD</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000035</acct_session_id> <server>HAREESH-R6-1-PDP2</server> </activeSession> <activeSession> <user_name>hunter_thompson</user_name> <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_ip_address>10.203.107.161</nas_ip_address> <acct_session_id>00000033</acct_session_id> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-10 OL-26134-01 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <server>HAREESH-R6-1-PDP2</server> </activeSession> </activeSessionList> Detailed Session Attribute API Calls The following detailed session attribute API calls let you quickly search the latest session for key information, such as the following: • MAC address session search (MACAddress) • User name session search (UserName) • NAS IP address session search (IPAddress associated with a target Monitoring ISE node) MAC Address Session Search You can use the MACAddress API call to retrieve a specified MAC address from a current, active session. This API call lists a variety of session-related information drawn from node database tables. MACAddress API Output Schema This sample schema file is the output of the MACAddress API call for retrieving a specified MAC address from the current active sessions: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="sessionParameters" type="restsdStatus"/> <xs:complexType <xs:sequence> <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element name="restsdStatus"> name="passed" type="xs:anyType" minOccurs="0"/> name="failed" type="xs:anyType" minOccurs="0"/> name="user_name" type="xs:string" minOccurs="0"/> name="nas_ip_address" type="xs:string" minOccurs="0"/> name="failure_reason" type="xs:string" minOccurs="0"/> name="calling_station_id" type="xs:string" minOccurs="0"/> name="nas_port" type="xs:string" minOccurs="0"/> name="identity_group" type="xs:string" minOccurs="0"/> name="network_device_name" type="xs:string" minOccurs="0"/> name="acs_server" type="xs:string" minOccurs="0"/> name="authen_protocol" type="xs:string" minOccurs="0"/> name="framed_ip_address" type="xs:string" minOccurs="0"/> name="network_device_groups" type="xs:string" minOccurs="0"/> name="access_service" type="xs:string" minOccurs="0"/> name="auth_acs_timestamp" type="xs:dateTime" minOccurs="0"/> name="authentication_method" type="xs:string" minOccurs="0"/> name="execution_steps" type="xs:string" minOccurs="0"/> name="radius_response" type="xs:string" minOccurs="0"/> name="audit_session_id" type="xs:string" minOccurs="0"/> name="nas_identifier" type="xs:string" minOccurs="0"/> name="nas_port_id" type="xs:string" minOccurs="0"/> name="nac_policy_compliance" type="xs:string" minOccurs="0"/> name="auth_id" type="xs:long" minOccurs="0"/> name="auth_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="message_code" type="xs:string" minOccurs="0"/> name="acs_session_id" type="xs:string" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-11 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element name="service_selection_policy" type="xs:string" minOccurs="0"/> name="authorization_policy" type="xs:string" minOccurs="0"/> name="identity_store" type="xs:string" minOccurs="0"/> name="response" type="xs:string" minOccurs="0"/> name="service_type" type="xs:string" minOccurs="0"/> name="cts_security_group" type="xs:string" minOccurs="0"/> name="use_case" type="xs:string" minOccurs="0"/> name="cisco_av_pair" type="xs:string" minOccurs="0"/> name="ad_domain" type="xs:string" minOccurs="0"/> name="acs_username" type="xs:string" minOccurs="0"/> name="radius_username" type="xs:string" minOccurs="0"/> name="nac_role" type="xs:string" minOccurs="0"/> name="nac_username" type="xs:string" minOccurs="0"/> name="nac_posture_token" type="xs:string" minOccurs="0"/> name="nac_radius_is_user_auth" type="xs:string" minOccurs="0"/> name="selected_posture_server" type="xs:string" minOccurs="0"/> name="selected_identity_store" type="xs:string" minOccurs="0"/> name="authentication_identity_store" type="xs:string" minOccurs="0"/> name="azn_exp_pol_matched_rule" type="xs:string" minOccurs="0"/> name="ext_pol_server_matched_rule" type="xs:string" minOccurs="0"/> name="grp_mapping_pol_matched_rule" type="xs:string" minOccurs="0"/> name="identity_policy_matched_rule" type="xs:string" minOccurs="0"/> name="nas_port_type" type="xs:string" minOccurs="0"/> name="query_identity_stores" type="xs:string" minOccurs="0"/> name="selected_azn_profiles" type="xs:string" minOccurs="0"/> name="sel_exp_azn_profiles" type="xs:string" minOccurs="0"/> name="selected_query_identity_stores" type="xs:string" minOccurs="0"/> name="eap_tunnel" type="xs:string" minOccurs="0"/> name="tunnel_details" type="xs:string" minOccurs="0"/> name="cisco_h323_attributes" type="xs:string" minOccurs="0"/> name="cisco_ssg_attributes" type="xs:string" minOccurs="0"/> name="other_attributes" type="xs:string" minOccurs="0"/> name="response_time" type="xs:long" minOccurs="0"/> name="nad_failure" type="xs:anyType" minOccurs="0"/> name="destination_ip_address" type="xs:string" minOccurs="0"/> name="acct_id" type="xs:long" minOccurs="0"/> name="acct_acs_timestamp" type="xs:dateTime" minOccurs="0"/> name="acct_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="acct_session_id" type="xs:string" minOccurs="0"/> name="acct_status_type" type="xs:string" minOccurs="0"/> name="acct_session_time" type="xs:long" minOccurs="0"/> name="acct_input_octets" type="xs:string" minOccurs="0"/> name="acct_output_octets" type="xs:string" minOccurs="0"/> name="acct_input_packets" type="xs:long" minOccurs="0"/> name="acct_output_packets" type="xs:long" minOccurs="0"/> name="acct_class" type="xs:string" minOccurs="0"/> name="acct_terminate_cause" type="xs:string" minOccurs="0"/> name="acct_multi_session_id" type="xs:string" minOccurs="0"/> name="acct_authentic" type="xs:string" minOccurs="0"/> name="termination_action" type="xs:string" minOccurs="0"/> name="session_timeout" type="xs:string" minOccurs="0"/> name="idle_timeout" type="xs:string" minOccurs="0"/> name="acct_interim_interval" type="xs:string" minOccurs="0"/> name="acct_delay_time" type="xs:string" minOccurs="0"/> name="event_timestamp" type="xs:string" minOccurs="0"/> name="acct_tunnel_connection" type="xs:string" minOccurs="0"/> name="acct_tunnel_packet_lost" type="xs:string" minOccurs="0"/> name="security_group" type="xs:string" minOccurs="0"/> name="cisco_h323_setup_time" type="xs:dateTime" minOccurs="0"/> name="cisco_h323_connect_time" type="xs:dateTime" minOccurs="0"/> name="cisco_h323_disconnect_time" type="xs:dateTime" minOccurs="0"/> name="framed_protocol" type="xs:string" minOccurs="0"/> name="started" type="xs:anyType" minOccurs="0"/> name="stopped" type="xs:anyType" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-12 OL-26134-01 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <xs:element name="ckpt_id" type="xs:long" minOccurs="0"/> <xs:element name="type" type="xs:long" minOccurs="0"/> <xs:element name="nad_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> <xs:element name="vlan" type="xs:string" minOccurs="0"/> <xs:element name="dacl" type="xs:string" minOccurs="0"/> <xs:element name="authentication_type" type="xs:string" minOccurs="0"/> <xs:element name="interface_name" type="xs:string" minOccurs="0"/> <xs:element name="reason" type="xs:string" minOccurs="0"/> <xs:element name="endpoint_policy" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Invoking the MACAddress API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the MACAddress API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>/<macaddress>): https://acme123/admin/API/mnt/Session/MACAddress/0A:0B:0C:0D:0E:0F Step 5 Note Make sure that you specify the MAC address using the XX:XX:XX:XX:XX:XX format. Note You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the MACAddress API Call The following example illustrates the session-related data returned from the list of active sessions when you invoke an ActiveList API call: This XML file does not appear to have any style information associated with it. The document tree is shown below. - Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-13 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <sessionParameters> <passed xsi:type="xs:boolean">true</passed> <failed xsi:type="xs:boolean">false</failed> <user_name>hunter_thompson</user_name> <nas_ip_address>10.203.107.161</nas_ip_address> <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_port>50115</nas_port> <identity_group>Profiled</identity_group> <network_device_name>Core-Switch</network_device_name> <acs_server>HAREESH-R6-1-PDP2</acs_server> <authen_protocol>Lookup</authen_protocol> <network_device_groups> Device Type#All Device Types,Location#All Locations </network_device_groups> <access_service>RADIUS</access_service> <auth_acs_timestamp>2010-12-15T02:11:12.359Z</auth_acs_timestamp> <authentication_method>mab</authentication_method> <execution_steps> 11001,11017,11027,15008,15048,15004,15041,15004,15013,24209,24211,22037,15036,15048,15048, 15004,15016,11022,11002 </execution_steps> <audit_session_id>0ACB6BA1000000351BBFBF8B</audit_session_id> <nas_port_id>GigabitEthernet1/0/15</nas_port_id> <nac_policy_compliance>Pending</nac_policy_compliance> <auth_id>1291240762077361</auth_id> <auth_acsview_timestamp>2010-12-15T02:11:12.360Z</auth_acsview_timestamp> <message_code>5200</message_code> <acs_session_id>HAREESH-R6-1-PDP2/81148292/681</acs_session_id> <service_selection_policy>MAB</service_selection_policy> <identity_store>Internal Hosts</identity_store> <response> {UserName=00-14-BF-5A-0C-03; User-Name=00-14-BF-5A-0C-03; State=ReauthSession:0ACB6BA1000000351BBFBF8B; Class=CACS:0ACB6BA1000000351BBFBF8B:HAREESH-R6-1-PDP2/81148292/681; Termination-Action=RADIUS-Request; cisco-av-pair=url-redirect-acl=ACL-WEBAUTH-REDIRECT; cisco-av-pair=url-redirect=https://HAREESH-R6-1-PDP2.cisco.com:8443/guestportal/gateway?se ssionId=0ACB6BA1000000351BBFBF8B&action=cwa; cisco-av-pair=ACS:CiscoSecure-Defined-ACL=#ACSACL#-IP-ACL-DENY-4ced8390; } </response> <service_type>Call Check</service_type> <use_case>Host Lookup</use_case> <cisco_av_pair>audit-session-id=0ACB6BA1000000351BBFBF8B</cisco_av_pair> <acs_username>00:14:BF:5A:0C:03</acs_username> <radius_username>00:14:BF:5A:0C:03</radius_username> <selected_identity_store>Internal Hosts</selected_identity_store> <authentication_identity_store>Internal Hosts</authentication_identity_store> <identity_policy_matched_rule>Default</identity_policy_matched_rule> <nas_port_type>Ethernet</nas_port_type> <selected_azn_profiles>CWA</selected_azn_profiles> <other_attributes> ConfigVersionId=44,DestinationIPAddress=10.203.107.162,DestinationPort=1812,Protocol=Radiu s,Framed-MTU=1500,EAP-Key-Name=,CPMSessionID=0ACB6BA1000000351BBFBF8B,CPMSessionID=0ACB6BA 1000000351BBFBF8B,EndPointMACAddress=00-14-BF-5A-0C-03,HostIdentityGroup=Endpoint Identity Groups:Profiled,Device Type=Device Type#All Device Types,Location=Location#All Locations,Model Name=Unknown,Software Version=Unknown,Device IP Address=10.203.107.161,Called-Station-ID=04:FE:7F:7F:C0:8F </other_attributes> <response_time>77</response_time> <acct_id>1291240762077386</acct_id> <acct_acs_timestamp>2010-12-15T02:12:30.779Z</acct_acs_timestamp> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-14 OL-26134-01 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <acct_acsview_timestamp>2010-12-15T02:12:30.780Z</acct_acsview_timestamp> <acct_session_id>00000038</acct_session_id> <acct_status_type>Interim-Update</acct_status_type> <acct_session_time>78</acct_session_time> <acct_input_octets>13742</acct_input_octets> <acct_output_octets>6277</acct_output_octets> <acct_input_packets>108</acct_input_packets> <acct_output_packets>66</acct_output_packets> <acct_class> CACS:0ACB6BA1000000351BBFBF8B:HAREESH-R6-1-PDP2/81148292/681 </acct_class> <acct_delay_time>0</acct_delay_time> <started xsi:type="xs:boolean">false</started> <stopped xsi:type="xs:boolean">false</stopped> </sessionParameters> User Name Session Search You can use the UserName API call to retrieve a specified user name from a current, active session. This API will list a variety of session-related information drawn from node database tables. UserName API Output Schema This sample schema file is the output of the UserName API call for retrieving a specified user name from the current active sessions: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="sessionParameters" type="restsdStatus"/> <xs:complexType <xs:sequence> <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element name="restsdStatus"> name="passed" type="xs:anyType" minOccurs="0"/> name="failed" type="xs:anyType" minOccurs="0"/> name="user_name" type="xs:string" minOccurs="0"/> name="nas_ip_address" type="xs:string" minOccurs="0"/> name="failure_reason" type="xs:string" minOccurs="0"/> name="calling_station_id" type="xs:string" minOccurs="0"/> name="nas_port" type="xs:string" minOccurs="0"/> name="identity_group" type="xs:string" minOccurs="0"/> name="network_device_name" type="xs:string" minOccurs="0"/> name="acs_server" type="xs:string" minOccurs="0"/> name="authen_protocol" type="xs:string" minOccurs="0"/> name="framed_ip_address" type="xs:string" minOccurs="0"/> name="network_device_groups" type="xs:string" minOccurs="0"/> name="access_service" type="xs:string" minOccurs="0"/> name="auth_acs_timestamp" type="xs:dateTime" minOccurs="0"/> name="authentication_method" type="xs:string" minOccurs="0"/> name="execution_steps" type="xs:string" minOccurs="0"/> name="radius_response" type="xs:string" minOccurs="0"/> name="audit_session_id" type="xs:string" minOccurs="0"/> name="nas_identifier" type="xs:string" minOccurs="0"/> name="nas_port_id" type="xs:string" minOccurs="0"/> name="nac_policy_compliance" type="xs:string" minOccurs="0"/> name="auth_id" type="xs:long" minOccurs="0"/> name="auth_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="message_code" type="xs:string" minOccurs="0"/> name="acs_session_id" type="xs:string" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-15 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element name="service_selection_policy" type="xs:string" minOccurs="0"/> name="authorization_policy" type="xs:string" minOccurs="0"/> name="identity_store" type="xs:string" minOccurs="0"/> name="response" type="xs:string" minOccurs="0"/> name="service_type" type="xs:string" minOccurs="0"/> name="cts_security_group" type="xs:string" minOccurs="0"/> name="use_case" type="xs:string" minOccurs="0"/> name="cisco_av_pair" type="xs:string" minOccurs="0"/> name="ad_domain" type="xs:string" minOccurs="0"/> name="acs_username" type="xs:string" minOccurs="0"/> name="radius_username" type="xs:string" minOccurs="0"/> name="nac_role" type="xs:string" minOccurs="0"/> name="nac_username" type="xs:string" minOccurs="0"/> name="nac_posture_token" type="xs:string" minOccurs="0"/> name="nac_radius_is_user_auth" type="xs:string" minOccurs="0"/> name="selected_posture_server" type="xs:string" minOccurs="0"/> name="selected_identity_store" type="xs:string" minOccurs="0"/> name="authentication_identity_store" type="xs:string" minOccurs="0"/> name="azn_exp_pol_matched_rule" type="xs:string" minOccurs="0"/> name="ext_pol_server_matched_rule" type="xs:string" minOccurs="0"/> name="grp_mapping_pol_matched_rule" type="xs:string" minOccurs="0"/> name="identity_policy_matched_rule" type="xs:string" minOccurs="0"/> name="nas_port_type" type="xs:string" minOccurs="0"/> name="query_identity_stores" type="xs:string" minOccurs="0"/> name="selected_azn_profiles" type="xs:string" minOccurs="0"/> name="sel_exp_azn_profiles" type="xs:string" minOccurs="0"/> name="selected_query_identity_stores" type="xs:string" minOccurs="0"/> name="eap_tunnel" type="xs:string" minOccurs="0"/> name="tunnel_details" type="xs:string" minOccurs="0"/> name="cisco_h323_attributes" type="xs:string" minOccurs="0"/> name="cisco_ssg_attributes" type="xs:string" minOccurs="0"/> name="other_attributes" type="xs:string" minOccurs="0"/> name="response_time" type="xs:long" minOccurs="0"/> name="nad_failure" type="xs:anyType" minOccurs="0"/> name="destination_ip_address" type="xs:string" minOccurs="0"/> name="acct_id" type="xs:long" minOccurs="0"/> name="acct_acs_timestamp" type="xs:dateTime" minOccurs="0"/> name="acct_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="acct_session_id" type="xs:string" minOccurs="0"/> name="acct_status_type" type="xs:string" minOccurs="0"/> name="acct_session_time" type="xs:long" minOccurs="0"/> name="acct_input_octets" type="xs:string" minOccurs="0"/> name="acct_output_octets" type="xs:string" minOccurs="0"/> name="acct_input_packets" type="xs:long" minOccurs="0"/> name="acct_output_packets" type="xs:long" minOccurs="0"/> name="acct_class" type="xs:string" minOccurs="0"/> name="acct_terminate_cause" type="xs:string" minOccurs="0"/> name="acct_multi_session_id" type="xs:string" minOccurs="0"/> name="acct_authentic" type="xs:string" minOccurs="0"/> name="termination_action" type="xs:string" minOccurs="0"/> name="session_timeout" type="xs:string" minOccurs="0"/> name="idle_timeout" type="xs:string" minOccurs="0"/> name="acct_interim_interval" type="xs:string" minOccurs="0"/> name="acct_delay_time" type="xs:string" minOccurs="0"/> name="event_timestamp" type="xs:string" minOccurs="0"/> name="acct_tunnel_connection" type="xs:string" minOccurs="0"/> name="acct_tunnel_packet_lost" type="xs:string" minOccurs="0"/> name="security_group" type="xs:string" minOccurs="0"/> name="cisco_h323_setup_time" type="xs:dateTime" minOccurs="0"/> name="cisco_h323_connect_time" type="xs:dateTime" minOccurs="0"/> name="cisco_h323_disconnect_time" type="xs:dateTime" minOccurs="0"/> name="framed_protocol" type="xs:string" minOccurs="0"/> name="started" type="xs:anyType" minOccurs="0"/> name="stopped" type="xs:anyType" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-16 OL-26134-01 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <xs:element name="ckpt_id" type="xs:long" minOccurs="0"/> <xs:element name="type" type="xs:long" minOccurs="0"/> <xs:element name="nad_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> <xs:element name="vlan" type="xs:string" minOccurs="0"/> <xs:element name="dacl" type="xs:string" minOccurs="0"/> <xs:element name="authentication_type" type="xs:string" minOccurs="0"/> <xs:element name="interface_name" type="xs:string" minOccurs="0"/> <xs:element name="reason" type="xs:string" minOccurs="0"/> <xs:element name="endpoint_policy" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Invoking the UserName API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the UserName API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>/<username>): https://acme123/admin/API/mnt/Session/UserName/graham_hancock Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the UserName API Call The following example illustrates the session-related data returned from the list of active sessions when you invoke a UserName API call: This XML file does not appear to have any style information associated with it. The document tree is shown below. <sessionParameters> <passed xsi:type="xs:boolean">true</passed> <failed xsi:type="xs:boolean">false</failed> <user_name>graham_hancock</user_name> <nas_ip_address>10.203.107.161</nas_ip_address> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-17 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <calling_station_id>00:14:BF:5A:0C:03</calling_station_id> <nas_port>50115</nas_port> <identity_group>Profiled</identity_group> <network_device_name>Core-Switch</network_device_name> <acs_server>HAREESH-R6-1-PDP2</acs_server> <authen_protocol>Lookup</authen_protocol> <network_device_groups> Device Type#All Device Types,Location#All Locations </network_device_groups> <access_service>RADIUS</access_service> <auth_acs_timestamp>2010-12-15T02:11:12.359Z</auth_acs_timestamp> <authentication_method>mab</authentication_method> <execution_steps> 11001,11017,11027,15008,15048,15004,15041,15004,15013,24209,24211,22037,15036,15048,15048, 15004,15016,11022,11002 </execution_steps> <audit_session_id>0ACB6BA1000000351BBFBF8B</audit_session_id> <nas_port_id>GigabitEthernet1/0/15</nas_port_id> <nac_policy_compliance>Pending</nac_policy_compliance> <auth_id>1291240762077361</auth_id> <auth_acsview_timestamp>2010-12-15T02:11:12.360Z</auth_acsview_timestamp> <message_code>5200</message_code> <acs_session_id>HAREESH-R6-1-PDP2/81148292/681</acs_session_id> <service_selection_policy>MAB</service_selection_policy> <identity_store>Internal Hosts</identity_store> <response> {UserName=graham_hancock; User-Name=graham_hancock; State=ReauthSession:0ACB6BA1000000351BBFBF8B; Class=CACS:0ACB6BA1000000351BBFBF8B:HAREESH-R6-1-PDP2/81148292/681; Termination-Action=RADIUS-Request; cisco-av-pair=url-redirect-acl=ACL-WEBAUTH-REDIRECT; cisco-av-pair=url-redirect=https://HAREESH-R6-1-PDP2.cisco.com:8443/guestportal/gateway?se ssionId=0ACB6BA1000000351BBFBF8B&action=cwa; cisco-av-pair=ACS:CiscoSecure-Defined-ACL=#ACSACL#-IP-ACL-DENY-4ced8390; } </response> <service_type>Call Check</service_type> <use_case>Host Lookup</use_case> <cisco_av_pair>audit-session-id=0ACB6BA1000000351BBFBF8B</cisco_av_pair> <acs_username>graham_hancock</acs_username> <radius_username>00:14:BF:5A:0C:03</radius_username> <selected_identity_store>Internal Hosts</selected_identity_store> <authentication_identity_store>Internal Hosts</authentication_identity_store> <identity_policy_matched_rule>Default</identity_policy_matched_rule> <nas_port_type>Ethernet</nas_port_type> <selected_azn_profiles>CWA</selected_azn_profiles> <other_attributes> ConfigVersionId=44,DestinationIPAddress=10.203.107.162,DestinationPort=1812,Protocol=Radiu s,Framed-MTU=1500,EAP-Key-Name=,CPMSessionID=0ACB6BA1000000351BBFBF8B,CPMSessionID=0ACB6BA 1000000351BBFBF8B,EndPointMACAddress=00-14-BF-5A-0C-03,HostIdentityGroup=Endpoint Identity Groups:Profiled,Device Type=Device Type#All Device Types,Location=Location#All Locations,Model Name=Unknown,Software Version=Unknown,Device IP Address=10.203.107.161,Called-Station-ID=04:FE:7F:7F:C0:8F </other_attributes> <response_time>77</response_time> <acct_id>1291240762077386</acct_id> <acct_acs_timestamp>2010-12-15T02:12:30.779Z</acct_acs_timestamp> <acct_acsview_timestamp>2010-12-15T02:12:30.780Z</acct_acsview_timestamp> <acct_session_id>00000038</acct_session_id> <acct_status_type>Interim-Update</acct_status_type> <acct_session_time>78</acct_session_time> <acct_input_octets>13742</acct_input_octets> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-18 OL-26134-01 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <acct_output_octets>6277</acct_output_octets> <acct_input_packets>108</acct_input_packets> <acct_output_packets>66</acct_output_packets> <acct_class> CACS:0ACB6BA1000000351BBFBF8B:HAREESH-R6-1-PDP2/81148292/681 </acct_class> <acct_delay_time>0</acct_delay_time> <started xsi:type="xs:boolean">false</started> <stopped xsi:type="xs:boolean">false</stopped> </sessionParameters> NAS IP Address Session Search You can use the IPAddress API call to retrieve data for a specified NAS IP address from a current session. This API will list a variety of session-related information drawn from node database tables. IPAddress API Output Schema This sample schema file is the output of the IPAddress API call for retrieving a specified NAS IP address from the current active sessions: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="sessionParameters" type="restsdStatus"/> <xs:complexType <xs:sequence> <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element name="restsdStatus"> name="passed" type="xs:anyType" minOccurs="0"/> name="failed" type="xs:anyType" minOccurs="0"/> name="user_name" type="xs:string" minOccurs="0"/> name="nas_ip_address" type="xs:string" minOccurs="0"/> name="failure_reason" type="xs:string" minOccurs="0"/> name="calling_station_id" type="xs:string" minOccurs="0"/> name="nas_port" type="xs:string" minOccurs="0"/> name="identity_group" type="xs:string" minOccurs="0"/> name="network_device_name" type="xs:string" minOccurs="0"/> name="acs_server" type="xs:string" minOccurs="0"/> name="authen_protocol" type="xs:string" minOccurs="0"/> name="framed_ip_address" type="xs:string" minOccurs="0"/> name="network_device_groups" type="xs:string" minOccurs="0"/> name="access_service" type="xs:string" minOccurs="0"/> name="auth_acs_timestamp" type="xs:dateTime" minOccurs="0"/> name="authentication_method" type="xs:string" minOccurs="0"/> name="execution_steps" type="xs:string" minOccurs="0"/> name="radius_response" type="xs:string" minOccurs="0"/> name="audit_session_id" type="xs:string" minOccurs="0"/> name="nas_identifier" type="xs:string" minOccurs="0"/> name="nas_port_id" type="xs:string" minOccurs="0"/> name="nac_policy_compliance" type="xs:string" minOccurs="0"/> name="auth_id" type="xs:long" minOccurs="0"/> name="auth_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="message_code" type="xs:string" minOccurs="0"/> name="acs_session_id" type="xs:string" minOccurs="0"/> name="service_selection_policy" type="xs:string" minOccurs="0"/> name="authorization_policy" type="xs:string" minOccurs="0"/> name="identity_store" type="xs:string" minOccurs="0"/> name="response" type="xs:string" minOccurs="0"/> name="service_type" type="xs:string" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-19 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element <xs:element name="cts_security_group" type="xs:string" minOccurs="0"/> name="use_case" type="xs:string" minOccurs="0"/> name="cisco_av_pair" type="xs:string" minOccurs="0"/> name="ad_domain" type="xs:string" minOccurs="0"/> name="acs_username" type="xs:string" minOccurs="0"/> name="radius_username" type="xs:string" minOccurs="0"/> name="nac_role" type="xs:string" minOccurs="0"/> name="nac_username" type="xs:string" minOccurs="0"/> name="nac_posture_token" type="xs:string" minOccurs="0"/> name="nac_radius_is_user_auth" type="xs:string" minOccurs="0"/> name="selected_posture_server" type="xs:string" minOccurs="0"/> name="selected_identity_store" type="xs:string" minOccurs="0"/> name="authentication_identity_store" type="xs:string" minOccurs="0"/> name="azn_exp_pol_matched_rule" type="xs:string" minOccurs="0"/> name="ext_pol_server_matched_rule" type="xs:string" minOccurs="0"/> name="grp_mapping_pol_matched_rule" type="xs:string" minOccurs="0"/> name="identity_policy_matched_rule" type="xs:string" minOccurs="0"/> name="nas_port_type" type="xs:string" minOccurs="0"/> name="query_identity_stores" type="xs:string" minOccurs="0"/> name="selected_azn_profiles" type="xs:string" minOccurs="0"/> name="sel_exp_azn_profiles" type="xs:string" minOccurs="0"/> name="selected_query_identity_stores" type="xs:string" minOccurs="0"/> name="eap_tunnel" type="xs:string" minOccurs="0"/> name="tunnel_details" type="xs:string" minOccurs="0"/> name="cisco_h323_attributes" type="xs:string" minOccurs="0"/> name="cisco_ssg_attributes" type="xs:string" minOccurs="0"/> name="other_attributes" type="xs:string" minOccurs="0"/> name="response_time" type="xs:long" minOccurs="0"/> name="nad_failure" type="xs:anyType" minOccurs="0"/> name="destination_ip_address" type="xs:string" minOccurs="0"/> name="acct_id" type="xs:long" minOccurs="0"/> name="acct_acs_timestamp" type="xs:dateTime" minOccurs="0"/> name="acct_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="acct_session_id" type="xs:string" minOccurs="0"/> name="acct_status_type" type="xs:string" minOccurs="0"/> name="acct_session_time" type="xs:long" minOccurs="0"/> name="acct_input_octets" type="xs:string" minOccurs="0"/> name="acct_output_octets" type="xs:string" minOccurs="0"/> name="acct_input_packets" type="xs:long" minOccurs="0"/> name="acct_output_packets" type="xs:long" minOccurs="0"/> name="acct_class" type="xs:string" minOccurs="0"/> name="acct_terminate_cause" type="xs:string" minOccurs="0"/> name="acct_multi_session_id" type="xs:string" minOccurs="0"/> name="acct_authentic" type="xs:string" minOccurs="0"/> name="termination_action" type="xs:string" minOccurs="0"/> name="session_timeout" type="xs:string" minOccurs="0"/> name="idle_timeout" type="xs:string" minOccurs="0"/> name="acct_interim_interval" type="xs:string" minOccurs="0"/> name="acct_delay_time" type="xs:string" minOccurs="0"/> name="event_timestamp" type="xs:string" minOccurs="0"/> name="acct_tunnel_connection" type="xs:string" minOccurs="0"/> name="acct_tunnel_packet_lost" type="xs:string" minOccurs="0"/> name="security_group" type="xs:string" minOccurs="0"/> name="cisco_h323_setup_time" type="xs:dateTime" minOccurs="0"/> name="cisco_h323_connect_time" type="xs:dateTime" minOccurs="0"/> name="cisco_h323_disconnect_time" type="xs:dateTime" minOccurs="0"/> name="framed_protocol" type="xs:string" minOccurs="0"/> name="started" type="xs:anyType" minOccurs="0"/> name="stopped" type="xs:anyType" minOccurs="0"/> name="ckpt_id" type="xs:long" minOccurs="0"/> name="type" type="xs:long" minOccurs="0"/> name="nad_acsview_timestamp" type="xs:dateTime" minOccurs="0"/> name="vlan" type="xs:string" minOccurs="0"/> name="dacl" type="xs:string" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-20 OL-26134-01 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <xs:element name="authentication_type" type="xs:string" minOccurs="0"/> <xs:element name="interface_name" type="xs:string" minOccurs="0"/> <xs:element name="reason" type="xs:string" minOccurs="0"/> <xs:element name="endpoint_policy" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Invoking the NAS IPAddress API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the IPAddress API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>/<nasipaddress>): https://acme123/admin/API/mnt/Session/IPAddress/10.10.10.10 Step 5 Note Make sure that you specify the NAS IP address using the xxx.xxx.xxx.xxx format. Note You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the IPAddress API Call The following example illustrates the session-related data returned from the list of active sessions when you invoke an IPAddress API call: This XML file does not appear to have any style information associated with it. The document tree is shown below. <sessionParameters> <passed xsi:type="xs:boolean">true</passed> <failed xsi:type="xs:boolean">false</failed> <user_name>ipepvpnuser</user_name> <nas_ip_address>10.10.10.10</nas_ip_address> <calling_station_id>172.23.130.90</calling_station_id> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-21 Chapter 2 Session Management Query APIs Detailed Session Attribute API Calls <nas_port>1015</nas_port> <identity_group>iPEP-VPN-Group</identity_group> <network_device_name>iPEP-HA-Routed</network_device_name> <acs_server>HAREESH-R6-1-PDP2</acs_server> <authen_protocol>PAP_ASCII</authen_protocol> <network_device_groups> Device Type#All Device Types,Location#All Locations </network_device_groups> <access_service>RADIUS</access_service> <auth_acs_timestamp>2010-12-15T19:57:29.885Z</auth_acs_timestamp> <authentication_method>PAP_ASCII</authentication_method> <execution_steps> 11001,11017,15008,15048,15048,15004,15041,15004,15013,24210,24212,22037,15036,15048,15048, 15004,15016,11002 </execution_steps> <audit_session_id>0acb6be4000000044D091DA9</audit_session_id> <nac_policy_compliance>NotApplicable</nac_policy_compliance> <auth_id>1291240762083580</auth_id> <auth_acsview_timestamp>2010-12-15T19:57:29.887Z</auth_acsview_timestamp> <message_code>5200</message_code> <acs_session_id>HAREESH-R6-1-PDP2/81148292/693</acs_session_id> <service_selection_policy>iPEP-VPN</service_selection_policy> <identity_store>Internal Users</identity_store> <response> {User-Name=ipepvpnuser; State=ReauthSession:0acb6be4000000044D091DA9; Class=CACS:0acb6be4000000044D091DA9:HAREESH-R6-1-PDP2/81148292/693; Termination-Action=RADIUS-Request; } </response> <service_type>Framed</service_type> <cisco_av_pair> audit-session-id=0acb6be4000000044D091DA9,ipep-proxy=true </cisco_av_pair> <acs_username>ipepvpnuser</acs_username> <radius_username>ipepvpnuser</radius_username> <selected_identity_store>Internal Users</selected_identity_store> <authentication_identity_store>Internal Users</authentication_identity_store> <identity_policy_matched_rule>Default</identity_policy_matched_rule> <nas_port_type>Virtual</nas_port_type> <selected_azn_profiles>iPEP-Unknown-Auth-Profile</selected_azn_profiles> <tunnel_details>Tunnel-Client-Endpoint=(tag=0) 172.23.130.90</tunnel_details> <other_attributes> ConfigVersionId=44,DestinationIPAddress=10.203.107.162,DestinationPort=1812,Protocol=Radiu s,Framed-Protocol=PPP,Proxy-State=Cisco Secure ACS9e733142-070a-11e0-c000-000000000000-2906094480-3222,CPMSessionID=0acb6be4000000044D091 DA9,CPMSessionID=0acb6be4000000044D091DA9,Device Type=Device Type#All Device Types,Location=Location#All Locations,Model Name=Unknown,Software Version=Unknown,Device IP Address=10.203.107.228,Called-Station-ID=172.23.130.94 </other_attributes> <response_time>20</response_time> <acct_id>1291240762083582</acct_id> <acct_acs_timestamp>2010-12-15T19:57:30.281Z</acct_acs_timestamp> <acct_acsview_timestamp>2010-12-15T19:57:30.283Z</acct_acsview_timestamp> <acct_session_id>F1800007</acct_session_id> <acct_status_type>Start</acct_status_type> <acct_class> CACS:0acb6be4000000044D091DA9:HAREESH-R6-1-PDP2/81148292/693 </acct_class> <acct_delay_time>0</acct_delay_time> Cisco Identity Services Engine API Reference Guide, Release 1.2 2-22 OL-26134-01 Chapter 2 Session Management Query APIs Stale Sessions <framed_protocol>PPP</framed_protocol> <started xsi:type="xs:boolean">true</started> <stopped xsi:type="xs:boolean">false</stopped> </sessionParameters> Stale Sessions Some devices, such as Wireless Lan Controllers (WLCs), may allow stale sessions to linger. In such cases, you can use the HTTP DELETE API call to manually delete the inactive sessions. To do so, use cURL, a free 3rd-party command line tool for transferring data with URL (HTTP, HTTPS) syntax. ISE no longer tracks those sessions. This is to mitigate the case when ISE lost connectivity to the network for an extended period of time, and missed a pile of accounting stops from the WLC/NAD. You can clear such stale information from ISE using this API. Note GNU Wget, the free utility for retrieving files using HTTP and HTTPS, does not support the HTTP DELETE API call. Removing Stale Sessions Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. Note Step 4 API calls are case-sensitive, and must be entered carefully. The variable <mntnode> represents a Cisco Monitoring ISE node. To manually delete a stale session for a MAC address, issue the following API call on the command line: curl -X DELETE https://<mntnode>/admin/API/mnt/Session/Delete/MACAddress/<madaddress> Step 5 To manually delete a stale session for a session ID, issue the following API call on the command line: curl -X DELETE https://<mntnode>/admin/API/mnt/Session/Delete/SessionID/<sid#> Step 6 To manually delete all sessions on the Monitoring node, issue the following API call on the command line: curl -X DELETE https://<mntnode>/admin/API/mnt/Session/Delete/All Related Topics • Verifying a Monitoring Node, page 1-2 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 2-23 Chapter 2 Session Management Query APIs Stale Sessions Cisco Identity Services Engine API Reference Guide, Release 1.2 2-24 OL-26134-01 CH A P T E R 3 Query APIs for Troubleshooting This chapter provides examples and describes how to use the individual Cisco Prime Network Control System (NCS) REST API calls. Cisco Prime NCS API Calls The Cisco Prime NCS API calls provide a mechanism for retrieving key troubleshooting information about the target Cisco Monitoring ISE node sessions that include node version and type, failure reasons, authentication status, and accounting status. Troubleshooting Cisco ISE using the Query API Calls Cisco Prime NCS troubleshooting API calls send status requests to the target Cisco Monitoring ISE node in your Cisco ISE deployment and retrieve the following diagnostic-related information: • Node version and type (using the Version API call) • Failure reasons (using the FailureReasons API call) • Authentication status (using the AuthStatus API call) • Accounting status (using the AcctStatus API call) Node Version and Type API Call You can use the Version API call to test the REST programmatic interface (PI) service and the credentials of each node. This section provides a schema file output example, a procedure for requesting the version of the Cisco ISE software and the node type by invoking this API call, and a sample of the node version and type that is returned after this API call is issued. The node types can be any of the following: • STANDALONE_MNT_NODE = 0 • ACTIVE_MNT_NODE= 1 • BACKUP_MNT_NODE = 2 • NOT_AN_MNT_NODE = 3 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-1 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls Version API Output Schema This sample schema file is the output of the Version API call after sending it to the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="product" type="product"/> <xs:complexType name="product"> <xs:sequence> <xs:element name="version" type="xs:string" minOccurs="0"/> <xs:element name="type_of_node" type="xs:int"/> </xs:sequence> <xs:attribute name="name" type="xs:string"/> </xs:complexType> </xs:schema> Invoking the Version API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. If your login is unsuccessful, click the Problem logging in? link in the Login page and follow the instructions in Step 2. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the Version API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>): https://acme123/admin/API/mnt/Version Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the Version API Call The following example illustrates the data returned when you invoke a Version API call on a target Cisco Monitoring ISE node. This API call returns the following two values for the target node: Cisco Identity Services Engine API Reference Guide, Release 1.2 3-2 OL-26134-01 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls • Node version (this example displays 1.0.3.032). • Type of Cisco Monitoring ISE node (this example displays a “1”, which means an active Cisco Monitoring ISE node). This XML file does not appear to have any style information associated with it. The document tree is shown below. <product name="Cisco Identity Services Engine"> <version>1.0.3.032</version> <type_of_node>1</type_of_node> </product> Failure Reasons API Call You can use the FailureReasons API call to return a list of failure reasons returned in the authentication status check done on the target node. This section provides a schema file output example, a procedure for requesting a list of all failure reasons logged by the Cisco Monitoring ISE node by invoking this API call, and a sample of the failure reasons returned after this API call is issued. Each failure reason that is returned consists of the following elements shown in Table 3-1. Note For details about using the Cisco ISE Failure Reasons Editor to access the complete list of failure reasons, see Cisco ISE Failure Reasons Report, page A-1. Table 3-1 Note Product Documentation for Cisco Identity Services Engine Failure Reason Elements Example Failure reason ID <failureReason id="11011"> Code <11011 RADIUS listener failed> Cause <Could not open one or more of the ports used to receive RADIUS requests> Resolution <Ensure that the ports 1812, 1813, 1645 and 1646 are not being used by another process on the system> You can also check for failure reason reports using the Cisco ISE user interface (click Monitor > Reports > Catalog > Failure Reasons), which will display failure reason reports. FailureReasons API Output Schema This sample schema file is the output of the FailureReasons API call after sending the request to a target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="failureReasonList" type="failureReasonList"/> <xs:complexType name="failureReasonList"> <xs:sequence> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-3 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls <xs:element name="failureReason" type="failureReason" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="failureReason"> <xs:sequence> <xs:element name="code" type="xs:string" minOccurs="0"/> <xs:element name="cause" type="xs:string" minOccurs="0"/> <xs:element name="resolution" type="xs:string" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:string"/> </xs:complexType> </xs:schema> Invoking the FailureReasons API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. If your login is unsuccessful, click the Problem logging in? link in the Login page and follow the instructions in Step 2. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the FailureReasons API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>): https://acme123/admin/API/mnt/FailureReasons Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the FailureReasons API Call The following example illustrates the data returned when you invoke a FailureReasons API call on a target Cisco Monitoring ISE node. This API call returns a list of failure reasons from the target node, and each failure reason is defined by a failure ID, a failure code, a cause, and a resolution (if known). Cisco Identity Services Engine API Reference Guide, Release 1.2 3-4 OL-26134-01 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls Note The following FailureReasons API call example only displays a small sample of data that can be returned. This XML file does not appear to have any style information associated with it. The document tree is shown below. <failureReasonList> <failureReason id="100001"> <code> 100001 AUTHMGR-5-FAIL Authorization failed for client </code> <cause>This may or may not be indicating a violation</cause> <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> <failureReason id="100002"> <code> 100002 AUTHMGR-5-SECURITY_VIOLATION Security violation on the interface </code> <cause>This may or may not be indicating a violation</cause> <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> <failureReason id="100003"> <code> 100003 AUTHMGR-5-UNAUTHORIZED Interface unauthorized </code> <cause>This may or may not be indicating a violation</cause> <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> <failureReason id="100004"> <code> 100004 DOT1X-5-FAIL Authentication failed for client </code> <cause>This may or may not be indicating a violation</cause> <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> <failureReason id="100005"> <code>100005 MAB-5-FAIL Authentication failed for client</code> <cause>This may or may not be indicating a violation</cause> - Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-5 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> <failureReason id="100006"> <code> 100006 RADIUS-4-RADIUS_DEAD RADIUS server is not responding </code> <cause>This may or may not be indicating a violation</cause> <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> <failureReason id="100007"> <code> 100007 EPM-6-POLICY_APP_FAILURE Interface ACL not configured </code> <cause>This may or may not be indicating a violation</cause> <resolution> Please review and resolve according to your organization's policy </resolution> </failureReason> Related Topics • Verifying a Monitoring Node, page 1-2 • Appendix A, “Cisco ISE Failure Reasons Report” Authentication Status API Call You can use the AuthStatus API call to check the authentication status of sessions on the target node. The query associated with this API call requires at least one MAC address to be searched for a match, with a user-configurable limit of the most recent records for the specified MAC address returned. This section provides a schema file output example, a procedure for sending a a request to search for session authentication status on a target Monitoring mode by invoking this API call, and a sample of the data returned after this API call is issued. The AuthStatus API call lets you configure the following search-related parameters: • Duration—Defines the number of seconds in which an attempt is made to search and retrieve the authentication status records associated with the designated MAC address. Valid user-configurable values range from 1 to 864000 seconds (10 days). If you enter a value of 0 seconds, this specifies a default duration of 10 days. • Records—Defines the number of session records to be searched per MAC address. Valid user-configurable values range from 1 to 500 records. If you enter 0, this specifies a default setting of 200 records. Note If you specify the value 0 for both the duration and the records parameters, this API call returns only the very latest authentication session record associated with the designated MAC address(es). Cisco Identity Services Engine API Reference Guide, Release 1.2 3-6 OL-26134-01 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls Here is an example of the generic form of a URL with the Duration and Records attributes: https://10.10.10.10/admin/API/mnt/AuthStatus/MACAddress/01:23:45:67:89:98/900000/2/All • Attributes—Defines the number of attributes in the authentication status table that are returned from an authentication status search using the AuthStatus API call. Valid values include 0 (the default), All, or user_name+acs_timestamp (see the AuthStatus schema example, AcctStatus API Output Schema, page 3-12). – If you enter “0”, the attributes defined in Table 3-2 are returned. These are listed in the restAuthStatus section of the output schema. – If you enter “All”, a fuller set of attributes are returned. These are listed in the fullRESTAuthStatus section of the output schema. – If you enter the values listed in the schema for user_name+acs_timestamp, only those attributes are returned. The user_name and acs_timestamp attributes are listed in the restAuthStatus section of the output schema. Table 3-2 Authentication Status Table Attributes Attribute Description name=”passed” or name=”failed” Authentication status results: • Passed • Failed name=”user_name” User name name=”nas_ip_address” IP address/hostname for the network access device name=”failure_reason” Reason for session authentication failure name=”calling_station_id” Source IP address name=”nas_port” Network access server port name=”identity_group” A logical group consisting of related users and hosts name=”network_device_name” Name of the network device name=”acs_server” Name of the Cisco ISE appliance name=”eap_authentication” Extensible Authentication Protocol (EAP) method used for authentication request name=”framed_ip_address” Address configured for a specific user network_device_groups” A logical group consisting of related network devices name=”access_service” Applied access service name=”acs_timestamp” Time stamp that is associated with the Cisco ISE authentication request name=”authentication_method” Identifies the method used in authentication name=”execution_steps” List of message codes for each diagnostic message logged while processing the request name=”radius_response” Type of RADIUS response (for example, VLAN or ACL) name=”audit_session_id” ID of the authentication session name=”nas_identifier” A network access server (NAS) associated with a specific resource name=”nas_port_id” ID of the NAS port used Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-7 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls Table 3-2 Authentication Status Table Attributes (continued) Attribute Description name=”nac_policy_compliance” Reflects Posture status (compliant or non-compliant) name=”selected_azn_profiles” Identifies the profile used in authorization name=”service_type” Indicates a framed user name=”eap_tunnel” Tunnel or outer method used for EAP authentication name=”message_code” Identifier of the audit message that defines the processed request result name=”destination_ip_address” Identifies the destination IP address AuthStatus API Output Schema This sample schema file is the output of the AuthStatus API call after sending it to a specified session on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="authStatusOutputList" type="fullRESTAuthStatusOutputList"/> <xs:complexType name="fullRESTAuthStatusOutputList"> <xs:sequence> <xs:element name="authStatusList" type="fullRESTAuthStatusList" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="fullRESTAuthStatusList"> <xs:sequence> <xs:element name="authStatusElements" type="fullRESTAuthStatus" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="key" type="xs:string"/> </xs:complexType> <xs:complexType name="fullRESTAuthStatus"> <xs:complexContent> <xs:extension base="restAuthStatus"> <xs:sequence> <xs:element name="id" type="xs:long" minOccurs="0"/> <xs:element name="acsview_timestamp" type="xs:dateTime" minOccurs="0"/> <xs:element name="acs_session_id" type="xs:string" minOccurs="0"/> <xs:element name="service_selection_policy" type="xs:string" minOccurs="0"/> <xs:element name="authorization_policy" type="xs:string" minOccurs="0"/> <xs:element name="identity_store" type="xs:string" minOccurs="0"/> <xs:element name="response" type="xs:string" minOccurs="0"/> <xs:element name="cts_security_group" type="xs:string" minOccurs="0"/> <xs:element name="use_case" type="xs:string" minOccurs="0"/> <xs:element name="cisco_av_pair" type="xs:string" minOccurs="0"/> <xs:element name="ad_domain" type="xs:string" minOccurs="0"/> <xs:element name="acs_username" type="xs:string" minOccurs="0"/> <xs:element name="radius_username" type="xs:string" minOccurs="0"/> <xs:element name="nac_role" type="xs:string" minOccurs="0"/> <xs:element name="nac_username" type="xs:string" minOccurs="0"/> <xs:element name="nac_posture_token" type="xs:string" minOccurs="0"/> <xs:element name="nac_radius_is_user_auth" type="xs:string" minOccurs="0"/> <xs:element name="selected_posture_server" type="xs:string" minOccurs="0"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 3-8 OL-26134-01 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls <xs:element name="selected_identity_store" type="xs:string" minOccurs="0"/> <xs:element name="authentication_identity_store" type="xs:string" minOccurs="0"/> <xs:element name="azn_exp_pol_matched_rule" type="xs:string" minOccurs="0"/> <xs:element name="ext_pol_server_matched_rule" type="xs:string" minOccurs="0"/> <xs:element name="grp_mapping_pol_matched_rule" type="xs:string" minOccurs="0"/> <xs:element name="identity_policy_matched_rule" type="xs:string" minOccurs="0"/> <xs:element name="nas_port_type" type="xs:string" minOccurs="0"/> <xs:element name="query_identity_stores" type="xs:string" minOccurs="0"/> <xs:element name="sel_exp_azn_profiles" type="xs:string" minOccurs="0"/> <xs:element name="selected_query_identity_stores" type="xs:string" minOccurs="0"/> <xs:element name="tunnel_details" type="xs:string" minOccurs="0"/> <xs:element name="cisco_h323_attributes" type="xs:string" minOccurs="0"/> <xs:element name="cisco_ssg_attributes" type="xs:string" minOccurs="0"/> <xs:element name="other_attributes" type="xs:string" minOccurs="0"/> <xs:element name="response_time" type="xs:long" minOccurs="0"/> <xs:element name="nad_failure" type="xs:anyType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="restAuthStatus"> <xs:sequence> <xs:element name="passed" type="xs:anyType" minOccurs="0"/> <xs:element name="failed" type="xs:anyType" minOccurs="0"/> <xs:element name="user_name" type="xs:string" minOccurs="0"/> <xs:element name="nas_ip_address" type="xs:string" minOccurs="0"/> <xs:element name="failure_reason" type="xs:string" minOccurs="0"/> <xs:element name="calling_station_id" type="xs:string" minOccurs="0"/> <xs:element name="nas_port" type="xs:string" minOccurs="0"/> <xs:element name="identity_group" type="xs:string" minOccurs="0"/> <xs:element name="network_device_name" type="xs:string" minOccurs="0"/> <xs:element name="acs_server" type="xs:string" minOccurs="0"/> <xs:element name="eap_authentication" type="xs:string" minOccurs="0"/> <xs:element name="framed_ip_address" type="xs:string" minOccurs="0"/> <xs:element name="network_device_groups" type="xs:string" minOccurs="0"/> <xs:element name="access_service" type="xs:string" minOccurs="0"/> <xs:element name="acs_timestamp" type="xs:dateTime" minOccurs="0"/> <xs:element name="authentication_method" type="xs:string" minOccurs="0"/> <xs:element name="execution_steps" type="xs:string" minOccurs="0"/> <xs:element name="radius_response" type="xs:string" minOccurs="0"/> <xs:element name="audit_session_id" type="xs:string" minOccurs="0"/> <xs:element name="nas_identifier" type="xs:string" minOccurs="0"/> <xs:element name="nas_port_id" type="xs:string" minOccurs="0"/> <xs:element name="nac_policy_compliance" type="xs:string" minOccurs="0"/> <xs:element name="selected_azn_profiles" type="xs:string" minOccurs="0"/> <xs:element name="service_type" type="xs:string" minOccurs="0"/> <xs:element name="eap_tunnel" type="xs:string" minOccurs="0"/> <xs:element name="message_code" type="xs:string" minOccurs="0"/> <xs:element name="destination_ip_address" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-9 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls Invoking the AuthStatus API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. If your login is unsuccessful, click the Problem logging in? link in the Login page and follow the instructions in Step 2. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the AuthStatus API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>/MACAddress/ <macaddress>/<seconds>/<numberofrecordspermacaddress>/All): https://acme123/admin/API/mnt/AuthStatus/MACAddress/00:50:56:10:13:02/120/100/Al l Note Step 5 The REST API calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the AuthStatus API Call The following example illustrates the data returned when you invoke a AuthStatus API call on a target Cisco Monitoring ISE node: This XML file does not appear to have any style information associated with it. The document tree is shown below. <authStatusOutputList> <authStatusList key="00:0C:29:46:F3:B8"><authStatusElements> <passed xsi:type="xs:boolean">true</passed> <failed xsi:type="xs:boolean">false</failed> <user_name>suser77</user_name> <nas_ip_address>10.77.152.209</nas_ip_address> <calling_station_id>00:0C:29:46:F3:B8</calling_station_id> <identity_group>User Identity Groups:Guest</identity_group> <acs_server>guest-240</acs_server> <acs_timestamp>2012-10-05T10:50:56.515Z</acs_timestamp> <execution_steps>5231</execution_steps> <message_code>5231</message_code> <id>1349422277270561</id> Cisco Identity Services Engine API Reference Guide, Release 1.2 3-10 OL-26134-01 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls <acsview_timestamp>2012-10-05T10:50:56.517Z</acsview_timestamp> <identity_store>Internal Users</identity_store> <response_time>146</response_time> <other_attributes>ConfigVersionId=81,EndPointMACAddress=00-0C-29-46-F3-B8,PortalName=Defau ltGuestPortal, CPMSessionID=0A4D98D1000001F26F0C04D9,CiscoAVPair=</other_attributes> </authStatusElements> <authStatusElements> <passed xsi:type="xs:boolean">true</passed> <failed xsi:type="xs:boolean">false</failed> <user_name>00:0C:29:46:F3:B8</user_name> <nas_ip_address>10.77.152.209</nas_ip_address> <calling_station_id>00:0C:29:46:F3:B8</calling_station_id> <identity_group>Guest_IDG</identity_group> <network_device_name>switch</network_device_name> <acs_server>guest-240</acs_server> <authentication_method>mab</authentication_method> <authentication_protocol>Lookup</authentication_protocol> <acs_timestamp>2012-10-05T10:49:47.915Z</acs_timestamp> <execution_steps>11001,11017,11027,15049,15008,15048,15048,15004,15041,15006,15013,24209,2 421 1,22037,15036,15048,15004,15016,11022,11002</execution_steps> <response>{UserName =00:0C:29:46:F3:B8; User-Name=00-0C-29-46-F3-B8; State=ReauthSession:0A4D98D1000001F26F0C04D9; Class=CACS:0A4D98D1000001F26F0C04D9:guest-240/138796808/76; Termination-Action=RADIUS-Request; Tunnel-Type=(tag=1) VLAN; Tunnel-Medium-Type=(tag=1) 802; Tunnel-Private-Group-ID=(tag=1) 2; cisco-av-pair=url-redirect-acl=ACL-WEBAUTH-REDIRECT; cisco-av-pair=url-redirect=https://guest-240.cisco.com:8443/guestportal/gateway? sessionId=0A4D98D1000001F26F0C04D9&action=cwa; cisco-av-pair=ACS:CiscoSecure-Defined-ACL=#ACSACL#-IP-pre-posture-506e980a; cisco-av-pair=profile-name=WindowsXP-Workstation;}</response ><audit_session_id>0A4D98D1000001F26F0C04D9</audit_session_id><nas_po rt_id>GigabitEthernet1/0/17</nas_port_id><posture_status>Pending</posture_status> <selected_azn_profiles>CWA_Redirect</selected_azn_profiles> <service_type>Call Check</service_type> <message_code>5200</message_code> <nac_policy_compliance>Pending</nac_policy_compliance> <id>1349422277270556</id> <acsview_timestamp>2012-10-05T10:49:47.915Z</acsview_timestamp> <identity_store>Internal Endpoints</identity_store> <response_time>13</response_time> <other_attributes>ConfigVersionId=81,DestinationPort=1812,Protocol=Radius,AuthorizationPol icyMatchedRule=CWA_Redirect, NAS-Port=50117,Framed-MTU=1500,NAS-Port-Type=Ethernet,EAP-Key-N ame=,cisco-nas-port=GigabitEthernet1/0/17,AcsSessionID=guest-240/138796808/76,Us eCase=Host Lookup,SelectedAuthenticationIdentityStores=Internal Endpoints,ServiceSelectionMatchedRule=MAB,IdentityPolicyMatchedRule=Default,CPMS essionID=0A4D98D1000001F26F0C04D9,EndPointMACAddress=00-0C-29-46-F3-B8,EndPointM atchedProfile=WindowsXP-Workstation,ISEPolicySetName=Default,HostIdentityGroup=E ndpoint Identity Groups:Guest_IDG,Device Type=Device Type#All Device Types,Location=Location#All Locations,Device IP Address=10.77.152.209,Called-Station-ID=00:24:F7:73:9A:91,CiscoAVPair=audit-sess ion-id=0A4D98D1000001F26F0C04D9</other_attributes> </authStatusElements> </authStatusList> </authStatusOutputList> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-11 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls Account Status API Call You can use the AcctStatus API call to retrieve the latest device and session account information on the target node. This section provides a schema file output example, a procedure for sending a request for the latest device and session information by invoking this API call, and a sample of the data returned after this API call is issued. The AcctStatus API call lets you configure a time-related parameter: • Duration—Defines the number of seconds in which an attempt is made to search and retrieve the latest account device records associated with the designated MAC address. Valid user-configurable values range from 1 to 432000 seconds (5 days). For example, – If you enter a value of 2400 seconds (40 minutes), this means that you want the latest account device records for the designated MAC address that are available in the past 40 minutes. – If you enter a value of 0 seconds, this specifies a default duration of 15 minutes (900 seconds). This means that you want the latest account device records for the designated MAC address that are available within this time period. The AcctList API call provides the following account status data fields as API outputs (see Table 3-3): Table 3-3 Accounting Status Data Fields Data Field Description MAC address MAC address of the client audit-session-id Authentication session ID Packets in Packets received count total Packets out Packets transmitted count total Bytes in Bytes received count total Bytes out Bytes transmitted count total Session time Duration of current sessions AcctStatus API Output Schema This sample schema file is the output of the AcctStatus API call after sending it to a specified session on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="acctStatusOutputList" type="restAcctStatusOutputList"/> <xs:complexType name="restAcctStatusOutputList"> <xs:sequence> <xs:element name="acctStatusList" type="restAcctStatusList" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="restAcctStatusList"> <xs:sequence> <xs:element name="acctStatusElements" type="restAcctStatus" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="macAddress" type="xs:string"/> <xs:attribute name="username" type="xs:string"/> </xs:complexType> Cisco Identity Services Engine API Reference Guide, Release 1.2 3-12 OL-26134-01 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls <xs:complexType name="restAcctStatus"> <xs:sequence> <xs:element name="calling_station_id" type="xs:string" minOccurs="0"/> <xs:element name="audit_session_id" type="xs:string" minOccurs="0"/> <xs:element name="paks_in" type="xs:long" minOccurs="0"/> <xs:element name="paks_out" type="xs:long" minOccurs="0"/> <xs:element name="bytes_in" type="xs:long" minOccurs="0"/> <xs:element name="bytes_out" type="xs:long" minOccurs="0"/> <xs:element name="session_time" type="xs:long" minOccurs="0"/> <xs:element name="username" type="xs:string" minOccurs="0"/> <xs:element name="server" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Invoking the AcctStatus API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. If your login is unsuccessful, click the Problem logging in? link in the Login page and follow the instructions in Step 2. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the AcctStatus API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/<specific-api-call>/MACAddress/<macaddress>/ <durationofcurrenttime>): https://acme123/admin/API/mnt/AcctStatus/MACAddress/00:26:82:7B:D2:51/1200 Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the AcctStatus API Call The following example illustrates the data returned when you invoke an AcctStatus API call on a target Cisco Monitoring ISE node: Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 3-13 Chapter 3 Query APIs for Troubleshooting Troubleshooting Cisco ISE using the Query API Calls This XML file does not appear to have any style information associated with it. The document tree is shown below. <acctStatusOutputList> <acctStatusList macAddress="00:25:9C:A3:7D:48"> <acctStatusElements> <calling_station_id>00:25:9C:A3:7D:48</calling_station_id> <audit_session_id>0acb6b0b0000000B4D0C0DBD</audit_session_id> <paks_in>0</paks_in> <paks_out>0</paks_out> <bytes_in>0</bytes_in> <bytes_out>0</bytes_out> <session_time>240243</session_time> <server>HAREESH-R6-1-PDP1</server> </acctStatusElements> </acctStatusList> </acctStatusOutputList> Cisco Identity Services Engine API Reference Guide, Release 1.2 3-14 OL-26134-01 CH A P T E R 4 Change of Authorization REST APIs This chapter provides examples and describes how to use the following individual Change of Authorization (CoA) REST API calls that are supported in this release of Cisco Identity Services Engine. Introduction The CoA API calls provide the means for sending session authentication and session disconnect commands to a specified Cisco Monitoring ISE node in your Cisco ISE deployment. CoA Session Management API Calls The CoA session management API calls allow you to send reauthentication and disconnect commands to a specified session on a target Cisco Monitoring ISE node in your Cisco ISE deployment: • Session reauthentication (Reauth) • Session disconnection (Disconnect) Session Reauthentication API Call The Session Reauthentication API Call constitutes the following types: • REAUTH_TYPE_DEFAULT = 0 • REAUTH_TYPE_LAST = 1 • REAUTH_TYPE_RERUN = 2 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 4-1 Chapter 4 Change of Authorization REST APIs CoA Session Management API Calls Reauth API Output Schema This sample schema file is the output of the Reauth API call after sending it to a specified session on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="remoteCoA" type="coAResult"/> <xs:complexType name="coAResult"> <xs:sequence> <xs:element name="results" type="xs:boolean" minOccurs="0"/> </xs:sequence> <xs:attribute name="requestType" type="xs:string"/> </xs:complexType> </xs:schema> Invoking the Reauth API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Step 4 Enter the Reauth API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/CoA/<specific-api-call>/<macaddress>/ <reauthtype>: https://acme123/admin/API/mnt/CoA/Reauth/server12/00:26:82:7B:D2:51 Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Cisco Identity Services Engine API Reference Guide, Release 1.2 4-2 OL-26134-01 Chapter 4 Change of Authorization REST APIs CoA Session Management API Calls Sample Data Returned from the Reauth API Call The following example illustrates the data returned when you invoke a Reauth API call on a target Cisco Monitoring ISE node. Two possible results can be returned from invoking this command: • True indicates that the command was successfully executed. • False means that the command was not executed (due to a variety of conditions). This XML file does not appear to have any style information associated with it. The document tree is shown below. <remoteCoA requestType="reauth"> <results>true</results> </remoteCoA> Session Disconnect API Call The Session Disconnect API call constitutes the following disconnect port option types: • DYNAMIC_AUTHZ_PORT_DEFAULT = 0 • DYNAMIC_AUTHZ_PORT_BOUNCE = 1 • DYNAMIC_AUTHZ_PORT_SHUTDOWN = 2 Disconnect API Output Schema This sample schema file is the output of the Disconnect API call after sending it to a specified session on the target Cisco Monitoring ISE node: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="remoteCoA" type="coAResult"/> <xs:complexType name="coAResult"> <xs:sequence> <xs:element name="results" type="xs:boolean" minOccurs="0"/> </xs:sequence> <xs:attribute name="requestType" type="xs:string"/> </xs:complexType> </xs:schema> Invoking the Disconnect API Call Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter the username and case-sensitive password, that was specified and configured during the initial Cisco ISE setup. Step 3 Click Login or press Enter. For example, when you initially log into a Cisco Monitoring ISE node with the hostname of acme123, this would display the following URL Address field for this node: https://acme123/admin/LoginAction.do#pageId=com_cisco_xmp_web_page_tmpdash Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 4-3 Chapter 4 Change of Authorization REST APIs CoA Session Management API Calls Step 4 Enter the Disconnect API call in the URL Address field of the target node by replacing the “/admin/” component with the API call component (/admin/API/mnt/CoA/<Disconnect>/<serverhostname>/ <macaddress>/<portoptiontype>: https://acme123/admin/API/mnt/CoA/Disconnect/server12/00:26:82:7B:D2:51 Note Step 5 You must carefully enter each API call in the URL Address field of a target node because these calls are case-sensitive. The use of “mnt” in the API call convention represents a Cisco Monitoring ISE node. Press Enter to issue the API call. Related Topics • Verifying a Monitoring Node, page 1-2 Sample Data Returned from the Disconnect API Call The following example illustrates the data returned when you invoke a Disconnect API call on a target Cisco Monitoring ISE node. Two possible results can be returned by invoking this command: • True indicates that the command was successfully executed. • False means that the command was not executed (due to a variety of conditions). This XML file does not appear to have any style information associated with it. The document tree is shown below. <remoteCoA requestType="reauth"> <results>true</results> </remoteCoA> Cisco Identity Services Engine API Reference Guide, Release 1.2 4-4 OL-26134-01 PART 2 Cisco ISE External RESTful Services APIs CH A P T E R 5 Introduction to ERS APIs • Overview, page 5-1 • Supported Cisco ISE Resources, page 5-1 • External RESTful Services API Authentication and Authorization, page 5-2 • Enabling External RESTful Services APIs from the GUI, page 5-2 • External RESTful Services API Status, page 5-3 • Data Validation, page 5-3 • Namespaces, page 5-3 • External RESTful Services SDK, page 5-4 • External RESTful Services Schema File, page 5-4 • External RESTful Service Requests and Responses, page 5-5 • Version Control with External RESTful Services APIs, page 5-7 • Searching and Filtering, page 5-8 • External RESTful Services System Flow, page 5-9 • Hyperlinks, page 5-11 • Bulk Operations, page 5-12 Overview This chapter provides guidelines and examples for using the supported External RESTful Services APIs and related API calls. These calls enable you to perform CRUD (Create, Read, Update, Delete) operations on Cisco ISE resources. Supported Cisco ISE Resources The Cisco ISE External RESTful Services allow you to perform operations on the following types of ISE resources: • End points • End point identity groups • Guest users Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-1 Chapter 5 Introduction to ERS APIs External RESTful Services API Authentication and Authorization • Identity groups • Internal users • Portals • Profiler policies • Network devices • Network device groups • Security groups Full request and response examples are provided in Chapter 7, “External RESTful Services API Operations.”. External RESTful Services API Authentication and Authorization The External RESTful Services APIs are based on HTTPS protocol and REST methodology and uses port 9060. The External RESTful Services APIs support basic authentication. The authentication credentials are encrypted and are part of the request header. The ISE administrator must assign special privileges to a user to perform operations using the External RESTful Services APIs. The ISE administrator can assign the following two roles to perform operations using the External RESTful Services APIs: • External RESTful Services Admin—For full access to all ERS APIs (GET, POST, DELETE, PUT). • External RESTful Services Operator—For Read Only access (GET request only). If you do not have the required permissions and still try to perform operations using the External RESTful Services APIs, you will receive an error response. Related Topics • Creating a New Cisco ISE Administrator • Sponsor Authentication and Authorization, page 6-1 Enabling External RESTful Services APIs from the GUI You must enable the Cisco ISE REST API in order for applications developed for a Cisco ISE REST API to be able to access Cisco ISE. The Cisco REST APIs uses HTTPS port 9060, which is closed by default. If the Cisco ISE REST APIs are not enabled on the Cisco ISE admin server, the client application will receive a time-out error from the server for any Guest REST API request. External RESTful Service requests of all types are valid only for the primary ISE node. Secondary nodes have read-access (GET requests). Procedure Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter your username and case-sensitive password. Cisco Identity Services Engine API Reference Guide, Release 1.2 5-2 OL-26134-01 Chapter 5 Introduction to ERS APIs External RESTful Services API Status Step 3 Click Login or press Enter. Step 4 Choose Administration > Settings > ERS Settings. Step 5 Choose Enable ERS for Read/Write for the Primary Administration Node. Step 6 Choose Enable ERS for Read for All Other Nodes if there are any secondary nodes. Step 7 Click Submit. Note All REST operations are audited and the logs are logged in the system logs. Related Topics • Prerequisites for Using the External RESTful Services API Calls, page 7-1 External RESTful Services API Status You can verify whether the External RESTful Services APIs are enabled for the primary and secondary nodes on the Administration > Settings > ERS Settings page in the GUI. The External RESTful Services APIs are not enabled by default. If you try to evoke the External RESTful Services API calls before enabling them, you will receive an error response. External RESTful Services APIs have a debug logging category, which you can enable from the debug logging page of the Cisco ISE GUI. Note For more information, see the Debug Log Configuration Options section of the Cisco Identity Services Engine Admin Guide, Release 1.3. Data Validation CRUD data sent to the server is validated with the same validation rules that Cisco ISE uses for the GUI. All validations are centralized in a validation layer. All XML data being posted is validated against the schema. The following two types of validations occur: data validation and structural validation. Data validation validates the data to be ISE compliant, for example, mandatory fields, field length, types, and so on. Where as, structural validation happens against the schema, for example, fields order, names, and so on. Namespaces You must maintain strict namespaces within resources names and URIs as follows: • Identity for internal user, endpoint, endpoint groups and identity groups • SGA for SGT • External RESTful Services for all other object resources such as search results that appears in the response message (the client do need to send ERS namespace in requests) Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-3 Chapter 5 Introduction to ERS APIs External RESTful Services SDK The Accept/Content-Type headers must contain the following namespaces: application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml For example: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml The request XML should contain the namespace definition as follows: identity.ers.ise.cisco.com sga.ers.ise.cisco.com For example: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns:endpoint xmlns:ns="identity.ers.ise.cisco.com" id="id"> <group>Profiled</group> … </ns:endpoint> External RESTful Services SDK You can use the External RESTful Services SDK to start building your own tools. You can access the External RESTful Services SDK from the following URL: https://<ISE-ADMIN-NODE>:9060/ers/sdk. External RESTful Services SDK can be accessed by the External RESTful Services Admin users only. The SDK consists the following components: • Quick reference API documentation • List of all available API operations • Schema files available for download • Sample application in Java available for download • Use cases in curl script format • Instructions on using Chrome Postman External RESTful Services Schema File The External RESTful Services SDK is shipped with three XSD schema files that describe the structure of the objects that are supported on ISE ERS interfaces. The three XSD files are: • ers.xsd • identity.xsd • sga.xsd • network.xsd You can use the schema with available tools such as JAXB to generate schema classes. You can develop HTTP client or use any third-party HTTP client code and integrate it with the schema classes that are generated from the XSD files. Cisco Identity Services Engine API Reference Guide, Release 1.2 5-4 OL-26134-01 Chapter 5 Introduction to ERS APIs External RESTful Service Requests and Responses Note The XML sent in the content is validated against the schema, therefore, field order and syntax in the XML should be the same as it appears in the schema. Otherwise, you will receive a bad request status code. Downloading the Schema File Procedure Step 1 Enter the following URL in the address bar of your browser to log into the External RESTful Services SDK page: https://<ISE-ADMIN-NODE>:9060/ers/sdk Step 2 Enter the Username and the case-sensitive password corresponding to an External RESTful Services Admin. Step 3 Click Login or press Enter. Step 4 In the Downloads category, click Schema Jar (ers-schema-1.3-iteration-01-SNAPSHOT.jar). Step 5 Save the file to your local machine. Related Topics • External RESTful Services API Authentication and Authorization, page 5-2 External RESTful Service Requests and Responses This section provides information on the request and response headers as well as the status codes returned by ERS. External RESTful Service Requests Headers Table 5-1 ERS Request Headers Header Supported Values Description of Use Required Accept Guest REST API Resource Media-Type Indicates to the server what media type(s) this client is willing to accept including the resource version. Yes, on GET/GET ALL/DELETE/GET VERSION operations (these contain no message body) Authorization "Basic " plus username and password (per RFC 2617 Identifies the authorized user making this request. Yes, on all requests. Content-Length Guest REST API Resource Media-Type Indicates to the server what media type(s) this client is willing to accept including the resource version. Yes, on requests that contain a message body. Content-Type Media type describing the request message body Describes the representation and syntax of the request message body. Yes, on requests that contain a message body. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-5 Chapter 5 Introduction to ERS APIs External RESTful Service Requests and Responses External RESTful Service Response Headers Table 5-2 ERS Mandatory Response Headers Header Supported Values Description of Use Required Content-Length Length (in bytes) of the response Describes the size of the message body. message body. Content-Type Media type describing the response message body. Describes the representation and Yes, on responses that contain a syntax of the response message message body. body. Location Canonical URI of a newly created resource. Returns a new URI that can be used to request a representation of the newly created resource. Yes, on responses that contain a message body. Yes, on responses to requests that create new server side resources accessible via a URI. Common External RESTful Service HTTP Status Codes Table 5-3 Description of the HTTP Response Codes Returned By ERS HTTP Status Description 200 OK The request was successfully completed. If this request created a new resource that is addressable with a URI, and a response body is returned containing a representation of the new resource, a 200 status will be returned with a Location header containing the canonical URI for the newly created resource. 201 Created A request that created a new resource was completed, and no response body containing a representation of the new resource is being returned. A Location header containing the canonical URI for the newly created resource should also be returned. 202 Accepted The request has been accepted for processing, but the processing has not been completed. Per the HTTP/1.1 specification, the returned entity (if any) SHOULD include an indication of the request's current status, and either a pointer to a status monitor or some estimate of when the user can expect the request to be fulfilled. 204 No Content The server fulfilled the request, but does not need to return a response message body. 400 Bad Request The request could not be processed because it contains missing or invalid information (such as validation error on an input field, a missing required value, and so on). 401 Unauthorized The authentication credentials included with this request are missing or invalid. 403 Forbidden The server recognized your credentials, but you do not possess authorization to perform this request. 404 Not Found The request specified a URI of a resource that does not exist. 405 Method Not Allowed The HTTP verb specified in the request (DELETE, GET, HEAD, POST, PUT) is not supported for this request URI. Cisco Identity Services Engine API Reference Guide, Release 1.2 5-6 OL-26134-01 Chapter 5 Introduction to ERS APIs Version Control with External RESTful Services APIs Table 5-3 Note Description of the HTTP Response Codes Returned By ERS (continued) HTTP Status Description 406 Not Acceptable The resource identified by this request is not capable of generating a representation corresponding to one of the media types in the Accept header of the request. 409 Conflict A creation or update request could not be completed, because it would cause a conflict in the current state of the resources supported by the server (for example, an attempt to create a new resource with a unique identifier already assigned to some existing resource). 415 Unsupported Media Type The media type specified in the Accept header is not supported by the server. This will be the common response when the client resources version is no longer supported by the server. 429 Too many requests There are too many simultaneous ERS requests. 500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request. 501 Not Implemented The server does not (currently) support the functionality required to fulfill the request. 503 Service Unavailable The server is currently unable to handle the request due to temporary overloading or maintenance of the server. In addition to the status codes return in the response header, each request might have additional xml content according to the nature of the request. Version Control with External RESTful Services APIs The External RESTful Services APIs provide backward compatibility with previous Cisco ISE versions. The External RESTful Services APIs has a versioning mechanism for API version management. All non-guest resources are of version 1.0 and no backward compatibility is required. Each RESTful resource has a model version (major.minor). The version must be part of the request header with the syntax as follows: application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml For example, to get internal user resource version 1.0, the following request is passed: DELETE https://<ISE-ADMIN-NODE>:9060/ers/config/internaluser/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml After authenticating and authorizing the request, a version match check is performed with the matching results mentioned in the following table: Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-7 Chapter 5 Introduction to ERS APIs Searching and Filtering Versions match Outcome No version sent The server returns status 415 “Unsupported Media Type” Client version equal to server version The server proceeds with processing the request. Client minor version not equal to server minor The server adds a response warning message version describing the versions gap and proceeds processing the request. Client and server major version does not match Server returns status 415 with a corresponding error message. Note Each resource has an API to retrieve a list of server supported versions. Searching and Filtering All filtering and searching operations are through the use of filtering. You search for a resource by sending a GET request to a resource URI. By default, the result is the first page (page index = 0) with default size of 20. By adding filter, sort and paging parameters, described in the following sections, to the URI, the client can control this search. The resources resulting from a paging, filter, or sort request are bundled in a <resources> collection, which contains for each resource its name, ID, description, and link to its full representation. This gives the client the ability to easily drill down into the resource. Filtering Parameters for External RESTful Services APIs You can perform simple filtering operation through the filter query string parameter. You can send more than one filter. The logical operator common to all filter criteria is by default AND. You can change this by using the “filtertype=or” query string parameter. Each resource data model description should specify if an attribute is a filtered field. For example, to get internal users with first name starting with ‘a’ and belonging to the identity group ‘Finance’, the following request is passed: GET /ers/config/internaluser/?page=0&size=20&sortacs=name&filter=name.STARTSW.a&filter=identit yGroup.EQ.Finance The following table shows the available filter operators: Parameter Description EQ Equals GT Greater Than LT Less Then STARTSW Start With Cisco Identity Services Engine API Reference Guide, Release 1.2 5-8 OL-26134-01 Chapter 5 Introduction to ERS APIs External RESTful Services System Flow Parameter Description ENDSW End With CONTAINS Contains The following table shows the list of filterable attributes for each resource: Resource Filterable Attributes Endpoints mac, portalUser, profile, profileId, staticGroupAssignment, staticProfileAssignment Internal User name Endpoint Identity Group name Identity Groups name SGTs name Paging Parameters for External RESTful Services APIs All External RESTful Servive search results are paged. Paging parameter are passed in the URI using query parameters. For example, to get internal users first 20 records sorted in accending order by “name” field, the following request is passed: GET /ers/config/internaluser?page=0&size=20&sortasc=name The following table shows the available paging parameters: Parameter Description Default Value page Page starting index 0 size Page size 20 (max. = 100) sortasc Sorting field with Ascending direction, out of a set name of available fields for sorting. (For alphabetic characters, it is sorted A to Z.) sortdsc Sorting field with Descending direction, out of a set of available fields for sorting. (For alphabetic characters, it is sorted Z to A.) name External RESTful Services System Flow Common External RESTful Services flow consists of HTTPS request sent from client and an HTTPS response from server. The flow differs by requests types, URIs, request headers, response headers, and response contents. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-9 Chapter 5 Introduction to ERS APIs External RESTful Services System Flow Figure 5-1 ERS Success Flow Sequence Cisco Identity Services Engine API Reference Guide, Release 1.2 5-10 OL-26134-01 Chapter 5 Introduction to ERS APIs Hyperlinks Figure 5-2 ERS Failure Flow Sequence Hyperlinks Usage of hyperlinks within XML representation is one of the strongest characteristics of Hypermedia as the Engine of Application State (HATEOS). Hyperlinks are mostly used to convey to the client that the resource has a representation at the given URI. External RESTful Services links are aligned with the Atom definition of links declared in the following namespace: http://www.w3.org/2005/Atom namespace. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-11 Chapter 5 Introduction to ERS APIs Bulk Operations The following table shows the mandatory link attributes for the External RESTful Services: Attribute Description Href This contains the link's URI. Rel This attribute, which originally meant “relation,” indicates the following type of links: Type • “self”—link to refresh current representation • “next”—in collection for getting next page • “info”—get more info about of the resource This is a hint to the media type of the representation that the server may return for the link's URI - usually is “application/xml” Example of links within a search result The following example shows links within a search result: <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="1163"> <link rel="self" href="http://cisco.com/ers/config/internaluser?page=0&size=20" type="application/xml"/> <link rel="next" href="http://cisco.com/ers/config/internaluser?page=20&size=20" type="application/xml"/> <resources> <link rel="john doe" href="http://cisco.com/ers/config/internaluser/333" type="application/xml"/> <link rel="jeff smit" href="http://cisco.com/ers/config/internaluser/444" type="application/xml"/> . . . </resources> </ns2:searchResult> Bulk Operations A bulk request will allow you to send up to 500 operations in a single request (or 5000 operations by ID). You can run create, update, and delete operations all resources as well as some resource-specific operations like registering end points. All operations in a request must be of same type, which means that you cannot send a mixed resources request. Each resource has its own transaction and the order of the transactions is not guarantee as it is a multi-threaded execution. The Cisco ISE server parses the request and validates its structure. If the request is valid and no other bulk already in progress, the execution starts and the server returns the status code 202 (ACCEPTED) and a unique bulk identifier in the LOCATION response header. This ID allows you to track the bulk status later on using the Get Bulk Status operation. The status report will be available for at least 2 hours after the operation’s start time. Cisco Identity Services Engine API Reference Guide, Release 1.2 5-12 OL-26134-01 Chapter 5 Introduction to ERS APIs Bulk Operations If a failure occurs while executing on a resource, the failure is logged in the status report and the execution proceeds to next resource. Only one bulk execution is allowed to run at a time. If a bulk request is posted while another bulk execution is still running, the server returns the response status 503 (Service Unavailable) with a message asking the client to try again later. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 5-13 Chapter 5 Introduction to ERS APIs Bulk Operations Cisco Identity Services Engine API Reference Guide, Release 1.2 5-14 OL-26134-01 CH A P T E R 6 Guest REST API • An API for Guest User Resources, page 6-1 • Sponsor Authentication and Authorization, page 6-1 • Guest REST API Requests, page 6-2 • Guest REST API Responses, page 6-5 • The following table lists the headers for responses., page 6-6 • Searching and Filtering, page 6-8 An API for Guest User Resources The Cisco Guest API is a REST (Representational State Transfer)-based set of operations that provide secure and authenticated access to and management of Cisco guest users. With the API, you can create, read, update, delete, and search for guest users. When you call the API, you are calling it as if you are a sponsor using the Cisco ISE Sponsor portal to manage guest users. In order to use the API, you must first enable access to it and then set up sponsor authentication in ISE. Full request and response examples are provided in External RESTful Services APIs for Guest Users, page 7-22. Sponsor Authentication and Authorization A sponsor is a special type of Cisco ISE user who can create and manage guest users using the Sponsor portal. The Guest REST API has the same capabilities as the Sponsor portal. Authentication for the Guest REST API is similar to the process for authenticating a sponsor. The privileges specified in a sponsor group’s policies apply to the Guest REST API. See the Cisco ISE User Guide for more information on sponsors and sponsor groups. Before You Begin Like other ISE users, Cisco ISE authenticates sponsors through a local database, or through external Lightweight Directory Access Protocol (LDAP) or Microsoft Active Directory identity stores. If you are not using an external identity store, you must create users in Cisco ISE (Administration > Identity Management > Identities > Users). Cisco Guest REST API Reference Guide OL-31414-01 6-1 Chapter 6 Guest REST API Guest REST API Requests Procedure Step 1 Enter the Cisco ISE URL in the address bar of your browser (for example, https://<ise hostname or ip address>/admin/). Step 2 Enter your username and case-sensitive password. Step 3 Click Login or press Enter. Step 4 Assign the user to the appropriate identity group. Step 5 Step 6 a. Choose Administration > Identity Management > Groups > Identity Groups. b. Create a new group or edit an existing one. Cisco ISE includes these default sponsor user identity groups: • SponsorAllAccount • SponsorGroupAccounts • SponsorOwnAccounts c. Add the user to the list of members. d. Click Save. Add the user’s identity group to a sponsor group. a. Choose Guest Access > Configure > Sponsor Groups. b. Create a new sponsor group or edit and existing one. c. Click Members. d. Add the user’s identity group to the list of sponsor group members and click OK. e. Add the guest types and locations that the user can sponsor. f. Select the Access ISE guest accounts via the programatic interface (REST API) check box. g. Click Save. Ensure that Sponsor_Portal_Sequence accesses the user’s identity source. a. Choose Administration > Identity Management > Identity Source Sequences > Sponsor_Portal_Sequence. b. Choose the user’s identity source database if it hasn’t been selected for the Authentication Search List. c. Click Save. Related Topics For further details on sponsors and sponsor groups, see the Cisco ISE User Guide. Guest REST API Requests Requests made to the API have the following characteristics: • User requests are sent over HTTPS to the Cisco ISE server, and a Response is returned. • The URI to access all APIs is the domain name of your primary https://<ISE-ADMIN-NODE>:9060/ers/config Cisco Guest REST API Reference Guide 6-2 OL-31414-01 Chapter 6 Guest REST API Guest REST API Requests • API requests are case sensitive and should be entered as shown in this manual. • Each guest request needs to set Content Type as: • Each guest request needs to set Accept as: • Each guest bulk request needs to set Content Type as: • Each guest bulk request needs to set Accept as: • You also can include the optional Accept-Encoding:gzip header, which compresses the response payload. application/vnd.com.cisco.ise.identity.guestuser.2.0+xml application/vnd.com.cisco.ise.identity.guestuser.2.0+xml application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml Request Structure The following table lists the types of request operations that you can use with the Cisco Guest REST API: Table 6-1 Request Method Types Request Type Operations GET Get all resources (Search), Get a resource by its ID, Get a resource version information. POST Create a new guest user. PUT Update a guest user. DELETE Delete a guest user The following table lists the mandatory headers for requests: Table 6-2 Mandatory Request Headers Header Values Description ACCEPT Guest REST API Resource Media-Type Indicates to the server what media type(s) this client is willing to accept including the resource version. AUTHORIZATION "Basic " plus username and password (per RFC 2617 Identifies the authorized user making this request. CONTENT-TYPE Media type describing the request Describes the representation and syntax of message body the request message body. Related Topics Content Type and Accept Headers, page 7-22 Cisco Guest REST API Reference Guide OL-31414-01 6-3 Chapter 6 Guest REST API Guest REST API Requests Request Contents The request example below shows the XML content that’s required to create guest user accounts using either the POST (create) operation. Note JSON is not used for Guest REST API. POST Request Example POST https://<ISE-Admin-Node>:9060/ers/config/guestuser/ Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Content-Type: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization: Basic xxxxxxxxxxxxxxxxx <?xml version="1.0" encoding="UTF-8"?> <ns2:guestuser xmlns:ns2="identity.ers.ise.cisco.com"> <guestAccessInfo> <fromDate>08/06/2014 23:22</fromDate> <toDate>08/07/2014 23:22</toDate> <validDays>1</validDays> </guestAccessInfo> <guestInfo> <company>New Company</company> <emailAddress>john@example.com</emailAddress> <firstName>John</firstName> <lastName>Doe</lastName> <notificationLanguage>English</notificationLanguage> <password>12345</password> <phoneNumber>9999998877</phoneNumber> <smsServiceProvider>Global Default</smsServiceProvider> <userName>autoguestuser1</userName> </guestInfo> <guestType>Daily</guestType> <personBeingVisited>sponsor</personBeingVisited> <portalId>portal101</portalId> <reasonForVisit>interview</reasonForVisit> </ns2:guestuser> Bulk Executions A bulk request will allow you to send up to 500 operations in a single request, or up to 5000 operations based on ID. All operations in a request must be of same type, which means that you cannot send a mixed resources request. Each resource has its own transaction and the order of the transactions is not guarantee as it is a multi-threaded execution. The Cisco ISE server parses the request and validates its structure. If the request is valid and no other bulk already in progress, the execution starts and the server returns the status code 202 (ACCEPTED) and a unique bulk identifier in the LOCATION response header. This ID allows you to track the bulk status later on using the Get Bulk Status operation. The status report will be available for at least 2 hours after the operation’s start time. If a failure occurs while executing on a resource, the failure is logged in the status report and the execution proceeds to next resource. Cisco Guest REST API Reference Guide 6-4 OL-31414-01 Chapter 6 Guest REST API Guest REST API Responses Only one bulk execution is allowed to run at a time. If a bulk request is posted while another bulk execution is still running, the server returns the response status 503 (Service Unavailable) with a message asking the client to try again later. A bulk execution, including getting the bulk status, uses different headers: • Content Type as: application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml • Accept: application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml Related Topics • Start Bulk Execution for Guest Users, page 7-36 Guest REST API Responses Each request is followed by a server HTTPS response with the standard headers, plus response content. Response Status Codes A Response contains an HTTP status code. For the Guest REST API, these can be: • 20x - Successful operation • 4xx - Client errors • 5xx - Server errors The following table provides more information on the status codes. Table 6-3 Response Contents Types Request Type Status Response Payload Get a guest user by its Id 200 Guest User in its XML representation All 4xx (client errors) A Response with messages describing the error, for example: unsupported version, or illegal URI All 5xx (server error) A Response with messages describing the error, for example: runtime exceptions... Create A guest user [POST] 201 If no info or warnings, then no content will be sent back. The new guest user id will be sent in the response “Location” header. If there is additional info or warning it will be encapsulated in the Response. Update a guest user [PUT] 200 Returns a list of updated fields. Delete a guest user [Delete] 204 No content. Related Topics Response Error Messages, page 6-6 Cisco Guest REST API Reference Guide OL-31414-01 6-5 Chapter 6 Guest REST API Guest REST API Responses Response Structure The following table lists the headers for responses. Table 6-4 Mandatory Response Headers Header Values Description LOCATION newly created resource ID for POST only—holds the new resource ID (as a URI representation) CONTENT-TYPE Media type describing the response message body Describes the representation and syntax of the response message body Guest Passwords ISE automatically generates a password when a guest is created. It is possible to reset a guest’s password through the Guest REST API by calling PUT on a specific guest user and providing an empty password. This is the equivalent of a sponsor resetting a guest’s password from the Sponsor portal. Use the GET operation to retrieve a guest user’s information and view their password. Cisco ISE guest passwords are visible in the response to a GET operation as long as the password was: 1. Automatically generated by ISE. 2. Reset through this API or via the Sponsor Portal. In some guest flows, the guest has the ability to change their own password. Cisco ISE guest passwords that have been changed by the guest are not visible in the sponsor portal and are not visible via the REST API. It is possible to reset the password of a guest even if if the sponsor has permission to do so via the sponsor group permissions.. Related Topics • Reset User’s Password Example, page 7-31 • For further details on guest user password policies, see the Cisco ISE Admin Guide. Response Error Messages You are required to use certain headers when you do a POST or PUT request. You will get errors if you leave one out. The log files that contains detailed messages that can enable you to correct the operations can be found in the Cisco ISE UI at the following location: Operations > Node > Debug Logs > guest.log Cisco Guest REST API Reference Guide 6-6 OL-31414-01 Chapter 6 Guest REST API Guest REST API Responses Table 6-5 Error Codes HTTP Status Error Code Description Resource version exception Resource version sent in the request content is 415 not supported by the server. Resource media type exception Media type sent by the client in the ACCEPT or Content-Type headers is invalid. Unsupported resource exception Resource listed in the URI, is not supported by 400 the server. Unsupported method exception Request method type is not supported for the specified URI. 400 Query string validation exception Search filter or paging parameters are not valid. 400 Schema validation exception The request’s XML content does not conform 400 to the API’s schema rules for that resource, such as including a field that the API does not recognize or excluding a field that’s mandatory. Application resource validation exception The API is unable to validate some of the request’s content, such as using invalid characters in an attribute’s values. Unauthorized user The sponsor’s username and password are not 401 valid. Internal exception Any unexpected internal server error occurs at 500 runtime. Conversion exception Some internal conversions, should be treated as an internal exception. 500 CRUD operation exception Executing a CRUD operation, should be treated as an internal exception. 500 415 400 Unsupported Media Type Example The following example demonstrates a response that occurs when the client sent an unsupported media type in the ACCEPT header. Response STATUS 415 Unsupported Media Type Cache-Control: no-cache Content-Length: 411 Content-Type: application/vnd.com.cisco.ise.ers.ersresponse.1.0+xml Date: Wed, 11 Dec 2013 05:27:37 GMT Expires: Wed, 31 Dec 2015 16:00:00 PST Pragma: No-cache <?xml version="1.0" encoding="UTF-8" standalone="yes"?> Cisco Guest REST API Reference Guide OL-31414-01 6-7 Chapter 6 Guest REST API Searching and Filtering <ns2:ersResponse xmlns:ns2="ers.ise.cisco.com" operation="GET-getAll-guestuser"> <link type="application/xml" href="https://<ISE-Admin-Node>:9060/ers/config/guestuser/" rel="related"/> <messages> <ns2:message type="ERROR" code="Resource media type exception"> <title>Wrong media type, check Accept request header.</title> </ns2:message> </messages> </ns2:ersResponse> Versioning The Guest REST API for Cisco ISE Release 1.3 is version 2.0. It is designed to be compatible with future versions. This REST API is not compatible with previous alpha and beta versions of the Guest REST API. Each RESTful resource has a model version (major.minor). The version must be part of the request header with the syntax as follows: application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml For example, to get guest user resource version 2.0, the following request is passed: GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml After authenticating and authorizing the request, a version-match check is performed with one of the following matching results. Table 6-6 Version-match Results Version-match No version sent Outcome The server returns status 415 “Unsupported Media Type”. Client version equal to server version The server proceeds with processing the request. Client minor version not equal to server minor version The server adds a response warning message describing the versions gap and proceeds processing the request. Client and server major version does not match The server returns status 415 with a corresponding error message. Searching and Filtering All filtering and searching operations are through the use of filtering. You search for a resource by sending a GET request to a resource URI. By default, the result is the first page (page index = 0) with default size of 20. By adding filter, sort and paging parameters, described in the following sections, to the URI, the client can control this search. Cisco Guest REST API Reference Guide 6-8 OL-31414-01 Chapter 6 Guest REST API Searching and Filtering The resources resulting from a paging, filter, or sort request are bundled in a <resources> collection, which contains for each resource its name, ID, description, and link to its full representation. This gives the client the ability to easily drill down into the resource. Filtering Parameters Filtering is available through the filter query string parameter. The structure of a filter is a triplet of field operator, parameter, and value, separated with dots. For example, use filter=name.STARTSW.g to find all guest users with usernames that start with the letter ‘g’. If you use multiple parameters in your filter, the result will be the AND of those parameters. That means that the results will be users that match all of the parameters sent to the API. Each resource description specifies if an attribute is a filtered field. Note Invalid filters values result in status 400 (Bad Request), with corresponding messages. The following table shows the parameters available in filter queries. Table 6-7 Filtering Parameters Parameter Description firstName Guest’s first name lastName Guest’s last name emailAddress Guest’s email address userName Guest account user name creationTime Time the guest account was created toDate Expiration date for guest account guestType Type of guest company Guest’s company phoneNumber Guest’s phone number groupTag Group sponsor Guest’s sponsor status Guest account’s status name Resource identifier The following table lists the operations that you can use in filter queries. Table 6-8 Available Filter Operations Parameter Description EQ Equals GT Greater Than LT Less Than STARTSW Starts With Cisco Guest REST API Reference Guide OL-31414-01 6-9 Chapter 6 Guest REST API Searching and Filtering Table 6-8 Available Filter Operations Parameter Description ENDSW Ends With CONTAINS Contains Filtering Examples GET Request for Guest Users with First Names that Starts with ‘br’ GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/?filter=firstName.STARTSW.br GET Request for Guest Users with First Name that Starts with 'b' Whose Email Address Includes 'bob' GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser?filter=firstName.STARTSW.b&filter=email Address.CONTAINS.bob GET Request for Guest Users with the Status of “Approved” and Expiration Date in October GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser?filter=status.EQ.Approved&filter=toDate .STARTSW.10 Related Topics Get a Guest User, page 7-23 Page Size Parameters Search results default to 20 resources per page. Page numbering starts at page '0'. The maximum number of resources per page cannot be more than 100. Illegal parameter values result in status 400 (Bad Request) with corresponding messages The page size parameters can override the defaults by using the paging parameters as described in Table 6-9. In the following example, the page size is changed to 50 resources: GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser?filter=name.STARTSW.b&filter=emailAddre ss.CONTAINS.bob&size=50&page=0 Sorting Parameters By default, the sort column is name and the sort direction is sortasc. You can override the defaults by using the parameters as described in the example below: GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser?size=50&page=0&sortdsc=name You can find a list of the values that you can use for sorting in Table 6-7 on page 6-9. Cisco Guest REST API Reference Guide 6-10 OL-31414-01 Chapter 6 Guest REST API Searching and Filtering Table 6-9 Available Paging and Sorting Preferences Parameter Description Default Value page Page starting index 0 size Page size 20 (max. = 100) sortasc Sorting field with Ascending direction, out of a set name of available fields for sorting. (For alphabetic characters, it is sorted A to Z.) sortdsc Sorting field with Descending direction, out of a set of available fields for sorting. (For alphabetic characters, it is sorted Z to A.) name Example: GET First 20 Guest User Records and Sort ascending by the Last Name Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser?page=0&size=20&sortasc=lastName Response <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="22"> <nextPage type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser?page=1&size=20&sortasc=lastName" rel="next"/> <resources> <resource name="aname001" id="8e4bf290-6229-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-Admin-Node:9060/ers/config/guestuser/8e4bf290-6229-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="aname002" id="8fe86480-6229-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-Admin-Node:9060/ers/config/guestuser/8fe86480-6229-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> ... <resource name="aname020" id="908b5b40-6229-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-Admin-Node:9060/ers/config/guestuser/908b5b40-6229-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> </resources> </ns2:searchResult> Related Topics • Filter by Usernames that Start with “ilucky” Example, page 7-24 • Filter by Username that Starts with “ilucky” and Last Name that Starts with “J” Example, page 7-25 • Filter By the First Name “John” and Sort By Username Example, page 7-26 Cisco Guest REST API Reference Guide OL-31414-01 6-11 Chapter 6 Guest REST API Searching and Filtering Cisco Guest REST API Reference Guide 6-12 OL-31414-01 CH A P T E R 7 External RESTful Services API Operations • Overview, page 7-1 • Prerequisites for Using the External RESTful Services API Calls, page 7-1 • GetVersion, page 7-2 • External RESTful Services APIs for Internal Users, page 7-2 • External RESTful Services APIs for Endpoints, page 7-8 • External RESTful APIs for Endpoint Identity Groups, page 7-16 • External RESTful Services APIs for Identity Groups, page 7-21 • External RESTful Services APIs for Guest Users, page 7-22 • External RESTful Services APIs for Portals, page 7-40 • External RESTful Services APIs for Network Devices, page 7-43 • External RESTful Services APIs for Network Device Groups, page 7-48 • External RESTful Services APIs for SGTs, page 7-50 • REST API Client, page 7-52 Overview This chapter provides examples of the External RESTful Services API calls, and describes how to use them. Instructions are provided for issuing the External RESTful Services API calls, as well as examples of API output schema files and sample data returned. Prerequisites for Using the External RESTful Services API Calls You must fulfill the following prerequisites before invoking an External RESTful Services API call: • You must have enabled External RESTful Services from the GUI. • You must have External RESTful Services Admin privileges. You can use any REST client like JAVA, curl linux command, python or any other client to invoke External RESTful Services API calls. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-1 Chapter 7 External RESTful Services API Operations GetVersion Related Topics • Enabling External RESTful Services APIs from the GUI, page 5-2 • External RESTful Services API Authentication and Authorization, page 5-2 GetVersion The GetVersion operation is common to all available resources. It fetches the version information of the required resource. The following table lists the main characteristics of this operation: Table 7-1 Main Characteristics of GetVersion Operation Description Retrieve the version information of the specified resource Synopsis GET/ers/config/<resource-name>/versioninfo Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Version information Response Status 200, 400, 401,403,404,415,500 Sample Request for GetVersion Operation GET https://<ISE-ADMIN-NODE>:9060/ers/config/<resource-type>/versioninfo Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.<resource-namespace>.1.0+xml Sample Response for GetVersion Operation HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.<resource-namespace>.versoininfo.1.0+xml Content-Length: 122 { <?xml version="1.0" encoding="UTF-8"?> <ns2:versionInfo xmlns:ns2="ers.ise.cisco.com"> <currentServerVersion>1.2</currentServerVersion> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/<resource-type>/versioninfo" rel="self"/> <supportedVersions>1.0,1.1,1.2,1.3<supportedVersion> </ns2:versionInfo> } External RESTful Services APIs for Internal Users The External RESTful Services APIs for Internal users support full CRUD functionality. The following table lists the External RESTful Services APIs that are available for internal users: Cisco Identity Services Engine API Reference Guide, Release 1.2 7-2 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Internal Users Table 7-2 External RESTful Services APIs Available For Internal Users Operation HTTP Method URL Content QueryString Get All Users GET /ers/config/internaluser n/a Page, Size, sortacs or sortdsn, Filter Get User GET /ers/config/internaluser/{internal n/a user-id1} Create User POST /ers/config/internaluser/ Update User PUT /ers/config/internaluser/{internal internaluser user-id} Delete User DELETE /ers/config/internaluser/{internal n/a user-id} Get InternalUser Resource Version Info GET /ers/config/internaluser/version internaluser n/a 1. Internal user ID is the UUID type as stored in the Cisco ISE database. Retrieve All Internal Users You can use this API call to retrieve all the internal users present in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-3 Main Characteristics of Retrieve All Internal Users API Call Description Retrieve collection of internal users Synopsis GET /ers/config/internaluser Request Headers Accept, Authorization, Host QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Retrieve All Internal Users API GET https://<ISE-ADMIN-NODE>:9060/ers/config/internaluser?page=0&size=20&sortacs=name Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Sample Response for Retrieve All Internal Users API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-3 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Internal Users Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult total="2" xmlns:ns2="ers.ise.cisco.com"> <resources> <ns2:resource description="description1" name="name1" id="id1"/> <ns2:resource description="description2" name="name2" id="id2"/> </resources> </ns2:searchResult> } Get Internal Users by ID You can use this API call to get an internal user by the ID in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-4 Main Characteristics of Read Internal Users API Call Description Retrieve the specified internal user Synopsis GET /ers/config/internaluser/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 200, 400, 401,403, 404, 415, 429, 500 Sample Request for Read Internal Users API GET https://<ISE-ADMIN-NODE>:9060/ers/config/internaluser/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.internaluser.1.0+xml Sample Response for Read Internal Users API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:internaluser description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <changePassword>true</changePassword> <customAttributes> <entry> <key>key2</key> <value>value3</value> </entry> <entry> <key>key1</key> <value>value1</value> </entry> Cisco Identity Services Engine API Reference Guide, Release 1.2 7-4 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Internal Users </customAttributes> <email>email@example.com</email> <enabled>true</enabled> <firstName>John</firstName> <identityGroups>identityGroups</identityGroups> <lastName>Doe</lastName> <password>12345</password> </ns3:internaluser> } Create Internal Users You can use this API call to create internal users in Cisco ISE. Password is mandatory for creating internal users using External RESTful Services APIs. The following table lists the main characteristics of this API call: Table 7-5 Main Characteristics of Create Internal Users API Call Description Create the specified internal user Synopsis POST /ers/config/internaluser/ Request Headers Accept, Authorization, Host QueryString N/A Request Message Body InternalUser Response Headers Content-Length, Content-Type, Location Response Message Body Resource of type InternalUser Response Status 201, 400, 401, 403, 415, 429, 500 Sample Request for Create Internal Users API POST https://<ISE-ADMIN-NODE>:9060/ers/config/internaluser/ Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:internaluser description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <changePassword>true</changePassword> <customAttributes> <entry> <key>key2</key> <value>value3</value> </entry> <entry> <key>key1</key> <value>value1</value> </entry> </customAttributes> <email>email@example.com</email> <enabled>true</enabled> <firstName>John</firstName> <identityGroups>identityGroups</identityGroups> <lastName>Doe</lastName> <password>12345</password> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-5 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Internal Users </ns3:internaluser> } Sample Response for Create Internal Users API HTTP/1.1 201 OK (see the location header for the new user’s ID) Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Location: https://<ISE-ADMIN-NODE>/ers/config/internaluser/444 Update Internal Users You can use this API call to update internal users in Cisco ISE. You must set the password as ‘********’, if the password is not getting changed while updating the internal users using the External RESTful Services APIs. The following table lists the main characteristics of this API call: Table 7-6 Main Characteristics of Update Internal Users API Call Description Update the specified internal user Synopsis PUT /ers/config/internaluser/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body InternalUser Response Headers Content-Length, Content-Type Response Message Body List of updated fields Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Update Internal Users API PUT https://<ISE-ADMIN-NODE>:9060/ers/config/internaluser/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:internaluser description="description" name="name" id="333" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <changePassword>true</changePassword> <customAttributes> <entry> <key>key2</key> <value>value3</value> </entry> <entry> <key>key1</key> <value>value1</value> </entry> </customAttributes> <email>email@example.com</email> <enabled>true</enabled> <firstName>John</firstName> <identityGroups>IdentityGroups</identityGroups> <lastName>Doe</lastName> <password>********</password> Cisco Identity Services Engine API Reference Guide, Release 1.2 7-6 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Internal Users </ns3:internaluser> } Sample Response for Update Internal Users API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.updatedfields.1.0+xml Content-Length: 529 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:updatedFields xmlns:ns2="ers.ise.cisco.com"> <updatedField field="lastname"> <newValue>Doe</newValue> <oldValue>name</oldValue> </updatedField> <updatedField field="dentityGroups"> <newValue>IdentityGroups</newValue> <oldValue>zzz</oldValue> </updatedField> </ns2:updatedFields> } Delete Internal Users You can use this API call to delete internal users from Cisco ISE. The following table lists the main characteristics of this API call: Table 7-7 Main Characteristics of Delete Internal Users API Call Description Delete the specified internal user Synopsis DELETE /ers/config/internaluser/{internaluser-id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 204, 400, 401, 403, 404, 415, 429, 500 Sample Request for Delete Internal Users API DELETE https://<ISE-ADMIN-NODE>:9060/ers/config/internaluser/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Sample Response for Delete Internal Users API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-7 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints External RESTful Services APIs for Endpoints The following table lists the External RESTful Services APIs for end points: Table 7-8 External RESTful Services APIs Available for Endpoints Operation Method URL Content QueryString Get All Endpoints GET /ers/config/endpoint n/a page, size, sortacs or sortdsn, filter Get Endpoint GET /ers/config/endpoint/{id1} n/a Create Endpoint POST /ers/config/endpoint/ endpoint Update Endpoint PUT /ers/config/endpoint/{id} endpoint Delete Endpoint DELETE /ers/config/endpoint/{id} n/a /ers/config/endpoint/register endpoint Register Endpoint PUT Deregister Endpoint PUT 2 Get Endpoint GET Resource Version Info /ers/config/endpoint/{id}/deregister n/a /ers/config/endpoint/version n/a 1. Endpoint ID is the UUID type as stored in the Cisco ISE database. 2. If the endpoint already exists, it will be registered. If it does not exist, it will be first created and then registered. In both the scenarios, the return status will be 204. Get All Endpoints The Get All API for Endpoints works only for retrieving endpoints associated to the user specified in the filter. The following table lists the main characteristics of this API call: Table 7-9 Main Characteristics of Get All Endpoints API Call Description Retrieve collection of endpoints associated to the specified internal user Synopsis GET /ers/config/endpoint/ Request Headers Accept, Authorization, Host QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Get All Endpoints API GET https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint?filter=userid.EQ.123 Cisco Identity Services Engine API Reference Guide, Release 1.2 7-8 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml Sample Response for Get All Endpoints API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult total="2" xmlns:ns2="ers.ise.cisco.com"> <resources> <resource name=name1" id="id1"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/id1" rel="self"/> </resource> <resource name="name2" id="id2"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/id2" rel="self"/> </resource> </resources> </ns2:searchResult> } Get Endpoints by ID You can use this API call to get an endpoint by the ID in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-10 Main Characteristics of Read Endpoints API Call Description Retrieve the specified endpoint Synopsis GET /ers/config/endpoint/{endpoint-id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 200, 400, 401,403, 404, 415, 429, 500 Sample Request for Read Endpoints API GET https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml Sample Response for Read Endpoints API HTTP/1.1 200 OK Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-9 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:endpoint description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <group>group</group> <groupId>groupId</groupId> <identityStore>identityStore</identityStore> <identityStoreId>identityStoreId</identityStoreId> <mac>00:01:02:03:04:05</mac> <portalUser>portalUser</portalUser> <profile>profile</profile> <profileId>profileId</profileId> <staticGroupAssignment>true</staticGroupAssignment> <staticProfileAssignment>false</staticProfileAssignment> </ns3:endpoint> } Create Endpoints You can use this API call to create endpoints in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-11 Main Characteristics of Create Endpoints API Call Description Create the specified endpoint Synopsis POST /ers/config/endpoint/ Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 200, 400, 401,403, 404, 415, 429, 500 Sample Request for Create Endpoints API POST https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/ Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:endpoint description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <group>group</group> <groupId>groupId</groupId> <identityStore>identityStore</identityStore> <identityStoreId>identityStoreId</identityStoreId> <mac>00:01:02:03:04:05</mac> <portalUser>portalUser</portalUser> <profile>profile</profile> <profileId>profileId</profileId> <staticGroupAssignment>true</staticGroupAssignment> <staticProfileAssignment>false</staticProfileAssignment> Cisco Identity Services Engine API Reference Guide, Release 1.2 7-10 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints </ns3:endpoint> } Sample Response for Create Endpoints API HTTP/1.1 201 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml Location: https://cisco.com/ers/config/endpoint/444 Update Endpoints You can use this API call to update endpoints in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-12 Main Characteristics of Update Endpoints API Call Description Update the specified endpoint Synopsis PUT /ers/config/endpoint/{endpoint-id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 200, 400, 401,403, 404, 415, 429, 500 Sample Request for Update Endpoints API PUT https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:endpoint xmlns:ns2="identity.ers.ise.cisco.com" description="updated" name="Endpoint"> <mac>AA:AA:AA:AA:AA:AA</mac> <staticGroupAssignment>false</staticGroupAssignment> <staticProfileAssignment>false</staticProfileAssignment> </ns2:endpoint>} Sample Response for Update Endpoints API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.updatedfields.1.0+xml Content-Length: 529 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:updatedFields xmlns:ns2="ers.ise.cisco.com"> <updatedField field="mac"> <newValue>AA:AA:AA:AA:AA:AA</newValue> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-11 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints <oldValue>BB:BB:BB:BB:BB:BB</oldValue> </updatedField> <updatedField field="staticGroupAssignment"> <newValue>false</newValue> <oldValue>true</oldValue> </updatedField> <updatedField field="staticProfileAssignment"> <newValue>false</newValue> <oldValue>true</oldValue> </updatedField> </ns2:updatedFields> } Delete Endpoints You can use this API call to update endpoints in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-13 Main Characteristics of Delete Endpoints API Call Description Delete the specified endpoint Synopsis DELETE /ers/config/endpoint/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 200, 400, 401,403, 404, 415, 429, 500 Sample Request for Delete Endpoints API DELETE https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml Sample Response for Delete Endpoints API HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Register Endpoints You can use this API call to register endpoints in Cisco ISE. The endpoint is created if it doesn’t already exist. Similar to the GUI registration flow, the endpoint is statically assigned to the Registered Devices group and portal user and identity store will be set as specified in the content. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-12 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints The following table lists the main characteristics of this API call: Table 7-14 Main Characteristics of Register Endpoints API Call Description Register the specified endpoint Synopsis PUT /ers/config/endpoint/register Request Headers Accept, Authorization, Host QueryString N/A Request Message Body endpoint Response Headers Content-Length, Content-Type Response Message Body List of updated fields Response Status 202, 400, 401, 403, 404, 415, 429, 500 Sample Request for Register Endpoints API PUT https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/register Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:endpoint description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <group>group</group> <groupId>groupId</groupId> <identityStore>identityStore</identityStore> <identityStoreId>identityStoreId</identityStoreId> <mac>00:01:02:03:04:05</mac> <portalUser>portalUser</portalUser> <profile>profile</profile> <profileId>profileId</profileId> <staticGroupAssignment>true</staticGroupAssignment> <staticProfileAssignment>false</staticProfileAssignment> </ns3:endpoint> } Sample Response for Register Endpoints API HTTP/1.1 204 No Content Date: Thu, 12 Jul 2012 23:59:59 GMT Deregister Endpoints You can use this API call to deregister endpoints in Cisco ISE. No content expected in the result. The following table lists the main characteristics of this API call: Table 7-15 Main Characteristics of Deregister Endpoints API Call Description Deregister the specified endpoint Synopsis PUT /ers/config/endpoint/{id}/deregister Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-13 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints Table 7-15 Main Characteristics of Deregister Endpoints API Call (continued) Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Message Body N/A Response Status 202, 400, 401, 403, 404, 415, 429, 500 Sample Request for Deregister Endpoint API Call PUT https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/123/deregister Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.endpoint.1.0+xml Sample Response for Deregister Endpoint API Call HTTP/1.1 204 No Content Date: Thu, 12 Jul 2012 23:59:59 GMT Start Bulk Execution for Endpoints A bulk execution allows you to send up to 500 CRUD operations of the same type in a single request. If the request is valid, the server returns the status code 202 (ACCEPTED) and a unique bulk identifier in the LOCATION response header that you can use to track the bulk status using the Get Bulk Status operation. Only one bulk is allowed to run at a time. If a bulk request was posted while another bulk is still running, the server will return with a response status 503 (Service Unavailable) with a corresponding descriptive message asking the client to try again later. Table 7-16 Start Bulk Execution for Endpoints Main Characteristics Description Start Execute Synopsis PUT /ers/config/endpoint/bulk Request Headers Accept, Authorization, Host QueryString n/a Request Message Body BulkRequest Response Headers Content-Length, Content-Type Response Message Body n/a Response Status 202, 400, 401, 403, 404, 415, 500 Sample Request for Start Bulk Execution for Endpoints API Call PUT https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/bulk HTTP/1.1 Host: {some-ise-node-ip} Cisco Identity Services Engine API Reference Guide, Release 1.2 7-14 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Endpoints Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.ers.bulkrequest.1.0+xml { <ns3:endpointBulkRequest resourceMediaType = "vnd.com.cisco.ise.ers.identity.endpoint.1.0+xml" operationType = "create" xmlns:ns2 = "ers.ise.cisco.com" xmlns:ns3 = "identity.ers.ise.cisco.com"> <resourcesList> <resource xsi:type = "ns3:ersEndPoint" description = "created by bulk request" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"> <mac>11:22:33:44:55:66</mac> <staticGroupAssignment>false</staticGroupAssignment> <staticProfileAssignment>false</staticProfileAssignment> </resource> . . . <resource xsi:type = "ns3:ersEndPoint" description = "created by bulk request" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"> <group>Profiled</group> <groupId>804f5350-7808-11e2-bdd0-0050568e01f0</groupId> <identityStore></identityStore> <identityStoreId></identityStoreId> <mac>11:22:33:44:55:77</mac> <portalUser></portalUser> <profile>Apple-iPod</profile> <profileId>b8128870-7808-11e2-bdd0-0050568e01f0</profileId> <staticGroupAssignment>true</staticGroupAssignment> <staticProfileAssignment>true</staticProfileAssignment> </resource> </resourcesList> </ns3:endpointBulkRequest> } Sample Response for Start Bulk Execution for Endpoints API Call HTTP/1.1 202 ACCEPTED Date: Thu, 12 Jul 2012 23:59:59 GMT Location: https://ise-node-ip:9060/ers/config/endpoint/123443545334 Get Bulk Status for Endpoints If a bulk execution request is valid and no other bulk already in progress, the server returns a unique bulk identifier in the LOCATION response header. Use this ID to track the bulk status. The status report will be available for at least 2 hours after the operation’s start time. Table 7-17 Get Bulk Status Main Characteristics Description Monitor the specified bulk execution progress Synopsis GET /ers/config/endpoint/bulk/{bulkid} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body BulkStatus Response Status 200, 400, 401, 403, 404, 415, 500 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-15 Chapter 7 External RESTful Services API Operations External RESTful APIs for Endpoint Identity Groups Get Bulk Status for Endpoints Example Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/bulk/53454354534 HTTP/1.1 Host: {some-ise-node-ip} Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.bulkStatus.1.0+xml Response HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.bulkStatus.1.0+xml Content-Length: 16347 { <ns2:bulkStatus xmlns:ns2 = "ers.ise.cisco.com" successCount = "750" startTime = "Thu Mar 07 17:17:35 IST 2013" resourcesCount = "750" operationType = "create" mediaType = "vnd.com.cisco.ise.ers.identity.endpoint.1.0+xml" failCount = "0" executionStatus = "COMPLETED" bulkId = "1362669455284"> <resourcesStatus> <resourceStatus status = "SUCCUESS" description = "created by bulk request" id = "23d068d0-873a-11e2-bad4-00215edbb2a8” /> . . . . <resourceStatus status = "SUCCUESS" description = "created by bulk request" id = "23cfa580-873a-11e2-bad4-00215edbb2a8"/> </resourcesStatus> </ns2:bulkStatus> } } External RESTful APIs for Endpoint Identity Groups The following table lists the External RESTful Services APIs for endpoint identity groups: Table 7-18 ERS APIs Available for Endpoint Identity Groups Operation Method URL Content QueryString Get All Endpoints Groups GET /ers/config/endpointgroup n/a page, size, sortacs or sortdsn, filter Get Endpoint Group GET /ers/config/endpointgroup/ n/a {id1} Create Endpoint Group POST /ers/config/endpointgroup/ Endpointgroup Update Endpoint Group PUT /ers/config/endpointgroup/ Endpointgroup {id} Cisco Identity Services Engine API Reference Guide, Release 1.2 7-16 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful APIs for Endpoint Identity Groups Table 7-18 ERS APIs Available for Endpoint Identity Groups (continued) Operation Method URL Content Delete Endpoint Group DELETE /ers/config/endpointgroup/ n/a {id} Get IdentityGroup Resource Version Info GET /ers/config/ endpointgroup n/a /version QueryString 1. Endpoint Group ID is the UUID type as stored in the Cisco ISE database. Get All Endpoint Identity Groups The following table lisys the main characteristics of the Get All Endpoint Identity Groups API call: Table 7-19 Main Characteristics of Get All Endpoint Identity Groups API Call Description Retrieve a collection of endpoint groups Synopsis GET /ers/config/endpoint Request Headers Accept, Authorization, Host QueryString page, size, sortasc, sortdsc, filter Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body List of updated fields Response Status 202, 400, 401, 403, 404, 415, 429, 500 Sample Request for Get All Endpoint Identity Groups API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/endpointgroup Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.endpointgroup.1.0+xml Sample Response for Get All Endpoint Identity Groups API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult total="2" xmlns:ns2="ers.ise.cisco.com"> <resources> <resource name="name1" id="id1" description="description1"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/endpointgroup/id1" rel="self"/> </resource> <resource name="name2" id="id2" description="description2"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/endpointgroup/id2" rel="self"/> </resource> </resources> </ns2:searchResult> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-17 Chapter 7 External RESTful Services API Operations External RESTful APIs for Endpoint Identity Groups } Get Endpoint Identity Groups by ID The following table lists the main characteristics of the Get Endpoint Identity Groups by ID API call: Table 7-20 Main Characteristics of Read Endpoint Identity Groups API Call Description Retrieve the specified endpoint group Synopsis GET /ers/config/endpoint/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type Endpoint Response Status 200, 400, 401,403, 404, 415, 429, 500 Sample Request for Read Endpoint Identity Groups API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.endpointgroup.1.0+xml Sample Response for Read Endpoint Identity Groups API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.identity.endpointgroup.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:endpointgroup description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <systemDefined>true</systemDefined> </ns3:endpointgroup> } Create Endpoint Identity Groups The following table lists the main characteristics of the Create Endpoint Identity Groups API call: : Table 7-21 Main Characteristics of Create Endpoint Identity Groups API Call Description Create the specified endpoint group Synopsis POST /ers/config/endpoint/ Request Headers Accept, Authorization, Host QueryString N/A Cisco Identity Services Engine API Reference Guide, Release 1.2 7-18 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful APIs for Endpoint Identity Groups Table 7-21 Main Characteristics of Create Endpoint Identity Groups API Call (continued) Request Message Body Endpoint Group Response Headers Content-Length, Content-Type, Location Response Message Body Endpoint Goup Response Status 201, 400, 401, 403, 415, 429, 500 Sample Request for Create Endpoint Identity Groups API Call POST https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.endpointgroup.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:endpointgroup description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <systemDefined>true</systemDefined> </ns3:endpointgroup> } Sample Response for Create Endpoint Identity Groups API Call HTTP/1.1 201 OK (see the location header for the new endpoint ID) Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: Location: https://cisco.com/ers/config/endpointgroup/444 Update Endpoint Identity Groups The following table lists the main characteristics of the Update Endpoint Identity Groups API call: Table 7-22 Main Characteristics of Update Endpoint Identity Groups API Call Description Update the specified endpoint group Synopsis PUT /ers/config/endpoint/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body Endpoint Group Response Headers Content-Length, Content-Type Response Message Body List of updated fields Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Update Endpoint Identity Groups API Call PUT https://<ISE-ADMIN-NODE>:9060/ers/config/ endpoint /333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.endpointgroup.1.0+xml { Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-19 Chapter 7 External RESTful Services API Operations External RESTful APIs for Endpoint Identity Groups <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:endpointgroup xmlns:ns2="identity.ers.ise.cisco.com" description="updated" id="0" name="Group"> <systemDefined>false</systemDefined> </ns2:endpointgroup> } Sample Response for Update Endpoint Identity Groups API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.updatedfields.1.0+xml Content-Length: 529 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:updatedFields xmlns:ns2="ers.ise.cisco.com"> <updatedField field="description"> <newValue>updated</newValue> <oldValue>Group</oldValue> </updatedField> </ns2:updatedFields> } Delete Endpoint Identity Groups The following table lists the main characteristics of the Delete Endpoint Identity API call: Table 7-23 Main Characteristics of Delete Endpoint Identity Groups API Call Description Delete the specified endpoint group Synopsis DELETE /ers/config/endpointgroup/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body NA Response Status 204, 400, 401, 403, 404, 415, 429, 500 Sample Request for Delete Endpoint Identity Groups API Call DELETE https://<ISE-ADMIN-NODE>:9060/ers/config/endpoint/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.endpointgroup.1.0+xml Sample Response for Delete Endpoint Identity Groups API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Cisco Identity Services Engine API Reference Guide, Release 1.2 7-20 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Identity Groups External RESTful Services APIs for Identity Groups The following table lists the External RESTful Services APIs for Identity Groups: Table 7-24 APIs Available for Identity Groups Operation Method URL Content Get All Identity Groups GET /ers/config/identitygroup n/a Get IdentityGroup Resource Version Info GET /ers/config/identitygroup n/a /version QueryString page, size, sortacs or sortdsn, filter Retrieve All Identity Groups You can use this API call to retrieve all identity groups in Cisco ISE. The following table lists the main characteristics of this API call: Table 7-25 Main Characteristics of Retrieve All Identity Groups API Call Description Retrieve a collection of identity group resources Synopsis GET /ers/config/identitygroup Request Headers Accept, Authorization, Host QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Retrieve All Identity Group API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/identitygroup?page=0&size=20&sortacs=name Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.identitygroup.1.0+xml Sample Response for Retrieve All Identity Group API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult total="2" xmlns:ns2="ers.ise.cisco.com"> <resources> <resource name="name1" id="id1" description="description1"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/identitygroup/id1" rel="self"/> </resource> <resource name="name2" id="id2" description="description2"> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-21 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/identitygroup/id2" rel="self"/> </resource> </resources> </ns2:searchResult> } External RESTful Services APIs for Guest Users The following table lists the External RESTful Services APIs for Guest Users: Table 7-26 Supported Scenarios Operation Method URL Content Get Specific Guest User GET /ers/config/guestuser/{id} n/a Get All Guest Users GET /ers/config/guestuser/ n/a Create Guest User POST /ers/config/guestuser / guest user information (XML) Update Guest User PUT /ers/config/guestuser/{id} partial or full guest user information (XML) Delete Guest User DELETE /ers/config/guestuser/{id} n/a Suspend Guest User PUT /ers/config/guestuser/suspend/{id} reason Reinstate Guest User PUT /ers/config/guestuser/reinstate/{id} n/a Send Email PUT /ers/config/guestuser/email/{id}/ portalId/{portalId} senderEmail Send SMS PUT /ers/config/guestuser/sms/{id}/portalId n/a /{portalId} Approve Guest User PUT /ers/config/guestuser/approve/{id} n/a Deny Guest User PUT /ers/config/guestuser/deny/{id} n/a Start Bulk Execution PUT /ers/config/ guestuser/bulk BulkRequest Get Bulk Status GET /ers/config/ guestuser/bulk/{bulkId} n/a Change Sponsor’s Password PUT /ers/config/guestuser/changeSponsor Password/{portalId} operationAdd itionalData Get All Portals GET /ers/config/portal n/a Get Portal by ID GET /ers/config/portal/{id} n/a Get Guest API Info GET /ers/config/guestuser/versioninfo n/a Content Type and Accept Headers Each guest account request needs to set the following: • Content Type as: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Cisco Identity Services Engine API Reference Guide, Release 1.2 7-22 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users • Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Each bulk execution request needs to set the following: • Content Type as: application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml • Accept: application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml Get a Guest User You can use the GET operation to retrieve specific guest users from the ISE database using either the guest’s username or database record ID. Table 7-27 Get a Guest User Main Characteristics Description Retrieve the specified Guest User Synopsis GET /ers/config/guestuser/{id} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body Resource of type GuestUser Response Status 200, 400, 401, 403, 404, 415, 500 Get a Guest User Examples • Get a Guest User by ID Example, page 7-23 • Filter by Usernames that Start with “ilucky” Example, page 7-24 • Filter by Username that Starts with “ilucky” and Last Name that Starts with “J” Example, page 7-25 • Filter By the First Name “John” and Sort By Username Example, page 7-26 • Guest User Request and Response Using curl Example, page 7-26 Get a Guest User by ID Example Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/3333 Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Accept - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization - Basic xxxxxxxxxxxxxxxxxxx Response <?xml version="1.0" encoding="UTF-8"?> <ns3:guestuser xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com" name="fzvhervocnz" id="af827350-1f0f-11e4-b961-005056103001"> <link type="application/xml" href="https://10.0.10.130:9060/ers/config/guestuser/3333" rel="self"/> <customFields/> <guestAccessInfo> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-23 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <fromDate>08/08/2014 08:21</fromDate> <toDate>08/09/2014 08:21</toDate> <validDays>1</validDays> </guestAccessInfo> <guestInfo> <company>Cisco</company> <creationTime>08/08/2014 08:21</creationTime> <emailAddress>doe@example.com</emailAddress> <enabled>true</enabled> <firstName>John</firstName> <lastName>Doe</lastName> <notificationLanguage>English</notificationLanguage> <password>12345</password> <phoneNumber>9999998877</phoneNumber> <smsServiceProvider>ATT</smsServiceProvider> <userName>Guest1</userName> </guestInfo> <guestType>Daily (default)</guestType> <personBeingVisited>sponsor@example.com</personBeingVisited> <reasonForVisit>Interview</reasonForVisit> <sponsorUserName>SponsoredUser1</sponsorUserName> <status>Awaiting Initial Login</status> </ns3:guestuser> Related Topics See Guest Passwords, page 2-4 for details on password visibility in the API. Filter by Usernames that Start with “ilucky” Example Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/?filter=userName.STARTSW.ilucky Response <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="8"> <resources> <resource name="ilucky101" id="a0957160-6224-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/a0957160-6224-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky102" id="e14f4460-6224-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/e14f4460-6224-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky201" id="123581f0-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/123581f0-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky301" id="154f9330-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/154f9330-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky401" id="172c6980-6227-11e3-9bc2-000c2932c73c"> Cisco Identity Services Engine API Reference Guide, Release 1.2 7-24 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/172c6980-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky501" id="19631fa0-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/19631fa0-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky601" id="1b44b0e0-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/1b44b0e0-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky602" id="2e1ac600-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/2e1ac600-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> </resources> </ns2:searchResult> Filter by Username that Starts with “ilucky” and Last Name that Starts with “J” Example Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/?filter=userName.STARTSW.ilucky&filter= lastName.STARTSW.j Response <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="8"> <resources> <resource name="ilucky101" id="a0957160-6224-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/a0957160-6224-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky102" id="e14f4460-6224-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/e14f4460-6224-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky201" id="123581f0-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/123581f0-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky301" id="154f9330-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/154f9330-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky401" id="172c6980-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/172c6980-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky501" id="19631fa0-6227-11e3-9bc2-000c2932c73c"> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-25 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/19631fa0-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky601" id="1b44b0e0-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/1b44b0e0-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> <resource name="ilucky602" id="2e1ac600-6227-11e3-9bc2-000c2932c73c"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/2e1ac600-6227-11e3-9bc2-000c2932c73 c" rel="self"/> </resource> </resources> </ns2:searchResult> Filter By the First Name “John” and Sort By Username Example Request GET https://<ISE-Admin-node>:9060/ers/config/guestuser/?page=0&size=10&sortdsc=name&filter=fir stName.eq.john Response <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="2"> <resources> <resource name="jdoe0002" id="886f5b40-5ece-11e3-8faf-000c29c56fc6"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/886f5b40-5ece-11e3-8faf-000c29c56fc 6" rel="self"/> </resource> <resource name="jdoe0001" id="79e5a5a0-5df9-11e3-84f5-000c29c56fc6"> <link type="application/xml" href="https://ISE-ADMIN-NODE:9060/ers/config/guestuser/79e5a5a0-5df9-11e3-84f5-000c29c56fc 6" rel="self"/> </resource> </resources> </ns2:searchResult> Guest User Request and Response Using curl Example The following example describes a request for getting an guest user by ID sent to ISE and its response using curl Linux command. curl Command $ curl -v -k -H 'ACCEPT:application/vnd.com.cisco.ise.identity.guestuser.2.0+xml' https://username:password@<ISE-ADMIN-NODE>:9060/ers/config/guestuser/user1 * About to connect() to <ISE-ADMIN-NODE> port 9060 * Trying 111.11.11.111... * connected * Connected to <ISE-ADMIN-NODE> (<ISE-ADMin-NODE-IP>) port 9060 * successfully set certificate verify locations: * CAfile: /usr/share/ssl/certs/ca-bundle.crt CApath: none * SSL connection using DHE-RSA-AES256-SHA * Server certificate: Cisco Identity Services Engine API Reference Guide, Release 1.2 7-26 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users * * * * * * Server subject: /CN=<ISE-ADMIN-NODE> start date: 2013-11-26 00:56:55 GMT expire date: 2014-11-26 00:56:55 GMT common name: <ISE-ADMIN-NODE> issuer: /CN=<ISE-ADMIN-NODE> auth using Basic with user 'username' GET Guest User by ID Request > GET /ers/config/guestuser/444 Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: curl/7.12.1 (i386-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6 Host: <ISE-ADMIN-NODE>:9060 Pragma: no-cache ACCEPT:application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Response < HTTP/1.1 200 OK < Pragma: No-cache < Cache-Control: no-cache < Expires: Wed, 31 Dec 1969 16:00:00 PST < Set-Cookie: JSESSIONIDSSO=0FCBC2621A0897193FE3105B3FBA8F16; Path=/; Secure < Set-Cookie: JSESSIONID=5B6092B3FCCE047F7282C52592FAFC7A; Path=/ers; Secure < Date: Thu, 02 Jan 2014 23:01:59 GMT < Content-Type: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml < Content-Length: 1162 < Server: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:guestuser xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com" name="user1" id="b4bdf2b0-73e1-11e3-8cdf-000c29c56fc6"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/444" rel="self"/> <guestAccessInfo> <fromDate>08/06/2014 23:26</fromDate> <toDate>08/07/2014 23:26</toDate> <validDays>1</validDays> </guestAccessInfo> <guestInfo> <company>New Company</company> <emailAddress>john@example.com</emailAddress> <firstName>John</firstName> <lastName>Doe</lastName> <notificationLanguage>English</notificationLanguage> <phoneNumber>9999998877</phoneNumber> <smsServiceProvider>Global Default</smsServiceProvider> <userName>user1</userName> </guestInfo> <guestType>Daily (default)</guestType> <personBeingVisited>sponsor@example.com</personBeingVisited> <portalId>ff2d99e0-2101-11e4-b5cf-005056bf2f0a</portalId> <reasonForVisit>Interview</reasonForVisit> </ns3:guestuser> Related Topics See Guest Passwords, page 6-6 for details on password visibility in the API. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-27 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users Get All Guest Users You can use the GET operation to retrieve all guest users in the ISE database and filter the results based on criteria such as name, username, or email address. The response includes the guest’s username, ID, and a link to its full representation. Table 7-28 Get All Guest Users Main Characteristics Description Retrieve a collection of Guest Users Synopsis GET /ers/config/guestuser/ Request Headers Accept, Authorization, Host QueryString page, size, sortasc, sortdsc, filter Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 500 Related Topics Filtering Parameters, page 2-8 Get All Example In the following example, the GET operation retrieves all guest users with a username that starts with ilu and a first name that starts with b. Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/?page=0&size=10&sortasc=name&filter=nam e.STARTSW.ilu&filter=firstName.STARTSW.b Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Accept - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization - Basic xxxxxxxxxxxxxxxxxxx Response HTTP/1.1 200 OK; Date:Sat, 15 Dec 2012 21:55:05 GMT; Content-Length:1439; Content-Type:application/vnd.com.cisco.ise.ers.searchresult.1.0+xml; <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="6"> <resources> <ns2:resource name="ilucky01" id="61dc9060-46a1-11e2-b141-000c290fcf9a"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/61dc9060-46a1-11e2-b141-000c290fc f9a" rel="self"/> </ns2:resource> <ns2:resource name="ilucky02" id="3f43bb40-468e-11e2-8f92-000c290fcf9a"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/3f43bb40-468e-11e2-8f92-000c290fc f9a" rel="self"/> Cisco Identity Services Engine API Reference Guide, Release 1.2 7-28 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users </ns2:resource> <ns2:resource name="ilucky03" id="6c65d6d0-468e-11e2-8f92-000c290fcf9a"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/6c65d6d0-468e-11e2-8f92-000c290fc f9a" rel="self"/> </ns2:resource> <ns2:resource name="ilucky04" id="6948bdb0-46a1-11e2-b141-000c290fcf9a"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/6948bdb0-46a1-11e2-b141-000c290fc f9a" rel="self"/> </ns2:resource> <ns2:resource name="ilucky05" id="abbb6440-46a1-11e2-b141-000c290fcf9a"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/abbb6440-46a1-11e2-b141-000c290fc f9a" rel="self"/> </ns2:resource> <ns2:resource name="ilucky06" id="4d9a1530-46fd-11e2-b70b-000c290fcf9a"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/4d9a1530-46fd-11e2-b70b-000c290fc f9a" rel="self"/> </ns2:resource> </resources> </ns2:searchResult> Create a Guest User You can use the POST operation to create a new guest user account, which allows a guest to log in through the guest flow. The guestType is required to create a guest user account. Table 7-29 Create a Guest User Main Characteristics Description Create the specified Internal User Synopsis POST /ers/config/guestuser/ Request Headers Accept, Authorization, Host QueryString n/a Request Message Body GuestUser Response Headers Content-Length, Content-Type, Location Response Message Body Resource of type GuestUser Response Status 201, 400, 401, 403, 415, 500 Create a Guest User Example Request POST https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/ Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Accept - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization - Basic xxxxxxxxxxxxxxxxxxx <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:guestuser xmlns:ns2="identity.ers.ise.cisco.com"> <guestAccessInfo> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-29 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <fromDate>08/08/2014 08:15</fromDate> <toDate>08/09/2014 08:15</toDate> <validDays>1</validDays> </guestAccessInfo> <guestInfo> <company>New Company</company> <emailAddress>doe@example.com</emailAddress> <firstName>John</firstName> <lastName>Doe</lastName> <notificationLanguage>English</notificationLanguage> <phoneNumber>9999998877</phoneNumber> <smsServiceProvider>Global Default</smsServiceProvider> <userName>guestuser1</userName> </guestInfo> <guestType>Daily (default)</guestType> <personBeingVisited>sponsor@example.com</personBeingVisited> <portalId>ff2d99e0-2101-11e4-b5cf-005056bf2f0a</portalId> <reasonForVisit>Interview</reasonForVisit> </ns2:guestuser> Response HTTP/1.1 201 Created; Date:Sat, 15 Dec 2012 21:20:51 GMT; Content-Length:0; Location:https://<ISE-ADMIN-NODE>/ers/config/guestuser/e1bb8290-6ccb-11e3-8cdf-000c29c56fc 6; Set-Cookie:JSESSIONID=28CF43F1ACCC7448BED7255DC7B787EE; Path=/ers; Secure;JSESSIONIDSSO=DB6D6900088D1863CA84863570392E4C; Path=/; Secure; Content-Type:application/xml; Related Topics See Guest Passwords, page 2-4 for details on password visibility in the API. Update a Guest User Updating a resource using the PUT operation gives you the ability to change the attributes of an existing guest user. A full or partial update can be done of the guest user’s attributes. Table 7-30 Update a Guest User Main Characteristics Description Update the specified Guest User Synopsis PUT /ers/config/guestuser/{id} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body GuestUser Response Headers Content-Length, Content-Type Response Message Body List of updated fields Response Status 200, 400, 401, 403, 404, 415, 500 Update Guest Users Examples • Update User Example, page 7-31 Cisco Identity Services Engine API Reference Guide, Release 1.2 7-30 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users • Reset User’s Password Example, page 7-31 Update User Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/name/ilucky101 Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Accept - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization - Basic xxxxxxxxxxxxxxxxxxx <?xml version="1.0" encoding="UTF-8"?> <ns2:guestuser xmlns:ns2="identity.ers.ise.cisco.com"> <portalId>ff2d99e0-2101-11e4-b5cf-005056bf2f0a</portalId> <reasonForVisit>Interview</reasonForVisit> </ns2:guestuser> Response Status:200 OK <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:updatedFields xmlns:ns2="ers.ise.cisco.com"> <updatedField field="ReasonForVisit"> <newValue>Interview</newValue> <oldValue>no reason</oldValue> </updatedField> <updatedField field="validDays"> <newValue>0</newValue> <oldValue>1</oldValue> </updatedField> </ns2:updatedFields> Reset User’s Password Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/e1bb8290-6ccb-11e3-8cdf-000c29c56f c6 Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Accept - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization - Basic xxxxxxxxxxxxxxxxxxx <?xml version="1.0" encoding="UTF-8"?> <ns2:guestuser xmlns:ns2="identity.ers.ise.cisco.com"> <guestInfo> <password/> </guestInfo> <portalId>ff2d99e0-2101-11e4-b5cf-005056bf2f0a</portalId> </ns2:guestuser> Response Status:200 OK <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:updatedFields xmlns:ns2="ers.ise.cisco.com"> <updatedField field="validDays"> <newValue>0</newValue> <oldValue>1</oldValue> </updatedField> <updatedField field="GuestInfo.Password"> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-31 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <newValue>;AuJ5h:0</newValue> </updatedField> </ns2:updatedFields> Related Topics See Guest Passwords, page 2-4 for details on password visibility in the API. Delete a Guest User You can delete a guest user’s record from the ISE database using the database record ID. The user will not be able to log in during their next attempt. Table 7-31 Delete a Guest User Main Characteristics Description Delete the specified Guest User Synopsis DELETE /ers/config/guestuser/{id} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body n/a Response Status 204, 400, 401, 403, 404, 415, 500 Delete a Guest User Example Request DELETE https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/3333 Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Accept - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Authorization - Basic xxxxxxxxxxxxxxxxxxx Response HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Suspend a Guest User Use the PUT operation to suspend a specific guest user. The user will not be able to log in during their next attempt. You must include a reason for the suspension. The reason can include spaces. Table 7-32 Suspend a Guest User Main Characteristics Description Suspend the specified Guest User Synopsis PUT /ers/config/guestuser/suspend/{id} Request Headers Accept, Authorization, Host QueryString n/a Cisco Identity Services Engine API Reference Guide, Release 1.2 7-32 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users Table 7-32 Suspend a Guest User Main Characteristics Request Message Body reason Response Headers Content-Length, Content-Type Response Message Body Resource of type GuestUser Response Status 204, 400, 401, 403, 404, 415, 500 Suspend a Guest User by ID Example Request PUT https:/<ISE-ADMIN-NODE>:9060/ers/config/guestuser/suspend/3333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Content-Type - application/vnd.com.cisco.ise.identity.guestuser.2.0+xml <?xml version="1.0" encoding="UTF-8"?> <ns3:operationAdditionalData xmlns:ns2="identity.ers.ise.cisco.com" xmlns:ns3="ers.ise.cisco.com"> <requestAdditionalAttributes> <additionalAttribute name="reason" value="AUP not accepted"/> </requestAdditionalAttributes> </ns3:operationAdditionalData> Response HTTP/1.1 204 No Content Sat, 15 Dec 2012 10:14:38 GMT Reinstate a Guest User Use the PUT operation to reinstate a suspended guest’s user account. Table 7-33 Reinstate a Guest User Main Characteristics Description Reinstate the specified Guest User Synopsis PUT /ers/config/guestuser/reinstate/{id} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body Resource of type GuestUser Response Status 204, 400, 401, 403, 404, 415, 500 Reinstate Guest User Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/reinstate/33 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-33 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users Response HTTP/1.1 204 OK Date: Sat, 15 Dec 2012 10:20:48 GMT Send an Email to a Guest User Use the PUT operation to send an email to a guest user’s email account. This requires an SMTP server to be configured in Cisco ISE. The request requires a portal ID because the portal configuration contains information needed for the email body and subject. Table 7-34 Send an Email to a Guest User Main Characteristics Description Send an email to the specified Guest User Synopsis PUT /ers/config/guestuser/email/{id}/portalId/ {portalID} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body senderEmail Response Headers Content-Length, Content-Type Response Message Body n/a Response Status 204, 400, 401, 403, 404, 415, 500 Send an Email to a Guest User Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/email/4444/portalId/ff2d99e0-2101-11e4b5cf-005056bf2f0a Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml <?xml version="1.0" encoding="UTF-8"?> <ns3:operationAdditionalData xmlns:ns2="identity.ers.ise.cisco.com" xmlns:ns3="ers.ise.cisco.com"> <requestAdditionalAttributes> <additionalAttribute name="senderEmail" value="sender Email"/> </requestAdditionalAttributes> </ns3:operationAdditionalData> Response HTTP/1.1 204 OK Date: Sat, 15 Dec 2012 10:20:48 GMT Send an SMS Text to a Guest User Use the PUT operation to send a text message to a guest user’s mobile phone. This requires an SMTP server to be configured in Cisco ISE. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-34 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users The request requires a portal ID because the portal configuration contains information needed for the text body. Table 7-35 Send an Email to a Guest User Main Characteristics Description Send an sms to the specified Guest User Synopsis PUT /ers/config/guestuser/sms/{id}/portalId/ {portalID} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body n/a Response Status 204, 400, 401, 403, 404, 415, 500 Send an SMS Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/sms/444/portalId/ff2d99e0-2101-11e4-b5c f-005056bf2f0a Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Response HTTP/1.1 204 OK Date: Sat, 15 Dec 2012 10:20:48 GMT Approve a Guest User This operation allows you to approve a guest user account. This requires using the guest account ID. Table 7-36 Get API Version Main Characteristics Description Approve the specified Guest User Synopsis PUT /ers/config/guestuser/approve/{id} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body API version Response Status 200, 400, 401, 403, 404, 415, 500 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-35 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users Approve a Guest User Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/approve/3333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Response HTTP/1.1 204 OK Date: Sat, 15 Dec 2012 10:20:48 GMT Deny Approval for a Guest User Account This operation allows you to deny approval for a guest user account. This requires using the guest account ID. Table 7-37 Get API Version Main Characteristics Description Deny the specified Guest User Synopsis PUT /ers/config/guestuser/deny/{id} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body API version Response Status 200, 400, 401, 403, 404, 415, 500 Deny a Guest User’s Approval Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/deny/7777 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml Response HTTP/1.1 204 OK Date: Sat, 15 Dec 2012 10:20:48 GMT Start Bulk Execution for Guest Users A bulk request will allow you to send up to 500 operations in a single request, or up to 5000 operations based on ID. If the request is valid, the server returns the status code 202 (ACCEPTED) and a unique bulk identifier in the LOCATION response header that you can use to track the bulk status using the Get Bulk Status operation. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-36 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users Only one bulk is allowed to run at a time. If a bulk request was posted while another bulk is still running, the server will return with a response status 503 (Service Unavailable) with a corresponding descriptive message asking the client to try again later. Table 7-38 Start Bulk Execution Main Characteristics Description Start Execute Synopsis PUT /ers/config/guestuser/bulk Request Headers Accept, Authorization, Host QueryString n/a Request Message Body BulkRequest Response Headers Content-Length, Content-Type Response Message Body n/a Response Status 202, 400, 401, 403, 404, 415, 500 Create Guest Bulk Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/bulk Authorization: Basic Content-Type: application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:bulkRequest xsi:type="ns2:guestUserBulkRequest" resourceMediaType="vnd.com.cisco.ise.identity.guestuser.1.0+xml" operationType="create" xmlns:ns2="identity.ers.ise.cisco.com" xmlns:ns3="ers.ise.cisco.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <resourcesList> <resource xsi:type="ns2:GuestUser" description="created by bulk"> <portalId>6ab68890-d0f1-11e3-a1d5-005056bf4687</portalId> <guestAccesstInfo> <groupTag>group</groupTag> <validDays>2</validDays> <location>London</location> <ssid>guest_ssid</ssid> </guestAccesstInfo> <guestInfo> <company>new company</company> <emailAddress>joe@example.com</emailAddress> <enabled>true</enabled> <firstName>John</firstName> <lastName>Doe</lastName> <phoneNumber>6033203311</phoneNumber> <userName>lucky7</userName> <password>1234</password> <notificationLanguage>English</notificationLanguage> <smsServiceProvider>ATT</smsServiceProvider> </guestInfo> <guestType>DAILY</guestType> <reasonForVisit>interview</reasonForVisit> <personBeingVisited>sponsor@cisco.com</personBeingVisited> </resource> ... Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-37 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users <resource xsi:type="ns2:GuestUser" description="created by bulk"> <portalId>6ab68890-d0f1-11e3-a1d5-005056bf4687</portalId> <guestAccesstInfo> <groupTag>group</groupTag> <validDays>3</validDays> <location>London</location> <ssid>guest_ssid</ssid> </guestAccesstInfo> <guestInfo> <company>new company</company> <emailAddress>mary@example.com</emailAddress> <enabled>true</enabled> <firstName>Mary</firstName> <lastName>Sue</lastName> <phoneNumber>6039990000</phoneNumber> <userName>lucky13</userName> <password>1234</password> <notificationLanguage>English</notificationLanguage> <smsServiceProvider>ATT</smsServiceProvider> </guestInfo> <guestType>DAILY</guestType> <reasonForVisit>interview</reasonForVisit> <personBeingVisited>sponsor@cisco.com</personBeingVisited> </resource> </resourcesList> </ns3:bulkRequest> Response HTTP/1.1 202 ACCEPTED Date: Thu, 12 Jul 2012 23:59:59 GMT Location: https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/123443545334 Related Topics Get Bulk Status for Endpoints, page 7-15 Get Bulk Status for Guest Users If a bulk execution request is valid and no other bulk already in progress, the server returns a unique bulk identifier in the LOCATION response header. Use this ID to track the bulk status. The status report will be available for at least 2 hours after the operation’s start time. Table 7-39 Get Bulk Status Main Characteristics Description Monitor the specified bulk execution progress Synopsis GET /ers/config/guestuser/bulk/{bulkid} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Response Headers Content-Length, Content-Type Response Message Body BulkStatus Response Status 200, 400, 401, 403, 404, 415, 500 Cisco Identity Services Engine API Reference Guide, Release 1.2 7-38 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Guest Users Get Bulk Status for Guest Users Example Request GET https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/bulk/53454354534 HTTP/1.1 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.guestuserbulkrequest.1.0+xml Response HTTP/1.1 200 OK Date: Thu Mar 07 18:17:35 IST 2013 GMT Content-Type: application/vnd.com.cisco.ise.ers.guestuserbulkrequest.1.0+xml Content-Length: 16347 { <ns2:bulkStatus xmlns:ns2 = "ers.ise.cisco.com" successCount = "50" startTime = "Thu Mar 07 17:17:35 IST 2013" resourcesCount = "50" operationType = "create" resourceMediaType = "vnd.com.cisco.ise.ers.identity.guestuser.1.0+xml" failCount = "0" executionStatus = "COMPLETED" bulkId = "53454354534"> <resourcesStatus> <resourceStatus status = "SUCCUESS" description = "created by bulk request" id = "23d068d0-873a-11e2-bad4-00215edbb2a8"/> ... <resourceStatus status = "SUCCUESS" description = "created by bulk request" id = "23cfa580-873a-11e2-bad4-00215edbb2a8"/> </resourcesStatus> </ns2:bulkStatus> } Change a Sponsor’s Password This operation allows you to change the password of the sponsor who is currently logged in. This requires using the portal ID. Table 7-40 Get API Version Main Characteristics Description Update the logged-in sponsor’s password Synopsis PUT /ers/config/guestuser/changeSponsorPassword/ {portalId} Request Headers Accept, Authorization, Host QueryString n/a Request Message Body n/a Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-39 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Portals Table 7-40 Get API Version Main Characteristics Response Headers Content-Length, Content-Type Response Message Body API version Response Status 200, 400, 401, 403, 404, 415, 500 Change a Sponsor’s Password Example Request PUT https://<ISE-ADMIN-NODE>:9060/ers/config/guestuser/changeSponsorPassword/88888 Host: cisco.com Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.identity.guestuser.2.0+xml <?xml version="1.0" encoding="UTF-8"?> <ns3:operationAdditionalData xmlns:ns2="identity.ers.ise.cisco.com" xmlns:ns3="ers.ise.cisco.com"> <requestAdditionalAttributes> <additionalAttribute name="newPassword" value="Cisco1234"/> <additionalAttribute name="currentPassword" value="Autom8me"/> </requestAdditionalAttributes> </ns3:operationAdditionalData> Response HTTP/1.1 204 OK Date: Sat, 15 Dec 2012 10:20:48 GMT External RESTful Services APIs for Portals The following table lists the External RESTful Services APIs for Portals: Table 7-41 APIs Available for Portals Operation Method URL Content QueryString Get All Portals GET /ers/config/portal n/a Page, Size, sortacs or sortdsn, Filter Get Portal by ID GET /ers/config/portal/{id} n/a Get All Portals The following table lists the main characteristics of the Get All Portals API call: Table 7-42 Main Characteristics of Get All Portals API Call Description Retrieve a collection of portals Synopsis GET /ers/config/portal Request Headers Accept, Authorization, Host Cisco Identity Services Engine API Reference Guide, Release 1.2 7-40 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Portals Table 7-42 Main Characteristics of Get All Portals API Call (continued) QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415,500 Sample Request for Get All Portals Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/portal Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.portal.1.0+xml Sample Response for Get All Portals Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="utf-8" standalone="yes"?> <ns2:searchResult total="2" xmlns:ns2="ers.ise.cisco.com"> <resources> <resource name="portal1" id="id1"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/portal/id1" rel="self"/> </resource> <resource name="portal2" id="id2"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/portal/id2" rel="self"/> </resource> </resources> </ns2:searchResult> Get Portal by ID The following table lists the main characteristics of the Get Portal by ID API call: Table 7-43 Main Characteristics of Get Portal by ID API Call Description Retrieve the specified portal Synopsis GET /ers/config/portal/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type Portal Response Status 200, 400, 401,403, 404, 415, 500 Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-41 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Portals Sample Request for Get Portal by ID Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/portal/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.identity.portal.1.0+xml Sample Response for Get Portal by ID Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.identity.portal.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:portal name="sponsor" id="d7b703f0-b073-11e3-bd6c- 005056a15fa7" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="identity.ers.ise.cisco.com"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/portal/333" rel="self"/> <allowSponsorToChangeOwnPassword>false</allowSponsorToChangeOwnPassword> <GuestUserFieldList> <GuestUserField> <customType>false</customType> <dataType>DROPDOWN</dataType> <dictionaryLabelKey>ui_sms_provider_label</dictionaryLabelKey> <labelName>SMS Service Provider</labelName> <required>true</required> </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>TEXT</dataType> <dictionaryLabelKey>ui_company_label</dictionaryLabelKey> <labelName>Company</labelName> <required>true</required> </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>TEXT</dataType> <dictionaryLabelKey>ui_first_name_label</dictionaryLabelKey> <labelName>First name</labelName> <required>true</required> </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>TEXT</dataType> <dictionaryLabelKey>ui_reason_visit_label</dictionaryLabelKey> <labelName>Reason for visit</labelName> <required>true</required> </GuestUserField> <GuestUserField> <customType>true</customType> <dataType>TEXT</dataType> <dictionaryLabelKey>ui_ssn-number_text_label</dictionaryLabelKey> <instructionText>social </instructionText> <labelName>ssn-number</labelName> <required>false</required> </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>PHONE</dataType> <dictionaryLabelKey>ui_phone_number_label</dictionaryLabelKey> <labelName>Phone number</labelName> <required>true</required> Cisco Identity Services Engine API Reference Guide, Release 1.2 7-42 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Devices </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>EMAIL</dataType> <dictionaryLabelKey>ui_person_visited_label</dictionaryLabelKey> <labelName>Person being visited</labelName> <required>true</required> </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>EMAIL</dataType> <dictionaryLabelKey>ui_email_address_label</dictionaryLabelKey> <labelName>Email address</labelName> <required>true</required> </GuestUserField> <GuestUserField> <customType>false</customType> <dataType>TEXT</dataType> <dictionaryLabelKey>ui_last_name_label</dictionaryLabelKey> <labelName>Last name</labelName> <required>true</required> </GuestUserField> </GuestUserFieldList> </ns3:portal> } External RESTful Services APIs for Network Devices The following table lists the External RESTful Services APIs for Network Devices: Table 7-44 APIs Available for Portals Operation Method URL Content QueryString Get All Network Devices GET /ers/config/networkdevice n/a Page, Size, sortacs or sortdsn, Filter Get Network Device GET /ers/config/networkdevice /{id} n/a Create Network Device POST /ers/config/networkdevice networkde vice Update Network Device PUT /ers/config/networkdevice /{id} networkde vice Delete Network Device DELETE /ers/config/networkdevice /{id} n/a Get Network Device Resource Version Info GET /ers/config/ networkdevice /versioninfo n/a Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-43 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Devices Get All Network Devices The following table lists the main characteristics of the Get All Network Devices API call: Table 7-45 Main Characteristics of Get All Network Devices API Call Description Retrieve a collection of network device resources Synopsis GET /ers/config/networkdevice Request Headers Accept, Authorization, Host QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 500 Sample Request for Get All Network Devices Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevice?page=1&size=20&sortacs=name Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml Sample Response for Get All Network Devices Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="1"> <resources> <resource name="nd1" id="0d008bb0-2539-11e3-84ad00215edbb2a8"> <link type="application/xml" href="https://10.56.13.196:9060/ers/config/networkdevice/0d0 08bb0-2539-11e3-84ad-00215edbb2a8" rel="self"/> </resource> </resources> </ns2:searchResult> } Get Network Device by ID The following table lists the main characteristics of the Get Network Device by ID API call: Table 7-46 Main Characteristics of Get Network Device by ID API Call Description Retrieve the specified network device Synopsis GET /ers/config/networkdevice/{id} Request Headers Accept, Authorization, Host QueryString N/A Cisco Identity Services Engine API Reference Guide, Release 1.2 7-44 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Devices Table 7-46 Main Characteristics of Get Network Device by ID API Call (continued) Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type Network Device Response Status 200, 400, 401, 403, 404, 415, 500 Sample Request for Get Network Device by ID Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevice/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml Sample Response for Get Network Device by ID Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:networkdevice xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="network.ers.ise.cisco.com" name="nd1" id="0d008bb0-2539-11e3-84ad-00215edbb2a8"> <link type="application/xml" href="https://10.56.13.196:9060/ers/config/networkdevice/0d0 08bb0-2539-11e3-84ad-00215edbb2a8" rel="self"/> <authenticationSettings> <enableKeyWrap>false</enableKeyWrap> <keyInputFormat>ASCII</keyInputFormat> <networkProtocol>RADIUS</networkProtocol> <radiusSharedSecret>*****</radiusSharedSecret> </authenticationSettings> <NetworkDeviceIPList> <NetworkDeviceIP> <ipaddress>1.2.3.4</ipaddress> <mask>32</mask> </NetworkDeviceIP> </NetworkDeviceIPList> <modelName>Unknown</modelName> <NetworkDeviceGroupList> <NetworkDeviceGroup>1d8c62b0-2539-11e3-84ad00215edbb2a8</NetworkDeviceGroup> <NetworkDeviceGroup>37053aa0-2539-11e3-84ad00215edbb2a8</NetworkDeviceGroup> </NetworkDeviceGroupList> <softwareVersion>Unknown</softwareVersion> </ns3:networkdevice> } Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-45 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Devices Create Network Device The following table lists the main characteristics of the Create Network Device API call: Table 7-47 Main Characteristics of Create Network Device API Call Description Create a specified network device Synopsis POST /ers/config/networkdevice/ Request Headers Accept, Authorization, Host QueryString N/A Request Message Body NetworkDevice Response Headers Content-Length, Content-Type, Location Response Message Body N/A Response Status 200, 400, 401, 403, 415, 500 Sample Request for Create Network Device Call POST https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevice/ Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:networkdevice xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="network.ers.ise.cisco.com" name="nd2"> <authenticationSettings> <enableKeyWrap>false</enableKeyWrap> <keyInputFormat>ASCII</keyInputFormat> <networkProtocol>RADIUS</networkProtocol> <radiusSharedSecret>acsi</radiusSharedSecret> </authenticationSettings> <NetworkDeviceIPList> <NetworkDeviceIP> <ipaddress>1.2.3.4</ipaddress> <mask>32</mask> </NetworkDeviceIP> </NetworkDeviceIPList> <modelName>Unknown</modelName> <NetworkDeviceGroupList> <NetworkDeviceGroup>1d8c62b0-2539-11e3-84ad00215edbb2a8</NetworkDeviceGroup> <NetworkDeviceGroup>37053aa0-2539-11e3-84ad00215edbb2a8</NetworkDeviceGroup> </NetworkDeviceGroupList> <softwareVersion>Unknown</softwareVersion> </ns3:networkdevice> } Sample Response for Create Network Device Call HTTP/1.1 201 OK (see location header for the ID of the new device) Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml Location: https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevice/444 Cisco Identity Services Engine API Reference Guide, Release 1.2 7-46 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Devices Update Network Device The following table lists the main characteristics of the Update Network Device API call: Table 7-48 Main Characteristics of Update Network Device API Call Description Update a specified network device Synopsis PUT /ers/config/networkdevice/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body NetworkDevice Response Headers Content-Length, Content-Type Response Message Body List of updated fields Response Status 200, 400, 401, 403, 415, 500 Sample Request for Update Network Device Call PUT https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevice/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Content-Type: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:networkdevice xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="network.ers.ise.cisco.com" name="nd2_updated"> <authenticationSettings> <enableKeyWrap>true</enableKeyWrap> </authenticationSettings> </ns3:networkdevice> } Sample Response for Update Network Device Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.updatedfields.1.0+xml Content-Length: 529 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:updatedFields xmlns:ns2="ers.ise.cisco.com"> <updatedField field="name"> <newValue>nd2_updated</newValue> <oldValue>nd2</oldValue> </updatedField> <updatedField field="enableKeywrap"> <newValue>true</newValue> <oldValue>false</oldValue> </updatedField> </ns2:updatedFields> } Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-47 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Device Groups Delete Network Device The following table lists the main characteristics of the Delete Network Device API call: Table 7-49 Main Characteristics of Delete Network Device API Call Description Delete a specified network device Synopsis DELETE /ers/config/networkdevice/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body N/A Response Status 200, 204, 400, 401, 403, 404, 415, 500 Sample Request for Update Network Device Call DELETE https://<ISE-ADMIN-NODE>:9060/ers/config/networjdevice/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.network.networkdevice.1.0+xml Sample Response for Update Network Device Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT External RESTful Services APIs for Network Device Groups The following table lists the External RESTful Services APIs for Network Device Groups: Table 7-50 APIs Available for SGTs Operation Method URL Content Get All Network Device Groups GET /ers/config/networkdeviceg n/a roup Get Network Device Group GET /ers/config/networkdeviceg n/a roup/{id} Get Network Device Group Resource Version Info GET /ers/config/networkdeviceg n/a roup/versioninfo QueryString page, size, sortacs or sortdsn, filter Cisco Identity Services Engine API Reference Guide, Release 1.2 7-48 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for Network Device Groups Get All Network Device Groups The following table lists the main characteristics of the Get All Network Device Groups API call: Table 7-51 Main Characteristics of Get All Network Device Groups API Call Description Retrieve a collection of Network Device Groups resources Synopsis GET /ers/config/networkdevicegroup Request Headers Accept, Authorization, Host QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 500 Sample Request for Get All Network Device Groups API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevicegroup?page=1&size=20&sortacs=name Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.network.networkdevicegroup.1.0+xml Sample Response for Get All Network Device Groups API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult xmlns:ns2="ers.ise.cisco.com" total="0"> <resources> <resource name="Location#All Locations#loc1" id="1d8c62b0-2539-11e3-84ad-00215edbb2a8" description="xxx"> <link type="application/xml" href="https://10.56.13.196:9060/ers/config/networkdevicegroup/1d8c62b0-2539-11e3-84ad-0021 5edbb2a8" rel="self"/> </resource> <resource name="Device Type#All Device Types#device type 555" id="37053aa0-2539-11e3-84ad-00215edbb2a8" description="vvv"> <link type="application/xml" href="https://10.56.13.196:9060/ers/config/networkdevicegrou p/37053aa0-2539-11e3-84ad-00215edbb2a8" rel="self"/> </resource> </resources> </ns2:searchResult> } Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-49 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for SGTs Get Network Device Group The following table lists the main characteristics of the Get Network Device Groups API call: Table 7-52 Main Characteristics of Get Network Device Group API Call Description Retrieve the specified Network Device group Synopsis GET /ers/config/networkdevicegroup/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type NetworkDeviceGroup Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Get Network Device Group API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/networkdevicegroup/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.network.networkdevicegroup.1.0+xml Sample Response for Get Network Device Group API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.network.networkdevicegroup.1.0 +xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:networkdevicegroup xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="network.ers.ise.cisco.com" name="Location#All Locations#loc1" id="1d8c62b0-2539-11e3-84ad-00215edbb2a8" description="xxx"> <link type="application/xml" href="https://10.56.13.196:9060/ers/config/networkdevicegrou p/1d8c62b0-2539-11e3-84ad-00215edbb2a8" rel="self"/> <type>Location</type> </ns3:networkdevicegroup> } External RESTful Services APIs for SGTs The following table lists the External RESTful Services APIs for SGTs: Cisco Identity Services Engine API Reference Guide, Release 1.2 7-50 OL-26134-01 Chapter 7 External RESTful Services API Operations External RESTful Services APIs for SGTs Table 7-53 APIs Available for SGTs Operation Method URL Content QueryString Get All SGTs GET /ers/config/sgt n/a page, size, sortacs or sortdsn, filter Get SGT GET /ers/config/sgt/{id1} n/a Get GST Resource Version Info GET /ers/config/sgt/versioninfo n/a 1. The SGT ID is the UUID type as stored in the Cisco ISE database. Get All SGTs The following table lists the main characteristics of the Get All SGTs API call: Table 7-54 Main Characteristics of Get All SGTs API Call Description Retrieve a collection of SGT resources Synopsis GET /ers/config/sgt Request Headers Accept, Authorization, Host QueryString page, size, sortbyacn, sortbydcn, filter Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body SearchResult Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Get All SGTs API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/sgt?page=0&size=20&sortacs=name Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.sga.sgt.1.0+xml Sample Response for Get All SGTs API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.ers.searchresult.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:searchResult total="2" xmlns:ns2="ers.ise.cisco.com"> <resources> <resource name="name1" id="id1" description="description1"> <link type="application/xml" href="https://<ISE-ADMIN-NODE>:9060/ers/config/sgt/id1" rel="self"/> </resource> </resources> </ns2:searchResult> } Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-51 Chapter 7 External RESTful Services API Operations REST API Client Get SGT by ID The following table lists the main characteristics of the Get SGT by ID API call: Table 7-55 Main Characteristics of Get SGTs API Call Description Retrieve the specified SGT Synopsis GET /ers/config/sgt/{id} Request Headers Accept, Authorization, Host QueryString N/A Request Message Body N/A Response Headers Content-Length, Content-Type Response Message Body Resource of type InternalUser Response Status 200, 400, 401, 403, 404, 415, 429, 500 Sample Request for Get SGT by ID API Call GET https://<ISE-ADMIN-NODE>:9060/ers/config/sgt/333 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/vnd.com.cisco.ise.sga.sgt.1.0+xml Sample Response for Get SGT by ID API Call HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 23:59:59 GMT Content-Type: application/vnd.com.cisco.ise.sga.sgt.1.0+xml Content-Length: 16347 { <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns3:sgt description="description" name="name" id="id" xmlns:ns2="ers.ise.cisco.com" xmlns:ns3="sga.ers.ise.cisco.com"> <generationId>generationId</generationId> <isTagFromRange>isTagFromRange</isTagFromRange> <value>1</value> </ns3:sgt> } REST API Client The External RESTful Services APIs enable you to perform CRUD (Create, Read, Update, Delete) operations on Cisco ISE resources. To build and test applications using the External RESTful Services APIs that communicate with and perform operations on Cisco ISE servers, you can use any industry standard REST API client, such as the POSTMAN plugin for Google Chrome. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-52 OL-26134-01 Chapter 7 External RESTful Services API Operations REST API Client Designed according to REST architecture and principles, POSTMAN enables you to send and retrieve standard HTTP and HTTPS requests and responses using the Google Chrome web browser. You can use the following standard HTTP methods to perform CRUD operations on Cisco ISE resources: • GET • POST • PUT • DELETE The ERS API enables you to use these HTTP requests in various API calls, which in turn enable you to perform operations on the Cisco ISE servers. For a comprehensive list of operations in which these HTTP requests are used, see <ERS API Operations>. Note To download the POSTMAN plugin, go to https://chrome.google.com/webstore/detail/postman-rest-client/ fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en. For more information on using the POSTMAN plugin, go to https://github.com/a85/POSTMan-Chrome-Extension/wiki. GET Method Requests a representation of the specified resource. Requests using GET only retrieve data and do have any other effect. Note This section shows how to use the POSTMAN plugin to invoke an ERS API call. This API call uses the GET HTTP method in addition to other components of the ERS API, which are not described in this section. For more details on various ERS API components such as the characteristics, requests, and responses, see External RESTful Services API Operations. The request body of the ERS API call that uses the GET HTTPS method contains the following three building blocks: • URI • Accept Header • Authorization Header URI The GET method sends the URI to the Cisco ISE server and the HTTP reply is the raw result data. A typical URI must adhere to the following format: • https://<Cisco ISE Server address:<port>/<namespace>/config/<Cisco ISE Resouce Name> Where <Cisco ISE Server Address> denotes the server address of the Cisco ISE server, <port> denotes the port 9060, <namespace> denotes the namespace to which the ISE Resource belongs to, and <Cisco ISE Resource Name> denotes the name of the Cisco ISE Resource. The following example shows the URI that requests data for the interaluser ISE Resource: • https://10.56.13.196:9060/ers/config/internaluser. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-53 Chapter 7 External RESTful Services API Operations REST API Client Note The URI is not the request body; it is just a URL. This URL is sent to the server using the GET method. Accept Header The Accept Header must adhere to the following format: • application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml Where <resource-namespace> denotes the namespace to which the ISE Resource belongs to, <resource-type> denotes the type of the ISE Resource, <major-version> denotes the major version number of the ISE deployment, and <minor-version> denotes the minor version number of the ISE deployment. The following example shows a typical accept header: • application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Authorization Header The Authorization Header contains the encryption authorization key that is embedded into the GET request. After specifying the authorization credentials, you must generate the encryption key, which is then embedded into the request body. Note For more information on generating the encryption key, see Making the GET Request Using POSTMAN, page 7-54. Making the GET Request Using POSTMAN Procedure Step 1 Open the POSTMAN plugin in the Google Chrome browser. Step 2 Create a new collection using the options in the left pane. Note For more information on using the POSTMAN plugin, go to https://github.com/a85/POSTMan-Chrome-Extension/wiki. Step 3 From the drop-down menu, choose GET. Step 4 In the URL bar, enter the URI. The URI specifies the Cisco ISE server with which you are trying to communicate and the ISE resource that you are trying to access. For more information on the format of the URI, see URI, page 7-53. Step 5 Click the Basic Auth tab. The options that enable you to specify the user access credentials appear. Step 6 Specify your access credentials in the Username and Password fields and click Refresh Headers. POSTMAN displays an Authorization header with an encryption key. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-54 OL-26134-01 Chapter 7 External RESTful Services API Operations REST API Client Step 7 Add an accept header by specifying the following value: application/vnd.com.cisco.ise.ers.<namespace>.<ise resource>.1.0+xml For more information on the Accept Header, see Accept Header, page 7-54. Note Step 8 Click Send. The POSTMAN plugin displays a 200 OK status response indicating that the request is successful. The request also returns the details of the resources that you have specified in the URL. POST Method Requests that the server accept the entity enclosed in the request as a new subordinate of the web resource identified by the URI. Note This section shows how to use the POSTMAN plugin to invoke an ERS API call. This API call uses the POST HTTP method in addition to other components of the ERS API, which are not described in this section. For more details on various ERS API components such as the characteristics, requests, and responses, see External RESTful Services API Operations. The request body of the ERS API call that uses the POST HTTP method contains the following three building blocks: • URI • Content-Type Header • Authorization Header URI The POST method sends the URI to the Cisco ISE server. A typical URI must adhere to the following format: • https://<Cisco ISE Server address:<port>/<namespace>/config/<Cisco ISE Resouce Name> Where <Cisco ISE Server Address> denotes the server address of the Cisco ISE server, <port> denotes the port 9060, <namespace> denotes the namespace to which the ISE Resource belongs to, and <Cisco ISE Resource Name> denotes the name of the Cisco ISE Resource. The following example shows the URI that requests data for the interaluser ISE Resource: • Note https://10.56.13.196:9060/ers/config/internaluser. The URI is not the request body; it is just a URL. This URL is sent to the server using the POST method. Content-Type Header The Content-Type Header must adhere to the following format: Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-55 Chapter 7 External RESTful Services API Operations REST API Client • application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml Where <resource-namespace> denotes the namespace to which the ISE Resource belongs to, <resource-type> denotes the type of the ISE Resource, <major-version> denotes the major version number of the ISE deployment, and <minor-version> denotes the minor version number of the ISE deployment. The following example shows a typical accept header: • application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Authorization Header The Authorization Header contains the encryption authorization key that is embedded into the POST request. After specifying the authorization credentials, you must generate the encryption key, which is then embedded into the request body. Note For more information on generating the encryption key, see Making the POST Request Using POSTMAN, page 7-56. Making the POST Request Using POSTMAN Procedure Step 1 Open the POSTMAN plugin in the Google Chrome browser. Step 2 Create a new collection using the options in the left pane. Note For more information on using the POSTMAN plugin, go to https://github.com/a85/POSTMan-Chrome-Extension/wiki. Step 3 From the drop-down menu, choose POST. Step 4 In the URI bar, enter the URI. The URI specifies the Cisco ISE server with which you are trying to communicate and the ISE resource that you are trying to access. For more information on the format of the URI, see URI, page 7-55. Step 5 Click the Basic Auth tab. The options that enable you to specify the user access credentials appear. Step 6 Specify your access credentials in the Username and Password fields and click Refresh Headers. POSTMAN displays an Authorization header with an encryption key. Step 7 Add a Content-Type header by specifying the following value: application/vnd.com.cisco.ise.ers.<namespace>.<ise resource>.1.0+xml Note For more information on the Accept Header, see Content-Type Header, page 7-55. Step 8 From the drop-down menu that appears next to the raw button, choose XML. Step 9 Click raw. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-56 OL-26134-01 Chapter 7 External RESTful Services API Operations REST API Client Step 10 The POSTMAN plugin opens an editing pane that enables you to specify the body of the POST request. Step 11 Enter the message body of your POST request in the editing pane. Note Step 12 This message body must contain the details corresponding to the ISE resource that you trying to create on the ISE server. For example, while creating an interaluser, you must specify details such as the name of internaluser, description of the interaluser, password, and so on. For more details on the message body of the ERS APIs that use the POST request and the details of the ISE resources that you need to specify, see External RESTful Services API Operations. Click Send. The POSTMAN plugin displays a 201 CREATED status response indicating that the request is successful. You can go to the ISE GUI to verify whether the ISE resource you have added appears in the ISE GUI. PUT Method Requests that the enclosed entity be stored under the supplied URI. If the URI refers to an already existing resource, it is modified; if the URI does not point to an existing resource, then the server can create the resource with that URI. Note This section shows how to use the POSTMAN plugin to invoke an ERS API call. This API call uses the PUT HTTP method in addition to other components of the ERS API, which are not described in this section. For more details on various ERS API components such as the characteristics, requests, and responses, see External RESTful Services API Operations. The request body of the ERS API call that uses the POST HTTP method contains the following three building blocks: • URI • Content-Type Header • Authorization Header URI The PUT method sends the URI to the Cisco ISE server. A typical URI must adhere to the following format: • https://<Cisco ISE Server address:<port>/<namespace>/config/<Cisco ISE Resouce Name> Where <Cisco ISE Server Address> denotes the server address of the Cisco ISE server, <port> denotes the port 9060, <namespace> denotes the namespace to which the ISE Resource belongs to, and <Cisco ISE Resource Name> denotes the name of the Cisco ISE Resource. The following example shows the URI that requests data for the interaluser ISE Resource: • https://10.56.13.196:9060/ers/config/internaluser. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-57 Chapter 7 External RESTful Services API Operations REST API Client Note The URI is not the request body; it is just a URL. This URL is sent to the server using the PUT method. Content-Type Header The Content-Type Header must adhere to the following format: • application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml Where <resource-namespace> denotes the namespace to which the ISE Resource belongs to, <resource-type> denotes the type of the ISE Resource, <major-version> denotes the major version number of the ISE deployment, and <minor-version> denotes the minor version number of the ISE deployment. The following example shows a typical accept header: • application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Authorization Header The Authorization Header contains the encryption authorization key that is embedded into the PUT request. After specifying the authorization credentials, you must generate the encryption key, which is then embedded into the request body. Note For more information on generating the encryption key, see Making the PUT Request Using POSTMAN, page 7-58. Making the PUT Request Using POSTMAN Procedure Step 1 Open the POSTMAN plugin in the Google Chrome browser. Step 2 Create a new collection using the options in the left pane. Note For more information on using the POSTMAN plugin, go to https://github.com/a85/POSTMan-Chrome-Extension/wiki. Step 3 From the drop-down menu, choose PUT. Step 4 In the URI bar, enter the URI. The URI specifies the Cisco ISE server with which you are trying to communicate and the ISE resource that you are trying to access. For more information on the format of the URI, see URI, page 7-57. Step 5 Click the Basic Auth tab. The options that enable you to specify the user access credentials appear. Step 6 Specify your access credentials in the Username and Password fields and click Refresh Headers. POSTMAN displays an Authorization header with an encryption key. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-58 OL-26134-01 Chapter 7 External RESTful Services API Operations REST API Client Step 7 Add a Content-Type header by specifying the following value: application/vnd.com.cisco.ise.ers.<namespace>.<ise resource>.1.0+xml Note For more information on the Accept Header, see Content-Type Header, page 7-58. Step 8 From the drop-down menu that appears next to the raw button, choose XML. Step 9 Click raw. Step 10 The POSTMAN plugin opens an editing pane that enables you to specify the body of the POST request. Step 11 Enter the message body of your POST request in the editing pane. Note Step 12 This message body must contain the details corresponding to the ISE resource that you trying to update on the ISE server. For example, while updating an interaluser, you must specify details such as the name of internaluser, description of the interaluser, password, and so on. For more details on the message body of the ERS APIs that use the POST request and the details of the ISE resources that you need to specify, see External RESTful Services API Operations. Click Send. The POSTMAN plugin displays a 201 CREATED status response indicating that the request is successful. You can go to the ISE GUI to verify whether the ISE resource you have added appears in the ISE GUI. Delete Method Deletes the specified resource. Note This section shows how to use the POSTMAN plugin to invoke an ERS API call. This API call uses the DELETE HTTP method in addition to other components of the ERS API, which are not described in this section. For more details on various ERS API components such as the characteristics, requests, and responses, see External RESTful Services API Operations. The request body of the ERS API call that uses the DELETE HTTP method contains the following three building blocks: • URI • Accept Header • Authorization Header URI The DELETE method sends the URI to the Cisco ISE server. A typical URI must adhere to the following format: • https://<Cisco ISE Server address:<port>/<namespace>/config/<Cisco ISE Resouce Name> Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-59 Chapter 7 External RESTful Services API Operations REST API Client Where <Cisco ISE Server Address> denotes the server address of the Cisco ISE server, <port> denotes the port 9060, <namespace> denotes the namespace to which the ISE Resource belongs to, and <Cisco ISE Resource Name> denotes the name of the Cisco ISE Resource. The following example shows the URI that requests data for the interaluser ISE Resource: • Note https://10.56.13.196:9060/ers/config/internaluser. The URI is not the request body; it is just a URL. This URL is sent to the server using the GET method. Accept Header The Accept Header must adhere to the following format: • application/vnd.com.cisco.ise.<resource-namespace>.<resource-type>.<major version>.<minor version>+xml Where <resource-namespace> denotes the namespace to which the ISE Resource belongs to, <resource-type> denotes the type of the ISE Resource, <major-version> denotes the major version number of the ISE deployment, and <minor-version> denotes the minor version number of the ISE deployment. The following example shows a typical accept header: • application/vnd.com.cisco.ise.identity.internaluser.1.0+xml Authorization Header The Authorization Header contains the encryption authorization key that is embedded into the DELETE request. After specifying the authorization credentials, you must generate the encryption key, which is then embedded into the request body. Note For more information on generating the encryption key, see Making the DELETE Request Using POSTMAN, page 7-60. Making the DELETE Request Using POSTMAN Procedure Step 1 Open the POSTMAN plugin in the Google Chrome browser. Step 2 Create a new collection using the options in the left pane. Note For more information on using the POSTMAN plugin, go to https://github.com/a85/POSTMan-Chrome-Extension/wiki. Step 3 From the drop-down menu, choose DELETE. Step 4 In the URL bar, enter the URI. The URI specifies the Cisco ISE server with which you are trying to communicate and the ISE resource that you are trying to access. For more information on the format of the URI, see URI, page 7-59. Cisco Identity Services Engine API Reference Guide, Release 1.2 7-60 OL-26134-01 Chapter 7 External RESTful Services API Operations REST API Client Step 5 Click the Basic Auth tab. The options that enable you to specify the user access credentials appear. Step 6 Specify your access credentials in the Username and Password fields and click Refresh Headers. POSTMAN displays an Authorization header with an encryption key. Step 7 Add an accept header by specifying the following value: application/vnd.com.cisco.ise.ers.<namespace>.<ise resource>.1.0+xml Note Step 8 For more information on the Accept Header, see Accept Header, page 7-60. Click Send. The POSTMAN plugin displays a 200 OK status response indicating that the request is successful. The ISE resource that you have specified is deleted from the ISE server. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 7-61 Chapter 7 External RESTful Services API Operations REST API Client Cisco Identity Services Engine API Reference Guide, Release 1.2 7-62 OL-26134-01 A P P E N D I X A Cisco ISE Failure Reasons Report This appendix provides a procedure you can use to access the Cisco ISE Failure Reasons report. The Cisco ISE Failure Reason report allows you to view the list of failure reasons. Introduction The Cisco ISE Failure Reason report is an option in the Cisco ISE user interface that provides information about all of the failure reasons that could be encountered. You can use this to check on those that are returned as output from a Get Failure Reason Mapping call when using the Cisco ISE Query troubleshooting API. The Cisco ISE Failure Reasons report lets you access the complete list of failure reasons defined by the Cisco ISE software that apply to Cisco Monitoring ISE node operations. The following procedure lets you view or edit the list of defined failure reasons. You must log into the Cisco ISE user interface of the target Cisco Monitoring ISE node to view and access the failure reasons. For details about logging in, see Verifying a Monitoring Node, page 1-2. Viewing Failure Reasons Step 1 Choose Operations > Reports > Authnetication Summary report. Step 2 In the navigation panel, expand Monitoring and select Failure Reason Editor. Step 3 Choose Failure Reasons from the list of filters provided. Step 4 Provide the failure reason that you are looking for. Step 5 Click Run. A list of failure reasons appears in the right panel. Step 6 Click on any failure reason to get a detailed report in a new window. Cisco Identity Services Engine API Reference Guide, Release 1.2 OL-26134-01 A-1 Appendix A Cisco ISE Failure Reasons Report Viewing Failure Reasons Cisco Identity Services Engine API Reference Guide, Release 1.2 A-2 OL-26134-01
© Copyright 2024