ACS 5.3 Software Developer's Guide
ACS 5.3 Software Developer's Guide
ACS 5.3 Software Developer's Guide
3
September 2011
Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387) Fax: 408 527-0883
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 UCBs 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. Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned 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. (1005R) Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental. Software Developers Guide for Cisco Secure Access Control System 5.3 2011 Cisco Systems, Inc. All rights reserved.
C O N T E N T S
Preface
vii vii vii
Audience Conventions
CHAPTER
Overview
1-1 1-2
CHAPTER
2-1 2-2
Understanding the Methods in the UCP Web Service User Authentication 2-2 User Change Password 2-3 Using the WSDL File 2-4 Downloading the WSDL File 2-4 UCP WSDL File 2-4 Request and Response Schemas 2-7 User Authentication Request 2-7 User Authentication Response 2-7 User Change Password Request 2-7 User Change Password Response 2-7 Working with the UCP Web Service Sample Client Code 2-8
3
2-7
CHAPTER
Using the Monitoring and Report Viewer Web Services Understanding the Methods in the Viewer Web Services Get Version 3-2 Get Authentication Status By Date 3-3 Get Authentication Status By Time Unit 3-3
3-1 3-2
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
iii
Contents
Get Failure Reasons 3-4 Get RADIUS Accounting 3-4 Get API Version 3-5 Understanding the WSDL Files 3-5 Downloading the WSDL Files 3-6 Viewer WSDL Files 3-6 Integrating the Viewer Web Services with Your Application Working with the Viewer Web Services 3-10 Required Files 3-10 Supported SOAP Clients 3-11 Connecting to the Viewer Web Services 3-11 Sample Client Code 3-12
4
3-9
CHAPTER
Using the Configuration Web Services Supported Configuration Objects Identity Groups 4-2 Attribute Info 4-3 Group Associations 4-3 Query Object 4-3 Filtering 4-3 Sorting 4-4 Paging 4-5 Request Structure 4-5 URL Path 4-5 HTTP Methods 4-6 Response Structure 4-7 HTTP Status Codes 4-7 ACS REST Result 4-8 Returned Objects 4-9 WADL File Schema File Sample Code
4-9 4-9 4-10 4-1
4-1
CHAPTER
5-1
Understanding Import and Export in ACS 5-2 Importing ACS Objects Through the CLI 5-2 Exporting ACS Objects Through the CLI 5-3 Viewing the Status of Import and Export Processes
5-4
Software Developers Guide for Cisco Secure Access Control System 5.3
iv
OL-22972-01
Contents
5-5
Creating Import Files 5-7 Downloading the Template from the Web Interface 5-7 Understanding the CSV Templates 5-8 Creating the Import File 5-9 Adding Records to the ACS Internal Store 5-9 Updating the Records in the ACS Internal Store 5-10 Deleting Records from the ACS Internal Store 5-10 Using Shell Scripts to Perform Bulk Operations Sample Shell Script 5-11
A
5-11
APPENDIX
Monitoring and Report Viewer Database Schema Configuring a Remote Database in ACS
A-1
A-1
Understanding the Monitoring and Report Viewer Database Schema Raw Tables A-3 Aggregated Tables A-3 Microsoft SQL Server Schema A-4 Oracle Schema A-24
INDEX
A-2
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
Contents
Software Developers Guide for Cisco Secure Access Control System 5.3
vi
OL-22972-01
Preface
Welcome to the Software Developer Guide for the Cisco Secure Access Control System 5.3! This document provides details about the interfaces that Cisco Secure Access Control System (ACS) offers that you can use to interact with external customer-developed applications. This includes several web services for application access and scriptable access for bulk provisioning using the command-line interface (CLI). It also allows you to create a replica of the Monitoring and Troubleshooting database for application development.
Audience
This guide is intended for software engineers and programmers who create custom applications to interact with ACS. The software engineers and programmers must be familiar with:
Web Services Description Language (WSDL) File Web Application Description Language (WADL) File Web Services Tools REST Services Tools
Chapter/ Appendix 1
Title Overview
Description Provides an overview of the ACS 5.3 features in the form of web services. It also gives CLI commands that you can use in your custom applications to interact with ACS. Describes the User Change Password web service, the methods that it provides, and how you can use it in your application.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
vii
Preface Conventions
Table 1
Organization (continued)
Chapter/ Appendix 3
Description Describes the web services that the Monitoring and Report Viewer component of ACS provides, and it also explains how to use these web services in your application. Describes the Configuration Web Services, the CRUD methods that it provides, and explains how to use it in your application. Describes the scripting interface that ACS provides. This interface allows you to perform bulk create, update, and delete operations on various ACS objects. Provides the Monitoring and Report Viewer database schema that allows you to create custom reporting applications.
Conventions
Table 2 describes the conventions followed in this document.
Table 2 Conventions
Description Commands and keywords. Variables for which you supply values. Keywords or arguments that appear within square brackets are optional. A choice of required keywords appears in braces separated by vertical bars. You must select one. Optional alternative keywords are grouped in brackets separated by vertical bars. Nonquoted set of characters. Do not use quotation marks around the string or the string will include the quotation marks.
font font
Examples of information displayed on the screen. Examples of information you must enter. Nonprinting characters, such as passwords, appear in angle brackets. Default responses to system prompts appear in square brackets. An exclamation point (!) or a pound sign (#) at the beginning of a line of code indicates a comment line.
bold courier
< > [ ] !, #
Note
Means reader take note. Notes contain helpful suggestions or references to material not covered in the manual.
Software Developers Guide for Cisco Secure Access Control System 5.3
viii
OL-22972-01
Preface Conventions
Timesaver
Means the described action saves time. You can save time by performing the action described in the paragraph.
Documentation Updates
Table 3 Updates to the Software Developers Guide for the Cisco Secure Access Control System 5.3
Date 10/03/2011
Related Documentation
Table 4 lists a set of related technical documentation available on Cisco.com. To find end-user documentation for all products on Cisco.com, go to: http://www.cisco.com/go/techdocs
Note
We sometimes update the printed and electronic documentation after original publication. Therefore, you should also review the documentation on Cisco.com for any updates.
Table 4 Product Documentation
Document Title Release Notes for the Cisco Secure Access Control System 5.3 User Guide for Cisco Secure Access Control Sytem, 5.3 Migration Guide for the Cisco Secure Access Control System 5.3 CLI Reference Guide for the Cisco Secure Access Control System 5.3 Installation and Upgrade Guide for the Cisco Secure Access Control System 5.3 Supported and Interoperable Devices and Softwares for the Cisco Secure Access Control System 5.3
Available Formats http://www.cisco.com/en/US/products/ps9911/ prod_release_notes_list.html http://www.cisco.com/en/US/products/ps9911/ products_user_guide_list.html http://www.cisco.com/en/US/products/ps9911/ prod_installation_guides_list.html http://www.cisco.com/en/US/products/ps9911/ prod_command_reference_list.html http://www.cisco.com/en/US/products/ps9911/ prod_installation_guides_list.html http://www.cisco.com/en/US/products/ps9911/ products_device_support_tables_list.html
Regulatory Compliance and Safety Information http://www.cisco.com/en/US/docs/net_mgmt/ for Cisco Identity Services Engine, Cisco 1121 cisco_secure_access_control_system/5.1/ Secure Access Control System, Cisco NAC regulatory/compliance/csacsrcsi.html Appliance, Cisco NAC Guest Server, and Cisco NAC Profiler
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
ix
Preface Conventions
Table 4
Document Title
Available Formats
License and Documentation Guide for the Cisco http://www.cisco.com/en/US/products/ps9911/ Secure Access Control System 5.3 products_documentation_roadmaps_list.html Open Source and Third Party Licenses used in Cisco Secure Access Control System, 5.3 http://www.cisco.com/en/US/products/ps9911/ products_licensing_information_listing.html
Software Developers Guide for Cisco Secure Access Control System 5.3
OL-22972-01
CH A P T E R
Overview
The Cisco Secure Access Control System (ACS) is a policy-based access control system and an integration point for network access control and identity management. ACS 5.3 provides web services and command-line interface (CLI) commands that allow software developers and system integrators to programmatically access some ACS features and functions. ACS 5.3 also enables you to access to the Monitoring and Report Viewer database that you can use to create custom applications to monitor and troubleshoot ACS. You can use these web service and CLI commands to:
Integrate external applications directly with ACS. View and modify the information stored in ACS.
The User Change Password (UCP) web service allows users, defined in the ACS internal database, to first authenticate and then change their own password. ACS exposes the UCP web service to allow you to create custom web-based applications that you can deploy in your enterprise. The Monitoring and Report Viewer web services allow you to create custom applications to track and troubleshoot events in ACS. ACS REST web services allows you to manage the entities such as users and user groups only on your own management applications and use ACS PI to transfer these entities into ACS. This allows you to define these entities and use them on your own systems and on ACS. The scripting interface in ACS allows you to perform create, read, update, and delete (CRUD) operations on ACS objects. You can create an automated shell script to perform bulk operations. ACS allows you to export data from the Monitoring and Report Viewer database. You can use this data to create custom reporting applications. Appendix A, Monitoring and Report Viewer Database Schema in this document contains the Monitoring and Report Viewer database schema to help you create your custom application. ACS 5.3 provides:
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
1-1
Overview
A list of records that give the reasons for failures A list of RADIUS accounting records
objects
Get a list of objects of the same type (For example, a list of all Users) Retrieve associated objects, including filtering capabilities Execute queries
CLI commands to perform bulk operations on ACS objects for the following functions:
Import Export
You can perform bulk operations on the following ACS objectsusers, hosts, network devices, identity groups, network device groups (NDGs), downloadable access control lists (DACLs), and command sets. Before you begin to use the ACS web services and CLI commands in scripts, you must have a working knowledge of:
Web Services Description Language (WSDL) File Web Application Description Language (WADL) File Web Services Tools Understanding Web Services, page 1-2 Understanding WSDL, page 1-3
Hypertext Transfer Protocol Secure (HTTPS)Transports messages between client applications and the web service server. Simple Object Access Protocol (SOAP)Encodes messages in a common XML format so that they can be understood at either end (web service consumer and web service server) of a network connection. SOAP standardizes the format of the requests to the web service server. Any client application can interface with the ACS web server using SOAP over HTTPS. WSDL fileDescribes the web service, its location, and its operations. ACS 5.3 exposes the following WSDL files:
UCP WSDL Monitoring and Report Viewer WSDL
Representational State Transfer (REST)REST is a software architecture style for distributed systems. ACS Configuration web services are built using the REST architecture. This service provides a uniform set of operations for all resources.
Software Developers Guide for Cisco Secure Access Control System 5.3
1-2
OL-22972-01
Chapter 1
RESTful web services typically map the four main HTTP methods; POST, GET, PUT, and DELETE to common operations; that is, create, retrieve, update, and delete, respectively.
WADL fileDescribes the REST interface. This includes description of objects and methods for the REST interface.
Understanding WSDL
The Web Services Definition Language (WSDL) is an XML format that describes network services as a collection of ports that operate on messages. WSDL is extensible to allow the description of endpoints and their messages, regardless of the message formats or network protocols that you use. For more information on WSDL documentation and software downloads, refer to the World Wide Web Consortium website.
Note
You can use any third-party applications to transform your WSDL file.
Understanding WADL
The Web Application Description Language (WADL) file describes REST Interface schema (object structure), HTTP methods, and URLs that are available for each object to invoke REST request. The WADL files are designed to provide a machine processable description of HTTP based web applications. They are supplemented with XML schema for XML based data formats. ACS also provides XSD files that describe the objects structure. You can generate object classes out of XSD files, using third party tools.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
1-3
Overview
Software Developers Guide for Cisco Secure Access Control System 5.3
1-4
OL-22972-01
CH A P T E R
You must enable the web interface on ACS before you can use the UCP web service. To enable the web interface on ACS, from the ACS CLI, enter:
acs config-web-interface ucp enable
For more information on the acs config-web-interface command, refer to http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/command/ reference/cli_app_a.html#wp1887278.
Viewing the Status of the Web Interface from ACS CLI
To view the status of the web interface, from the ACS CLI, enter:
show acs-config-web-interface
For more information on the show acs-config-web-interface command, refer to http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/ command/reference/cli_app_a.html#wp1890877. This following sections describe how to use the UCP web service:
Understanding the Methods in the UCP Web Service, page 2-2 Using the WSDL File, page 2-4 Working with the UCP Web Service, page 2-7
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
2-1
User Authentication
The User Authentication method authenticates a user against an internal database.
Input Parameters
Username Password
Purpose
Use the authenticateUser method for applications that require a two-step procedure to change a user password. For example, a ACS user interface application that prompts the user to change the password, does it in two steps:
1. 2.
To change a password:
Step 1
Step 2
Enter the username and password. The authenticateUserweb service function is invoked. If your credentials match the data in the ACS internal store, your authentication succeeds.
Note
This method does not perform any change and does not authorize you to perform any task. You use this method only to verify if the password is correct. However, after a successful authentication, you can move to the change password page to use the User Change Password method.
Output Parameters
The response from the User Authentication method could be one of the following:
Exceptions
The authentication fails due to incorrect username or password. The user is disabled.
Software Developers Guide for Cisco Secure Access Control System 5.3
2-2
OL-22972-01
Chapter 2
Using the UCP Web Service Understanding the Methods in the UCP Web Service
A web service connection error occurs, such as network disconnection or request timeout error. A system failure occurs, such as the database being down and unavailable.
Purpose
Use the changeUserPassword method for applications that require a single-step procedure to change the user password. Changing a user password is normally a two-step procedure. The first step is to authenticate the user and the second step is to change the user password. The changeUserPassword method allows you to combine the two steps into one. A script or a single-page web application is an example of applications that require a single-step procedure to change the user password. To change a password:
Step 1
Step 2
Enter the username and password. The authenticateUser web service function is invoked. If authentication succeeds, the web service compares the new password against the password policy that is configured in ACS. If your new password meets the defined criteria, the changeUserPassword web service function is invoked to change your password.
Output Parameters
The response from the User Change Password method could be one of the following:
Exceptions
The authentication fails because of an incorrect username or password. The user is disabled. The password change operation fails because the password does not conform to the password complexity rules defined in ACS.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
2-3
A web service connection error occurs, such as network disconnection or request timeout error. A system failure occurs, such as the database being down and unavailable.
Downloading the WSDL File, page 2-4 UCP WSDL File, page 2-4 Request and Response Schemas, page 2-7
Log into the ACS 5.3 web interface. Choose System Administration > Downloads > User Change Password. Click UCP WSDL to view the UCP WSDL file. Copy the WSDL file to your local hard drive. Click UCP web application example to download a sample web application and save it to your local hard drive.
Software Developers Guide for Cisco Secure Access Control System 5.3
2-4
OL-22972-01
Chapter 2
ACS5.1 WSDL Service Interface for change password This WSDL document defines the publication API calls for changing user password. </WSDL:documentation>
<xsd:simpleType name="UserNameType"> <xsd:restriction base="string"> <xsd:minLength value="1" /> </xsd:restriction> </xsd:simpleType> <xsd:element name="usernameType" type="tns:UserNameType" /> <xsd:simpleType name="PasswordType"> <xsd:restriction base="string"> <xsd:minLength value="1" /> </xsd:restriction> </xsd:simpleType> <xsd:element name="passwordType" type="tns:PasswordType" /> <xsd:simpleType name="StatusCodeType"> <xsd:restriction base="string"> <xsd:enumeration value="success" /> <xsd:enumeration value="failure" /> </xsd:restriction> </xsd:simpleType> <xsd:element name="ResponseType"> <xsd:complexType> <xsd:attribute name="status" type="tns:StatusCodeType" use="required" /> <xsd:sequence> <xsd:element name="errorMessage" type="xsd:string" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </xsd:types> <message name="AuthUserRequest"> <part name="user_name" element="tns:usernameType" /> <part name="password" element="tns:passwordType" /> </message> <message name="AuthUserResponse"> <part name="authUserResponse" element="tns:ResponseType" /> </message> <message name="ChangeUserPassRequest"> <part name="user_name" element="tns:usernameType" /> <part name="old_password" element="tns:passwordType" /> <part name="new_password" element="tns:passwordType" /> </message>
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
2-5
<message name="ChangeUserPassResponse"> <part name="changeUserPassResponse" element="tns:ResponseType" /> </message> <WSDL:portType name="ChangePassword"> <operation name="authenticateUser"> <input message="tns:AuthUserRequest" name="authUserRequest" /> <output message="tns:AuthUserResponse" name="authUserResponse" /> </operation> <operation name="changeUserPass"> <input message="tns:ChangeUserPassRequest" name="changeUserPassRequest" /> <output message="tns:ChangeUserPassResponse" name="changeUserPassResponse" /> </operation> </WSDL:portType> <WSDL:binding name="changePassSoapBinding" type="tns:ChangePassword"> <SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <!-This is the SOAP binding for the Change Password publish operations. --> <WSDL:operation name="authenticateUser"> <SOAP:operation soapAction="" /> <input> <SOAP:body use="literal" /> </input> <output> <SOAP:body use="literal" /> </output> </WSDL:operation> <WSDL:operation name="changeUserPass"> <SOAP:operation soapAction="" /> <input> <SOAP:body use="literal" /> </input> <output> <SOAP:body use="literal" /> </output> </WSDL:operation> </WSDL:binding> <WSDL:service name="changepassword"> <documentation> ACS5.1 Programmatic Interface Service Definitions </documentation> <port name="changepassword" binding="tns:changePassSoapBinding"> <SOAP:address location="https://localhost:8080/PI/services/changepass/" /> </port> </WSDL:service> </definitions>
Software Developers Guide for Cisco Secure Access Control System 5.3
2-6
OL-22972-01
Chapter 2
Using the UCP Web Service Working with the UCP Web Service
User Authentication Request, page 2-7 User Authentication Response, page 2-7 User Change Password Request, page 2-7 User Change Password Response, page 2-7
Python SOAP libraries for Linux and Windows Python script ReadMeContains installation instructions
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
2-7
Log into the ACS 5.3 web interface. Choose System Administration > Downloads > Scripts. The Sample Python Scripts page appears. Click Python Script for Using the User Change Password Web Service. Save the .zip file to your local hard disk.
Step 3 Step 4
Sample Client Code shows a sample.zip file. This file contains a .war file. You have to deploy this .war file within a web server, such as Tomcat. This example allows your application to communicate with ACS through the UCP web service.
Note
The Cisco Technical Assistance Center (TAC) supports only the default Python Script. TAC does not offer any support for modified scripts.
Note
Software Developers Guide for Cisco Secure Access Control System 5.3
2-8
OL-22972-01
CH A P T E R
getVersion()Returns the version of the Monitoring and Report Viewer server. getAuthenticationStatusByDate()Returns the authentication status of a user by date. getAuthenticationStatusByTimeUnit()Returns the authentication status of a user by time. getFailureReasons()Returns a list of reasons for failure. getRadiusAccounting()Returns a list of RADIUS accounting records. getAPIVersion()Returns the version of the Viewer web services.
You must enable the web interface on ACS before you can use the Viewer web services. To enable the web interface on ACS, from the ACS CLI, enter:
acs config web-interface view enable
For more information on the acs config web-interface command, refer to http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/ command/reference/cli_app_a.html#wp1887278.
Viewing the Status of the Web Interface from ACS CLI
To view the status of the web interface, from the ACS CLI, enter:
show acs-config-web-interface
For more information on the show acs-config-web-interface command, refer to http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/ command/reference/cli_app_a.html#wp1890877. The following sections describe how to use the Monitoring and Report Viewer web services:
Understanding the Methods in the Viewer Web Services, page 3-2 Understanding the WSDL Files, page 3-5 Integrating the Viewer Web Services with Your Application, page 3-9 Working with the Viewer Web Services, page 3-10
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-1
Get Version, page 3-2 Get Authentication Status By Date, page 3-3 Get Authentication Status By Time Unit, page 3-3 Get Failure Reasons, page 3-4 Get RADIUS Accounting, page 3-4 Get API Version, page 3-5
Table 3-1 describes the classes that are used in the Viewer web services.
Table 3-1 Viewer Web Services Class Information
Description Contains all web services that a client views in the client applications. Contains the ACS username and the user password, which the Monitoring and Report Viewer server uses to authenticate the user. Encapsulates the authentication query parameters, based on which records are queried and returned to you. Contains the Authentication Status record that is the query output received from ACS. Encapsulates the accounting query parameters, based on which records are queried and returned to you. Contains the Accounting Status record that is the query output received from ACS. Contains a list of attribute values that comprise the query output received from ACS. Contains the errors that the Monitoring and Report Viewer displays for any issues with the web services.
Note
The Monitoring and Report Viewer places all web service classes in the com.cisco.acsview.nbapi package.
Get Version
Input Parameter
Use the getVersion method to view the version of the Monitoring and Report Viewer that is installed on your ACS server. You can enter this command in the CLI to call this web service to view the Monitoring and Report Viewer version.
Software Developers Guide for Cisco Secure Access Control System 5.3
3-2
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Understanding the Methods in the Viewer Web Services
Output Parameters
The user is invalid The input is invalid The ACS instance is not running as the Monitoring and Report Viewer server
userCtx(Required) User context object authParam(Required) AuthenticationParam object startDate(Required) The date from which you want the authentication status endDate(Required) The date until which you want the authentication status
Purpose
Use the getAuthenticationStatusByDate method to view a users authentication status, arranged chronologically by date, for a specific period.
Output Parameter
Authentication status of the user, arranged chronologically by date, for the specified period.
Exception
User context value is entered but passed as null Username and password are entered but passed as null Date value is entered but passed as null
userCtx(Required) User context object authParam(Required) AuthenticationParam object lastX(Required) The time until which you need the authentication status timeUnit(Required) Time unit, specified in minutes, hours, or days
Purpose
Use the getAuthenticationStatusByTimeUnit method to view a users authentication status, arranged chronologically by time, for a specific period.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-3
Output Parameter
A list of the users authentication status, arranged chronologically by time, for a specific period.
Exception
User context value is entered but passed as null Username and password are entered but passed as null Date value is entered but passed as null
Use the getFailureReasons method to obtain a list of records that contain failure reasons.
Output Parameters
userCtx(Required) User context object acctParam(Required) Accounting search parameters; valid values for matchOperator are valueLIKE, valueEQ, valueNE, valueGE, valueLE, valueGT, valueLT, attrEQ, valueIN, valueINNOT. The equation takes any one of the following forms:
AttributeName, MatchArgument, MatchOp=[ valueLIKE | valueEQ | valueNE | valueGE |
Attribute NameAs defined by standard RADIUS/Cisco A-V pair names. Attribute names are not case sensitive. However, the values are case sensitive. valueLIKELooks for wildcard match (%). For example, %foo%. valueEQLooks for an exact match. valueNEPerforms a value not equal to comparison. valueGEPerforms greater than or equal to comparison. valueLEPerforms lesser than or equal to comparison. valueGTPerforms a greater than comparison. valueLTPerforms a lesser than comparison.
Software Developers Guide for Cisco Secure Access Control System 5.3
3-4
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Understanding the WSDL Files
attrEQCompares a given attribute with another attribute; returns true or false. valueINMultiple values are allowed for matchOperator valueIN. valueINNOTMultiple values are not allowed for matchOperator valueINNOT.
returnAttributes(Required) List of return attributes requested. startDate(Required) Date from which you want the RADIUS accounting records. endDate(Required) Date until which you want the RADIUS accounting records.
Purpose
User credentials are invalid The acctParam parameter contains invalid values for matchOperator The acctParam parameter contains invalid value for matchValues A database select error occurs
Use the getAPIVersion method to obtain the version of the Viewer web services.
Output Parameter
Downloading the WSDL Files, page 3-6 Viewer WSDL Files, page 3-6 Integrating the Viewer Web Services with Your Application, page 3-9
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-5
Software Developers Guide for Cisco Secure Access Control System 5.3
3-6
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Understanding the WSDL Files
</complexType> <complexType name="FailureReason"> <sequence> <element name="authenFailureCode" nillable="true" type="string"/> <element name="possibleRootCause" nillable="true" type="string"/> <element name="resolution" nillable="true" type="string"/> </sequence> </complexType> <complexType name="AuthenticationParam"> <sequence> <element name="AAAClient" nillable="true" type="string"/> <element name="clientIPAddress" nillable="true" type="string"/> <element name="clientMACAddress" nillable="true" type="string"/> <element name="userName" nillable="true" type="string"/> </sequence> </complexType> <complexType name="AuthenticationStatus"> <sequence> <element name="authStatus" nillable="true" type="string"/> <element name="date" nillable="true" type="dateTime"/> <element name="errorCode" nillable="true" type="string"/> <element maxOccurs="unbounded" minOccurs="0" name="moreDetails" nillable="true" type="string"/> </sequence> </complexType> <complexType name="getAuthenticationStatusByTimeUnitResponse"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="result" nillable="true" type="tns:AuthenticationStatus"/> </sequence> </complexType> <complexType name="getVersionResponse"> <sequence> <element name="result" nillable="true" type="string"/> </sequence> </complexType> <complexType name="getFailureReasonsResponse"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="result" nillable="true" type="tns:FailureReason"/> </sequence> </complexType> <complexType name="UserContext"> <sequence> <element name="password" nillable="true" type="string"/> <element name="userName" nillable="true" type="string"/> </sequence> </complexType> <element name="getAuthenticationStatusByDate" type="tns:getAuthenticationStatusByDate"/> <element name="getAuthenticationStatusByDateResponse" type="tns:getAuthenticationStatusByDateResponse"/> <element name="getAuthenticationStatusByTimeUnit" type="tns:getAuthenticationStatusByTimeUnit"/> <element name="getAuthenticationStatusByTimeUnitResponse" type="tns:getAuthenticationStatusByTimeUnitResponse"/> <element name="getVersion" type="tns:getVersion"/> <element name="ACSViewNBException" type="tns:ACSViewNBException"/> <element name="getVersionResponse" type="tns:getVersionResponse"/> <element name="getFailureReasons" type="tns:getFailureReasons"/> <element name="getFailureReasonsResponse" type="tns:getFailureReasonsResponse"/> </schema> </types> <message name="ACSViewNBException">
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-7
<part element="tns:ACSViewNBException" name="ACSViewNBException"/> </message> <message name="ACSViewWebServices_getAuthenticationStatusByDate"> <part element="tns:getAuthenticationStatusByDate" name="parameters"/> </message> <message name="ACSViewWebServices_getAuthenticationStatusByTimeUnitResponse"> <part element="tns:getAuthenticationStatusByTimeUnitResponse" name="result"/> </message> <message name="ACSViewWebServices_getAuthenticationStatusByDateResponse"> <part element="tns:getAuthenticationStatusByDateResponse" name="result"/> </message> <message name="ACSViewWebServices_getVersionResponse"> <part element="tns:getVersionResponse" name="result"/> </message> <message name="ACSViewWebServices_getAuthenticationStatusByTimeUnit"> <part element="tns:getAuthenticationStatusByTimeUnit" name="parameters"/> </message> <message name="ACSViewWebServices_getVersion"> <part element="tns:getVersion" name="parameters"/> </message> <message name="ACSViewWebServices_getFailureReasons"> <part element="tns:getFailureReasons" name="parameters"/> </message> <message name="ACSViewWebServices_getFailureReasonsResponse"> <part element="tns:getFailureReasonsResponse" name="result"/> </message> <portType name="ACSViewWebServices"> <operation name="getAuthenticationStatusByDate"> <input message="tns:ACSViewWebServices_getAuthenticationStatusByDate"/> <output message="tns:ACSViewWebServices_getAuthenticationStatusByDateResponse"/> <fault message="tns:ACSViewNBException" name="ACSViewNBException"/> </operation> <operation name="getAuthenticationStatusByTimeUnit"> <input message="tns:ACSViewWebServices_getAuthenticationStatusByTimeUnit"/> <output message="tns:ACSViewWebServices_getAuthenticationStatusByTimeUnitResponse"/> <fault message="tns:ACSViewNBException" name="ACSViewNBException"/> </operation> <operation name="getVersion"> <input message="tns:ACSViewWebServices_getVersion"/> <output message="tns:ACSViewWebServices_getVersionResponse"/> <fault message="tns:ACSViewNBException" name="ACSViewNBException"/> </operation> <operation name="getFailureReasons"> <input message="tns:ACSViewWebServices_getFailureReasons"/> <output message="tns:ACSViewWebServices_getFailureReasonsResponse"/> <fault message="tns:ACSViewNBException" name="ACSViewNBException"/> </operation> </portType> <binding name="ACSViewWebServicesBinding" type="tns:ACSViewWebServices"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getAuthenticationStatusByDate"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="ACSViewNBException"> <soap:fault name="ACSViewNBException" use="literal"/> </fault> </operation> <operation name="getAuthenticationStatusByTimeUnit"> <soap:operation soapAction=""/>
Software Developers Guide for Cisco Secure Access Control System 5.3
3-8
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Understanding the WSDL Files
<input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="ACSViewNBException"> <soap:fault name="ACSViewNBException" use="literal"/> </fault> </operation> <operation name="getVersion"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="ACSViewNBException"> <soap:fault name="ACSViewNBException" use="literal"/> </fault> </operation> <operation name="getFailureReasons"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="ACSViewNBException"> <soap:fault name="ACSViewNBException" use="literal"/> </fault> </operation> </binding> <service name="ACSViewWebServicesService"> <port binding="tns:ACSViewWebServicesBinding" name="ACSViewWebServices"> <soap:address location="http://localhost:8080/ACSViewWebServices/ACSViewWebServices"/> </port> </service> </definitions>
Obtain the certificate from the server to create the client certificate:
a.
Verify the deployed web services from: https://ip address or hostname/ACSViewWebServices/ACSViewWebServices?wsdl For more information on the web services, see Understanding the Methods in the Viewer Web Services, page 3-2.
b. c.
Click View Certificate and go to the Details tab. Click Copy to File.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-9
d. e. f. g.
In the welcome window, click Next. In the Export File Format window, select DER encoded binary X.509(.CER), then click Next. In the File to Export window, enter the filename and click Next. In the Completing the Certificate Export Wizard window, click Finish. A copy of the certificate is saved in your local system as server.cer.
h.
Import the server certificate and store it as client.ks (the Client Certificate) using the following command:
keytool -import -file server.cer -keystore client.ks
Step 2
Verify the deployed Viewer web services from: https://IPaddress(or)HostName /ACSViewWebServices/ACSViewWebServices?wsdl For more information on the web services, see Understanding the Methods in the Viewer Web Services, page 3-2.
Step 3
View the source and copy the WSDL file to your local system using: soap:address location='https://acsview-cars1:443/ACSViewWebServices/ACSViewWebServices'/ For more information on the WSDL files, see Understanding the WSDL Files, page 3-5. Download the JAX-WS 2.0 libraries from the Sun Microsystems website. To view the information related to your artifacts, enter the wsimport -keep command at: https://IPAddress:443/ACSViewWebServ/ACSViewWebServices?wsdl Include all the libraries in your location. Write the client code. Compile and run the client code.
Step 4 Step 5
Step 6 Step 7
Required Files, page 3-10 Supported SOAP Clients, page 3-11 Sample Client Code, page 3-12
Required Files
To use Java (JAX-WS) 2.0 as the client-side conversion tool, you need the following JAR files. You can download the .jar files and the related tools from the Sun Microsystems website:
Software Developers Guide for Cisco Secure Access Control System 5.3
3-10
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Working with the Viewer Web Services
jaxb-impl.jar jaxb-xjc.jar jaxws-api.jar jaxws-rt.jar jaxws-tools.jar jsr173_api.jar jsr181-api.jar jsr250-api.jar resolver.jar saaj-api.jar saaj-impl.jar sjsxp.jar
Apache JAX-WS
Verify the deployed Viewer Web Services from: https://ip address or hostname/ACSViewWebServices/ACSViewWebServices?wsdl For more information on the web services, see Understanding the Methods in the Viewer Web Services, page 3-2.
Step 2
Right click and select View Source/View Page Source option to view the source information. The source information appears in a pop-up dialog box. Save the source information with the name ACSViewWebServices.wsdl on your local directory; <SERVICE_HOME>. Execute the following command to create the class files:
wsimport <SERVICE_HOME>/ACSViewWebServices.wsdl -d <SERVICE_HOME>
Step 3 Step 4
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-11
Step 5
Copy the Sample Client Code section on page 3-12 and save it as Client.java in <SERVICE_HOME> and compile it with the following command
javac -cp <SERVICE_HOME> <SERVICE_HOME>/Client.java -d <SERVICE_HOME>
This compiles the client code and places the package in the <SERVICE_HOME> directory.
Step 6
Note
The above mentioned steps are done in Java 1.6.0_25. JAVA_HOME is java installed directory, and the "path" environment variable should be added with the value <JAVA_HOME>/bin.
public class Client { private static void install() throws Exception { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(X509Certificate[] certs, String authType) { // Trust always } public void checkServerTrusted(X509Certificate[] certs, String authType) { // Trust always
Software Developers Guide for Cisco Secure Access Control System 5.3
3-12
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Working with the Viewer Web Services
} } }; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("SSL"); // Create empty HostnameVerifier HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } }; sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(hv); } public static void install1() throws Exception { // Bypass hostname verification. HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } }); } public static void main(String args[]) { try { install(); ACSViewWebServicesService serviceObj = new ACSViewWebServicesService(); ACSViewWebServices service = serviceObj.getACSViewWebServices(); UserContext userCtx = new UserContext(); userCtx.setUserName("acsadmin"); userCtx.setPassword("Acs5.1"); getVersion(service,userCtx); getAPIVersion(service,userCtx); getAuthBydate(service,userCtx); getAuthByTime(service,userCtx); getRadiusAccounting(service,userCtx); getFailureReasons(service,userCtx); } catch (Exception ex) { ex.printStackTrace(); } }
/** * getVersion provide the application version */ public static void getVersion(ACSViewWebServices service, UserContext userCtx) { try {
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-13
String result = service.getVersion(userCtx); System.out.println("-------------------------*** Application Version ***-------------------------"+"\n"); System.out.println("Application Version : "+result); System.out.println("----------------------------------------------------------------------------"+"\n"); } catch(Exception e) { e.printStackTrace(); } } /** *getAuthByDate provides the data of the authentication success/failure between the specified date range */ private static void getAuthBydate(ACSViewWebServices service, UserContext userCtx) { try { System.out.println("-------------------------*** Authentication Status by Date Starts ***-------------------------"+"\n"); AuthenticationParam authParam = new AuthenticationParam(); /** *** The following Attributes are optional. ** If the parameters are not set, method will return all the authentications success/failure between the specified date range. ** The Data will be filtered based on the attribute set which is falling under the specified date range. ** The attributes set are exactly matched for filtering,ie., only the data which is matching the below attributes and with in the specified date range are retrived. */ authParam.setAAAClient("MyClient"); authParam.setClientIPAddress("10.77.241.203"); authParam.setClientMACAddress("ABAC00019E05"); authParam.setUserName("user1"); /******* Optional Attributes Ends **************/ DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); GregorianCalendar gc1 = newGregorianCalendar(2011, Calendar.AUGUST, 4); XMLGregorianCalendar startDate = datatypeFactory.newXMLGregorianCalendar(gc1).normalize(); GregorianCalendar gc2 = newGregorianCalendar(2011, Calendar.AUGUST, 6); XMLGregorianCalendar endDate = datatypeFactory.newXMLGregorianCalendar(gc2).normalize(); java.util.List authStatusArray = service.getAuthenticationStatusByDate(userCtx,authParam, startDate, endDate); System.out.println("No of Records Retrieved : "+authStatusArray.size()); for(int i=0; i<authStatusArray.size();i++) { System.out.println("*************** Authentication Status : "+(i+1)+" ***************"); AuthenticationStatus status = (AuthenticationStatus)authStatusArray.get(i); java.util.List sarray = status.getMoreDetails(); System.out.println(sarray.get(0) +" :: "+sarray.get(1)); for(int j=0;j<sarray.size();j++) { System.out.println(sarray.get(j)+" :: "+sarray.get(++j)); } System.out.println("******************************************************************"); } System.out.println("-------------------------*** Authentication Status by
Software Developers Guide for Cisco Secure Access Control System 5.3
3-14
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Working with the Viewer Web Services
Date Ends ***-------------------------"+"\n"); } catch (Exception ex) { ex.printStackTrace(); } } /** * getAuthByTime provides the data of the authentication success/failure in the specified time. * Time can be provided in Minutes, Hours or Days */ private static void getAuthByTime(ACSViewWebServices service, UserContext userCtx) { try { System.out.println("-------------------------*** Authentication Status by Time Starts ***-------------------------"+"\n"); AuthenticationParam authParam = new AuthenticationParam(); /** *** The following Attributes are optional. ** If the parameters are not set method will return all the authentications success/failure between the specified date range. ** The Data will be filtered based on the attribute set which is falling under the specified date range. ** The attributes set are exactly matched for filtering,ie., only the data which is matching the below attributes and with in the specified date range are retrived. */ authParam.setAAAClient("MyClient"); authParam.setClientIPAddress("10.77.241.203"); authParam.setClientMACAddress("ABAC00019E05"); authParam.setUserName("user1"); /******* Optional Attributes Ends **************/ java.util.List authStatusArray = service.getAuthenticationStatusByTimeUnit(userCtx,authParam, 20, "Hours"); System.out.println("No of Records Retrieved : " + authStatusArray.size()); for(int i=0; i<authStatusArray.size();i++) { System.out.println("*************** Authentication Status : "+(i+1)+" ***************"); AuthenticationStatus status = (AuthenticationStatus)authStatusArray.get(i); java.util.List sarray = status.getMoreDetails(); System.out.println(sarray.get(0) +" :: "+sarray.get(1)); for(int j=0;j<sarray.size();j++) { System.out.println(sarray.get(j)+" :: "+sarray.get(++j)); } System.out.println("******************************************************************"); } System.out.println("-------------------------*** Authentication Status by Time Ends ***-------------------------"+"\n"); } catch (Exception ex) { ex.printStackTrace(); } } /** ** getAPIVersion provides the application API Version */
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-15
public static void getAPIVersion(ACSViewWebServices service, UserContext userCtx) { try { System.out.println("-------------------------*** API Version ***-------------------------"+"\n"); String apiresult = service.getAPIVersion(userCtx); System.out.println("API Version : "+apiresult); System.out.println("----------------------------------------------------------------------------"+"\n"); } catch(Exception ex) { ex.printStackTrace(); } } /** ** getFailureReasons provide the Failure Code, Possible Root Cause and Resolution */ public static void getFailureReasons(ACSViewWebServices service, UserContext userCtx) { try { // Get Failure reason - Example System.out.println("-------------------------*** Failure Reasons Starts ***-------------------------"+"\n"); List result1 = service.getFailureReasons(userCtx); System.out.println("Failure reasons list is : " + result1.size()); for (int i=0;i<result1.size() ;i++ ) { System.out.println("Authentication Failure Code : "+((FailureReason)result1.get(i)).getAuthenFailureCode()); System.out.println("Possible Root Cause : "+((FailureReason)result1.get(i)).getPossibleRootCause()); System.out.println("Resolution : "+((FailureReason)result1.get(i)).getResolution()); } System.out.println("-------------------------*** Failure Reasons Ends ***-------------------------"+"\n"); } catch(Exception ex) { ex.printStackTrace(); } } /** ** getRadiusAccounting provides the accounting details between the specified date range. */ public static void getRadiusAccounting(ACSViewWebServices service, UserContext userCtx) { try { System.out.println("-------------------------*** Radius Accounting Starts ***-------------------------"+"\n"); List acctParam = new ArrayList(); AccountingParam acParam = new AccountingParam(); List valList = acParam.getMatchValues(); valList.add("11");
Software Developers Guide for Cisco Secure Access Control System 5.3
3-16
OL-22972-01
Chapter 3
Using the Monitoring and Report Viewer Web Services Working with the Viewer Web Services
acParam.setAttributeName("cisco-h323-disconnect-cause/h323-disconnect-cause"); acParam.setMatchOperator("valueINNOT"); acctParam.add(acParam); List returnAttributes = new ArrayList(); returnAttributes.add("cisco-h323-disconnect-cause/h323-disconnect-cause"); DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); GregorianCalendar gc1 = newGregorianCalendar(2011, Calendar.AUGUST, 5); XMLGregorianCalendar startDate = datatypeFactory.newXMLGregorianCalendar(gc1).normalize(); GregorianCalendar gc2 = newGregorianCalendar(2011, Calendar.AUGUST, 7); XMLGregorianCalendar endDate = datatypeFactory.newXMLGregorianCalendar(gc2).normalize(); AccountingStatus acctStatus = service.getRadiusAccounting(userCtx,acctParam, startDate, endDate, returnAttributes); List attrNames = acctStatus.getAttrNames(); for(int x=0 ; x<attrNames.size() ; x++) { System.out.println("Attribute Names : "+attrNames.get(x)); } List acctDetailsList = (ArrayList)acctStatus.getAcctDetails(); Iterator detailIterator = acctDetailsList.iterator(); while(detailIterator.hasNext()) { AccountingDetail acctDetailObj = (AccountingDetail)detailIterator.next(); List acctDetails = (List)acctDetailObj.getAttrValues(); for (int i=0;i<acctDetails.size() ;i++ ) { System.out.println("Attribute Details : "+acctDetails.get(i)); } } System.out.println("-------------------------*** Radius Accounting Ends ***-------------------------"+"\n"); } catch(Exception e) { e.printStackTrace(); } } }
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
3-17
Software Developers Guide for Cisco Secure Access Control System 5.3
3-18
OL-22972-01
CH A P T E R
You must enable the web interface on ACS before you can use the REST web service. To enable the web interface on ACS, from the ACS CLI, enter:
acs config-web-interface rest enable
For more information on the acs config-web-interface command, refer to http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/ command/reference/cli_app_a.html#wp1887278.
Viewing the Status of the REST Web Interface from ACS CLI
To view the status of the web interface, from the ACS CLI, enter:
show acs-config-web-interface
For more information on the show acs-config-web-interface command, refer to http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/ command/reference/cli_app_a.html#wp1890877. Application that interacts with ACS configuration REST service may use any administrator account to authenticate to the REST service. Authorization for the used account should be set to allow all activities done by the REST client.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
4-1
Table 4-1
Feature Common
Comments Also known as dynamic attributes or AV pair. Attribute Info is composed within Protocol User. Supports Get method only. Supports getall method only. It allows to find the ACS instance that serve as primary and the ACS instance that provide Monitoring and Troubleshooting Viewer.
Error Message
Supports getall method only. It allows to retrieve all ACS message codes and message texts that are used on the REST Interface.
Identity
Full CRUD (Create, Read, Update, and Delete) and query support. Full CRUD and query support. Query is used to retrieve subgroups of a specific node. The list of users for each group is fetched by querying on the users.
Identity Groups, page 4-2 Attribute Info, page 4-3 Group Associations, page 4-3
Identity Groups
Identity Group object is used to manipulate nodes on the Identity Group hierarchy. The group name defines the full path of the node within the hierarchy. When you add a new node, you should be aware that the name of the node (which includes the full path) specifies where in the hierarchy the node should be attached. For example:
Note
You must create the upper level hierarchy (parent node) and then create the leaf node.
For example: To create the hierarchy, All Groups:US:WDC; we must create All Groups:US and then go ahead creating the next level in hierarchy.
In order to retrieve child of certain group you can set a filter asstart with All groups:CDO.
Software Developers Guide for Cisco Secure Access Control System 5.3
4-2
OL-22972-01
Chapter 4
Attribute Info
The AttributeInfo structure is an array of pairs of attribute names and attribute values. The attribute name refers to the user dictionary, where the definition of the attribute, such as value type, can be found. The value of the attribute must conform with the dictionary definition. The following is an example of JAVA representation for a user that has two attributes:
User user = new User(); user.setDescription(description); user.setPassword(password); user.setName(userName); user.setAttributeInfo(new AttributeInfo[]{ new AttributeInfo("Department","Dev"), new AttributeInfo("Clock","10 Nov 2008 12:12:34") });
Group Associations
The REST Interface schema shows the association of the user to the Identity group, as a group name property on the user object. Here is an example of associating user to an identity group:
User user = new User(); user.setIdenityGroupName("IdentityGroup:All Groups:Foo"); user.setDescription(description); user.setPassword(password); user.setName(userName);
Query Object
The REST Interface schema exposes a query object to define criteria and other query parameters. The query object is used for users and identity groups. The query object includes parameters that apply to:
Filtering
You can use the query object to retrieve a filtered result set. You can filter users or identity groups, based on the following criteria:
Simple condition Includes property name, operation, and value. For example, name STARTS_WITH "A". The following operations are supported for filtering:
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
4-3
And condition Includes set of simple conditions. All simple condition must be evaluated to be True in order for the and condition to be matched.
Sorting
You can use the query object to sort the results. You can sort based on the following criteria:
Software Developers Guide for Cisco Secure Access Control System 5.3
4-4
OL-22972-01
Chapter 4
Paging
You can set the query object with the following paging parameters:
Paging is stateless. That is, the required page is calculated from scratch for every request. This means that paging could skip objects or return them twice, in case objects were added or deleted concurrently.
Request Structure
ACS REST request is composed of:
URL HTTP method ContentIncludes ACS objects if applicable to the requested method. The ACS objects are represented in XML.
URL Path
URL includes:
Service name: Rest Package name: Identity or Common Object Type: User, Identity Group, and so on Object Identifier are valid with GET and DELETE methods Operation name is required for operations other than CRUD such as query.
Objects are identified by name or by object ID. Basic object key is the object name. You can also use Object ID for GET and Delete method. For POST and PUT, the method gets the object itself that includes the identifiers. You can specify identifier on the URL in the following ways:
Name as the key Rest/{package}/{ObjectType}/name/{name} Object ID as the key Rest//{package}/{ObjectType}/id/{id} For single instance per object type, no key is required For
URL Summary Table
example: REST/common/ACSVersion
Table 4-2
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
4-5
Table 4-2
Comment For some methods, there is additional data on the URL. SeeTable 4-3 For some methods, there is additional data on the URL. SeeTable 4-3
HTTP Methods
HTTP methods are mapped to configuration operations (CRUD - Create, Read, Update, and Delete). The common intrinsic methods are not specified within the URL, and are determined by the HTTP request method. In other cases, you need to add the configuration operation into the URL. HTTP methods are mapped to ACS operations:
HTTP GETView an object or multiple objects HTTP POSTCreate a new object HTTP DELETEDelete a object HTTP PUTUpdate an existing object. PUT is also used to invoke extrinsic methods (other than CRUD).
When HTTP PUT method is used for operations other than CRUD, the URL specifies the required operation. This is also used to distinguish the message from PUT method for update. The keyword op is included in the URL as follows: Rest/{package}/{ObjectType}/op/{operation} For example, /Rest/Identity/IdentityGroup/op/query Table 4-3 describes the primary ACS REST methods and their mapping to HTTP messages.
Table 4-3 HTTP Method Summary
URL /{ObjectType}
getById create
GET POST
An Object Rest Response Result, which includes Object ID. Rest Result
delete
DELETE
Software Developers Guide for Cisco Secure Access Control System 5.3
4-6
OL-22972-01
Chapter 4
Table 4-3
1. Names in the URL are full names. ACS REST services does not support wildcards or regular expressions. 2. Update method replaces the entire object with the object provided in the request body, with the exception of sensitive properties.
Note
Response Structure
The response to Rest request is a standard HTTP response that includes HTTP status code and other data returned by web servers. In addition, the response can include the ACS Rest Result object or ACS configuration objects according to the type of request. You should check the HTTP status code to know the type of objects expected in the response body.
For 4xx HTTPS status codes except for 401 and 404, REST result Object is returned. For 5xx status codesother than 500, the message content includes a text that describe the server error. For 500 HTTP status code, REST result is returned. For 200 and 201 HTTP status code, objects per the specific method or object type is returned. For 204 HTTP status code, no object is returned.
2xx for success 4xx for client errors 5xx for server errors 1xx 3xx
The HTTP status code is returned within the HTTP response headers as well as within the REST result object. Table 4-4 lists the HTTP status codes that are returned by ACS.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
4-7
Table 4-4
Status Code Message 200 204 400 Ok OK with no content Bad Request
Usage in ACS Successful Get, create and query Successful delete and update
Request errors: Object The request contains bad syntax validation failure, XML or cannot be executed. syntax error, and other error For example, if you try to create in request message an object with a name that already exists, the object validation fails. Detailed reasons can be found in the REST result object.
401
Unauthorized
Similar to 403 error, but specifically for use when authentication failed or credentials are not available. The request was valid, but the server refuses to respond to it. Unlike a 401 error, authenticating will make no difference. Also, this error is displayed when an non-read request was send to a secondary instance.
403
Forbidden
ACS is a secondary and can not fulfill the request or operation is not allowed per administrator authorizations.
404
Not Found
For cases where the URL is wrong or the REST Service is not enabled. A resource is not available anymore A request was made for an object that does not exist. For example, deleting an object that does not exist.
410
Gone
500
HTTP status code HTTP status text ACS message code ACS message
Software Developers Guide for Cisco Secure Access Control System 5.3
4-8
OL-22972-01
Chapter 4
Returned Objects
ACS returns objects for GET method and for query operation. The type of returned object is determined by the request URL. When a GET method returns multiple objects, these are included in the response. If the returned list is too long, you should use filtering or paging options.
WADL File
The WADL files contain the object structure (schema) and the methods for every object. The WADL files are mainly documentation aids. You cannot generate client applications using WADL files. The WADL file structure is according to W3C specification. For more information, see http://www.w3.org/Submission/wadl/ To download the WADL files:
Step 1 Step 2
From the ACS user interface, go to System Administration > Downloads > Rest Service Under ACS Rest Service WADL files, click Common or Identity and save the files to your local drive.
Schema File
ACS is shipped with three XSD files that describe the structure of the objects supported on ACS 5.3 REST interfaces. The three XSD files are:
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
4-9
You can download the schema files in the same way as you download the WADL files. 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 generated from the XSD files.
Note
It is highly recommended to generate REST client classes from the XSD files than coding XML or creating it manually.
Sample Code
ACS provides sample code for client application to help you develop an application that interacts with ACS REST Interface. The sample code can be downloaded in the same way as WADL and schema files. The sample code is based on Apache HTTP Client http://hc.apache.org/httpcomponents-client-ga/index.html and JAVA code generated by JAXB (xjc command) with the help of the XSD files. It includes sample codes for:
Get ACS Version Get all users Get All Service Locations Get Filtered list of Users Get list of Error messages Get User by ID and by name Create, Delete, Update user Create, Delete, and Update identity group Get IdentityGroup by name or ID Get sub-tree of IdentityGroups Get all Users of an Identity Group
Software Developers Guide for Cisco Secure Access Control System 5.3
4-10
OL-22972-01
CH A P T E R
The import and export functionalities in ACS 5.3 allow you to perform bulk operations such as Create, Update, and Delete on ACS objects and provide a migration path for customers migrating from ACS 4.x releases to ACS 5.3. You can integrate ACS with any of your repositories and import data into ACS through automated scripts, using the Import and Export features. You can also encrypt the .csv file before you transfer the file for additional security, or, optionally, use Secure File Transfer Protocol (SFTP). You can create a scheduled command that looks for a file with a fixed name in the repository to perform bulk operations. This option provides the functionality that was available in ACS 4.x releases. ACS processes the import and export requests in a queue. Only one process can run at a time. When you use the ACS web interface for importing and exporting, you cannot manually control the queue. ACS processes the queue in sequence. However, you can use the CLI to manage the import and export processes in ACS. The ACS CLI allows you to view the status of the queue and terminate the processes that are in the queue. This chapter contains the following sections:
Understanding Import and Export in ACS, page 5-2 Supported ACS Objects, page 5-5 Creating Import Files, page 5-7 Using Shell Scripts to Perform Bulk Operations, page 5-11
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
5-1
To import ACS configuration data, you need CRUD permissions for the specific configuration object. To export data to a remote repository, you need read permission for the specific configuration object. Importing ACS Objects Through the CLI, page 5-2 Exporting ACS Objects Through the CLI, page 5-3 Viewing the Status of Import and Export Processes, page 5-4 Terminating Import and Export Processes, page 5-5
Name of the remote repository where the import file resides. See Creating Import Files, page 5-7, for information on how to create the import file. Name of the import file. Type of ACS object that the import file contains.
ACS obtains the .csv file from the remote repository and processes the file. You can query ACS for the status of the import process using the import-export-status command. After the import process is complete, ACS generates a status file in the remote repository that includes any errors that ACS identified during this process. For additional security during the import process, you have the option of encrypting the import file and using a secured remote repository for the import operation. Also, the import process sometimes can run into errors. You can specify whether you want to terminate the import process or continue it until it is complete.
Note
If you choose to use a secured remote repository for import, you must specify SFTP as the repository value.
Software Developers Guide for Cisco Secure Access Control System 5.3
5-2
OL-22972-01
Chapter 5
For example, to add internal user records to an existing identity store, from the ACS CLI, enter:
import-data add user {full | none | only-sec-repo | only-sec-files}
| cont-on-error}
Syntax Description
repositoryName of the remote repository from which to import the ACS objects, in this case, the internal users. file-nameName of the import file in the remote repository. result-file-nameName of the file that contains the results of the import operation. This file is available in the remote repository when the import process completes or is terminated.
abort-on-errorAborts
cont-on-errorIgnores any errors that occur during the import process and continues to import the rest
of the object.
fullEncrypts the import file using the GNU Privacy Guard (GPG) encryption mechanism and uses secured remote repository to import the file. If you specify the security type as full, you must specify SFTP as the repository value. noneNeither
encrypts the import file nor uses the secured remote repository for import.
the secret phrase to decrypt the import file. If you specify the security type as or only-sec-files, you must specify the secret phrase. the secured remote repository to import the file. If you specify the security type you must specify SFTP as the repository value. the import file using GPG encryption mechanism.
only-sec-repoUses
as
only-sec-repo,
only-sec-files Encrypts
Object type to be exported. Name of the remote repository to which the .csv file should be downloaded after the export process is complete.
When ACS processes your export request, you can enter a command to query the progress of the export. After the export process is complete, the .csv file that is available in your remote repository should contain all the object records that exist in the ACS internal store.
Note
When you export ACS objects through the web interface, use the available filters to export a subset of the records. For additional security during the export process, you have the option of encrypting the export file and using a secured remote repository for the export operation.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
5-3
Note
If you choose to use a secured remote repository for export, you must specify SFTP as the repository value. For example, to export internal user records, from the ACS CLI, enter:
export-data user only-sec-files}
Syntax Description
repositoryName of the remote repository to which to export the ACS objects, in this case, the internal users. file-nameName of the export file in the remote repository. result-file-nameName of the file that contains the results of the export operation. This file is available in the remote repository when the export process completes.
fullEncrypts the export file using the GPG encryption mechanism and uses secured remote repository
to export the file. If you specify the security type as full, you must specify SFTP as the repository value.
noneNeither
encrypts the export file nor uses the secured remote repository for export.
a secret phrase to encrypt the export file. If you specify the security type as or only-sec-files, you must specify the secret phrase.
only-sec-repoUses the secured remote repository to export the file. If you specify the security type as only-sec-repo, you must specify SFTP as the repository value. only-sec-filesEncrypts
{current | all | id id }
Syntax Description
currentDisplays the status of the currently running processes. allDisplays the status of all the import and export processes, including any pending processes. idDisplays the import or export status, based on a particular process that is specified by the process ID. For more information on the import-export-status command, see http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/command/refer ence/cli_app_a.html#wp1893573.
Software Developers Guide for Cisco Secure Access Control System 5.3
5-4
OL-22972-01
Chapter 5
Syntax Description
currentAborts any import or export process that is running currently. allAborts all the import and export processes in the queue. idAborts the import or export process, based on the process ID that you specify. For more information on the import-export-abort command, see http://www.cisco.com/en/US/docs/net_mgmt/cisco_secure_access_control_system/5.3/command/refer ence/cli_app_a.html#wp1893490.
Users Hosts Network Devices Identity Groups NDGs Downloadable ACLs Command Sets
Table 5-1 lists the ACS objects, their properties, and the property data types.
Table 5-1 ACS Objects Property Names and Data Types
Property Name
Object Type: User
Property Data Type (Required in create, edit, and delete) String. Maximum length is 64 characters. (Optional) String. Maximum length is 1024 characters. (Required in create) Boolean. (Required in create) Boolean. (Required in create) String. Maximum length is 32 characters. Not available in Export.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
5-5
Table 5-1
Property Data Type (Optional) String. Maximum length is 32 characters. (Optional) String. Maximum length is 256 characters. (Optional) String and other data types. (Required in create, edit, delete) String. Maximum length is 64 characters. (Optional) String. Maximum length is 1024 characters. (Optional) Boolean. (Optional) String. Maximum length is 256 characters. (Optional) String. (Required in create, edit, delete) String. Maximum length is 64 characters. (Optional) String. Maximum length is 1024 characters. (Required in create) String. (Required in create) Boolean. (Optional) String. Maximum length is 32 characters. (Required in create) Boolean. (Optional) String. Maximum length is 32 characters. (Optional) Boolean. (Optional) Boolean. (Required in create) Boolean. (Optional) String. Maximum length is 32 characters. (Optional) Boolean. (Optional) String. Maximum length is 32 characters. (Optional) Integer. (Optional) Integer. (Optional) Integer. (Optional) Integer. (Optional) String. (Required in create, edit, delete) String. Maximum length is 64 characters. (Optional) String. Maximum length is 1024 characters. (Required in create, edit, delete) String. Maximum length is 64 characters. (Optional) String. Maximum length is 1024 characters. (Required in create, edit, delete) String. Maximum length is 64 characters.
MAC address Description Enabled Host Identity Group List of attributes Name Description Subnet Support RADIUS RADIUS secret Support TACACS TACACS secret Single connect Legacy TACACS Support CTS CTS Identity CTS trusted Password sgACLTTL peerAZNTTL envDataTTL Session timeout List of NDG names Name Description
Object Type: NDG
Software Developers Guide for Cisco Secure Access Control System 5.3
5-6
OL-22972-01
Chapter 5
Table 5-1
Property Name Description Content Name Description Commands (in the form of grant:command:arg uments)
Property Data Type (Optional) String. Maximum length is 1024 characters. (Required in create, edit, delete) String. Maximum length is 1024 characters. (Required in create, edit, delete) String. Maximum length is 64 characters. (Optional) String. Maximum length is 1024 characters. (Optional) String.
Note
This is a list with semicolons used as separators (:) between the values that you supply for grant.
Fields that are optional can be left empty and ACS substitutes the default values for those fields. For example, when fields that are related to a hierarchy are left blank, ACS assigns the value of the root node in the hierarchy. For network devices, if TrustSec is enabled, all related configuration fields are set to default values.
Downloading the Template from the Web Interface, page 5-7 Understanding the CSV Templates, page 5-8 Creating the Import File, page 5-9
Log into the ACS 5.3 web interface. Choose Users and Identity Stores > Internal Identity Stores > Users . The Users page appears. Click File Operations. The File Operations wizard appears. Choose any one of the following:
Step 3
Step 4
AddAdds users to the existing list. This option does not modify the existing list. Instead, it performs an append operation. UpdateUpdates the existing internal user list.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
5-7
Step 5
DeleteDeletes the list of users in the import file from the internal identity store.
Click Next. The Template page appears. Click Download Add Template. Click Save to save the template to your local disk.
Step 6 Step 7
The following list gives you the location from which you can get the appropriate template for each of the objects:
UserUsers and Identity Stores > Internal Identity Stores > Users HostsUsers and Identity Stores > Internal Identity Stores > Hosts Network DeviceNetwork Resources > Network Devices and AAA Clients Identity GroupUsers and Identity Stores > Identity Groups NDG
LocationNetwork Resources > Network Device Groups > Location Device TypeNetwork Resources > Network Device Groups > Device Type
Downloadable ACLsPolicy Elements > Authorization and Permissions > Named Permission Objects > Downloadable ACLs Command Set Policy Elements > Authorization and Permissions > Device Administration > Command Sets
Follow the procedure described in this section to download the appropriate template for your object.
Header Field name:String(64):Required description:String(1024) enabled:Boolean(true,false):Required changePassword:Boolean(true,false): Required password:String(32):Required enablePassword:String(32) UserIdentityGroup:String(256)
Description Username of the user. Description of the user. Boolean field that indicates whether the user must be enabled or disabled. Boolean field that indicates whether the user must change password on first login. Password of the user. Enable password of the user. Identity group to which the user belongs.
All the user attributes that you have specified would appear here.
Software Developers Guide for Cisco Secure Access Control System 5.3
5-8
OL-22972-01
Chapter 5
Each row of the .csv file corresponds to one internal user record. You must enter the values into the .csv file and save it before you can import the users into ACS. See Creating the Import File, page 5-9 for more information on how to create the import file. This example is based on the internal user Add template. For the other ACS object templates, the header row contains the properties described in Table 5-1 for that object.
Adding Records to the ACS Internal Store, page 5-9 Updating the Records in the ACS Internal Store, page 5-10 Deleting Records from the ACS Internal Store, page 5-10
Download the internal user Add template. See Downloading the Template from the Web Interface, page 5-7 for more information. Open the internal user Add template in Microsoft Excel or any other spreadsheet application. See Table 5-1 for a description of the fields in the header row of the template. Enter the internal user information. Each row of the .csv template corresponds to one user record. Figure 5-1 Figure 5-1 shows a sample Add Users import file.
Figure 5-1
Step 4
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
5-9
Note
The second column, Updated name, is the additional column that you can add to the Update template. Also, the password value and the enabled password value are not mandatory in the case of an update operation for the user object.
Timesaver
To delete all users, you can export all users and then use the export file as your import file to delete users.
Software Developers Guide for Cisco Secure Access Control System 5.3
5-10
OL-22972-01
Chapter 5
Using the Scripting Interface Using Shell Scripts to Perform Bulk Operations
Figure 5-3
Log into the ACS web interface. Choose System Administration > Downloads > Scripts. The downloadable package consists of:
Note
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
5-11
# Saving the repository connector.sendline('write memory') connector.expect('.$') # Going into acs-config mode connector.sendline('acs-config') connector.expect('.ername:*') # Enter acs admin username connector.sendline('acsadmin') connector.expect('.ssword:*') # Enter acs admin password connector.sendline('1111') connector.expect('.config-acs*') connector.sendline('import-data add device local device.csv device_res.csv cont-on-error none') # Performing the import command connector.expect('.$') # Exit acs-config mode connector.sendline('exit') connector.expect('.$') # Exit ssh mode connector.sendline('exit')
Software Developers Guide for Cisco Secure Access Control System 5.3
5-12
OL-22972-01
A P P E N D I X
Configuring a Remote Database in ACS, page A-1 Understanding the Monitoring and Report Viewer Database Schema, page A-2
Microsoft SQL Server Schema, page A-4 Oracle Schema, page A-24
Log into the ACS web interface. From the Monitoring and Report Viewer, choose Monitoring Configuration > System Configuration > Remote Database Settings. The Remote Database Settings Page appears as described in Table A-1.
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-1
Table A-1
Option Publish to Remote Database Server Port Username Password Publish data every n hours Database Type
Description Check the check box for ACS to export data to the remote database periodically. By default, ACS exports data to the remote database every 4 hours. Enter the DNS name or the IP address of the remote database. Enter the port number of the remote database. Enter the username for remote database access. Enter the password for remote database access. Choose a time interval from the drop-down list box for ACS to export data at the specified interval. Valid options are 1, 2, 4, 6, 8, 12, and 24 hours. The type of remote database that you want to configure:
Click the Microsoft Database radio button to configure a Microsoft database and enter the name of the remote database. Click the Oracle SID radio button to configure an Oracle database and enter the system identifier for the Oracle database.
Step 3
Click Submit to configure the remote database. To view the status of your export job in the Scheduler, from the Monitoring and Report Viewer, select Monitoring Configuration > System Operations > Scheduler.
Note
The tables that contain AAA diagnostics, system diagnostics, and administrative audit data are not exported. The Viewer database contains raw and aggregated tables. This section contains the following topics:
Raw Tables, page A-3 Aggregated Tables, page A-3 Microsoft SQL Server Schema, page A-4 Oracle Schema, page A-24
Software Developers Guide for Cisco Secure Access Control System 5.3
A-2
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Raw Tables
The raw tables contain individual records. The Monitoring and Report Viewer aggregates the records in the raw tables and stores the aggregated data in aggregated tables. The passed and failed bit fields in the raw tables are not encoded and are represented as 1s and 0s.
Aggregated Tables
The aggregated tables contain a count of passed and failed authentications for various data combinations. For example, for a user User1, from identity group A, with NAD B, and access policy C, the Monitoring and Report Viewer computes the passed and failed counts on a daily basis and stores it in the monthly tables.
Monthly Tables
The daily count of passed and failed authentications for various data combinations are stored in the monthly tables.
Yearly Tables
At the end of every month, the Monitoring and Report Viewer computes the passed and failed counts for that month and stores them in the yearly tables. You can choose to work with individual records from the raw tables or you can get the counts directly from these aggregated tables. In the aggregated tables, passed and failed counts are available for various data combinations. The Passed, Failed, TotalResponseTime, and MaxResponseTime fields are not part of any data combination. The total response time is computed in milliseconds for both passed and failed authentications. The day field in the month tables is set to date only and does not include the time. Table A-2 provides a list of tables, a brief description, and a list of aggregated tables.
Table A-2 Monitoring and Report Viewer Database Schema
Purpose
Accounting
Description TACACS SessionStart and stop, watchdog process, and rejected session information. RADIUS SessionStart, stop, and update information. TACACSPassed authentications and failed attempts.
AAA Audit
TACACS device acstacacsauthorizationmonth administrationCommand and acstacacsauthorizationyear session authorization passed and failed attempts. RADIUSPassed authentications and failed attempts. acsradiusauthenticationmonth acsradiusauthenticationyear
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-3
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode ACSSessionID AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore AuthenticationMethod AuthenType NetworkDeviceName DeviceIPAddress IdentityGroup NetworkDeviceGroups Response PriviligeLevel FailureReason ADDomain AuthenMethod GroupMappingPolicyMatchedR IdentityPolicyMatchedRule QueryIdentityStores RemoteAddress SelectedAuthenticationIdenti SelectedQueryIdentityStores Service AVPair
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text text varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text
Software Developers Guide for Cisco Secure Access Control System 5.3
A-4
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-3
acstacacsauthenticationmonth Table
Column ID Day ACSServer MessageCode AccessService ServiceSelectionPolicy UserName IdentityStore NetworkDeviceName DeviceIPAddress IdentityGroup NetworkDeviceGroups FailureReason ADDomain UseCase Passed Failed TotalResponseTime MaxResponseTime
Data Type integer smalldatetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text varchar(500) varchar(500) varchar(500) integer integer integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-5
acstacacsauthenticationyear
Table A-5 acstacacsauthenticationyear Table
Column ID Month ACSServer MessageCode AccessService ServiceSelectionPolicy UserName IdentityStore NetworkDeviceName DeviceIPAddress IdentityGroup NetworkDeviceGroups FailureReason ADDomain UseCase Passed Failed TotalResponseTime MaxResponseTime
acsradiusauthentication
Table A-6
Data Type integer varchar(10) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text varchar(500) varchar(500) varchar(500) integer integer integer integer
acsradiusauthentication Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode ACSSessionID AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) text varchar(500) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-6
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-6
Column AuthenticationMethod NetworkDeviceName IdentityGroup NetworkDeviceGroups Response CallingStationID NASPort ServiceType AuditSessionID CTSSecurityGroup FailureReason UseCase ExecutionSteps FramedIPAddress NASIdentifier NASIPAddress NASPortId CiscoAVPair ADDomain RadiusResponse ACSUserName RadiusUserName NACRole NACPolicyCompliance NACUsername NACPostureToken NACRadiusIsUserAuthenticated SelectedPostureServer SelectedIdentityStore AuthenticationIdentityStore AuthorizationExceptionPolicyMa ExternalPolicyServerMatchedRul GroupMappingPolicyMatchedRule IdentityPolicyMatchedRule NASPortType QueryIdentityStores
Data Type varchar(500) varchar(500) text text text varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(4000) varchar(500) varchar(500) varchar(500) varchar(500) text varchar(500) text varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-7
Table A-6
Column SelectedAuthorizationProfiles SelectedExceptionAuthorization SelectedQueryIdentityStores EapAuthentication EapTunnel TunnelDetails CiscoH323Attributes CiscoSSGAttributes OtherAttributes ResponseTime NADFailure Passed Failed
acsradiusauthenticationmonth
Table A-7
Data Type varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text text text integer bit bit bit
acsradiusauthenticationmonth Table
Column ID Day ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore NetworkDeviceName IdentityGroup NetworkDeviceGroups CallingStationID FailureReason NASIdentifier NASIPAddress ADDomain UseCase SelectedAuthorizationProfiles
Data Type integer smalldatetime varchar(500) varchar(10) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(500) text text varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-8
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-7
Column CTSSecurityGroup Passed Failed TotalResponseTime MaxResponseTime constraint ASA1234 primary key (ID)
acsradiusauthenticationyear
Table A-8
acsradiusauthenticationyear Table
Column ID Month ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore NetworkDeviceName IdentityGroup NetworkDeviceGroups CallingStationID FailureReason NASIdentifier NASIPAddress ADDomain UseCase
Data Type integer varchar(10) varchar(500) varchar(10) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(500) text text varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500)
SelectedAuthorizationProfilesCTSSecurityGro varchar(500) up Passed Failed TotalResponseTime MaxResponseTime integer integer integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-9
acstacacsauthorization
Table A-9 acstacacsauthorization Table
Column ID ACSTIMESTAMP ACSViewTIMESTAMP ACSServer MessageCode ACSSessionID AccessService ServiceSelectionPolicy AuthorizationPolicy UserName Response NetworkDeviceName DeviceIPAddress PriviligeLevel CmdSet MatchedCommandSet SelectedShellProfile SelectedCommandSet AuthorizationFailureReason FailedShellAttribute IdentityGroup NetworkDeviceGroups AuthenMethod AuthorizationExceptionPolicyMa AuthorReplyStatus FailureReason GroupMappingPolicyMatchedRule IdentityPolicyMatchedRule QueryIdentityStores RemoteAddress SelectedAuthorizationProfiles SelectedExceptionAuthorization AVPair ExecutionSteps OtherAttributes
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) text varchar(500) text varchar(500) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text text
Software Developers Guide for Cisco Secure Access Control System 5.3
A-10
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-9
Data Type varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) integer bit bit
acstacacsauthorizationmonth Table
Column ID Day ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName NetworkDeviceName DeviceIPAddress PriviligeLevel CmdSet MatchedCommandSet SelectedShellProfile SelectedCommandSet AuthorizationFailureReason FailedShellAttribute IdentityGroup NetworkDeviceGroups TotalResponseTime Passed Failed
Data Type integer smalldatetime varchar(500) varchar(10) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text integer integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-11
acstacacsauthorizationyear
Table A-11 acstacacsauthorizationyear Table
Column ID Month ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName NetworkDeviceName DeviceIPAddress PriviligeLevel CmdSet MatchedCommandSet SelectedShellProfile SelectedCommandSet AuthorizationFailureReason FailedShellAttribute IdentityGroup NetworkDeviceGroups TotalResponseTime Passed Failed
acstacacsaccounting
Table A-12 acstacacsaccounting Table
Data Type integer varchar(10) varchar(500) varchar(10) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text text integer integer integer
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-12
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-12
Column RemoteAddress AcctRequestFlags AuthenMethod ServiceType Service NetworkDeviceName Port NetworkDeviceGroups DeviceIPAddress SourceIPAddress PrivilegeLevel CmdSet ServerMsg ServiceArgument AVPair AcctInputPackets AcctOutputPackets AcctTerminateCause AcctSessionTime AcctSessionId ExecutionSteps Response OtherAttributes ResponseTime Started Stopped SessionKey
acstacacsaccountingmonth
Table A-13
Data Type varchar(500) varchar(10) varchar(20) varchar(20) varchar(500) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) text numeric(11) numeric(11) varchar(500) numeric(11) varchar(500) text text text integer smallint smallint varchar(500)
acstacacsaccountingmonth Table
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-13
Table A-13
Column UserName RemoteAddress Service NetworkDeviceName NetworkDeviceGroups DeviceIPAddress SourceIPAddress PrivilegeLevel CmdSet Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acstacacsaccountingyear
Table A-14
Data Type varchar(500) varchar(500) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(10) varchar(500) integer bigint numeric(11) integer bigint bigint numeric(11) integer integer
acstacacsaccountingyear Table
Column ID Month ACSServer MessageCode AccessService UserName RemoteAddress Service NetworkDeviceName NetworkDeviceGroups DeviceIPAddress SourceIPAddress PrivilegeLevel CmdSet
Data Type integer varchar(10) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text varchar(500) varchar(500) varchar(10) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-14
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-14
Column Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acsradiusaccounting
Table A-15 acsradiusaccounting Table
Data Type integer bigint numeric(11) integer bigint bigint numeric(11) integer integer
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode ACSSessionID UserName CallingStationID AcctSessionId AcctStatusType AcctSessionTime ServiceType FramedProtocol AcctInputOctets AcctOutputOctets AcctInputPackets AcctOutputPackets FramedIPAddress NASPort NASIPAddress CiscoAVPair Class AcctTerminateCause
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(20) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text varchar(500) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-15
Table A-15
Column AccessService AuditSessionID AcctMultiSessionID AcctAuthentic TerminationAction SessionTimeout IdleTimeout AcctInterimInterval AcctDelayTime EventTimestamp NASIdentifier NASPortId AcctTunnelConnection AcctTunnelPacketLost NetworkDeviceName NetworkDeviceGroups ServiceSelectionPolicy IdentityStore ADDomain IdentityGroup AuthorizationPolicy FailureReason SecurityGroup TunnelDetails CiscoH323SetupTime CiscoH323ConnectTime CiscoH323DisconnectTime CiscoH323Attributes CiscoSSGAttributes ExecutionSteps OtherAttributes ResponseTime Started Stopped SessionKey
Data Type varchar(500) varchar(500) varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) text datetime datetime datetime text text text text integer smallint smallint varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-16
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
acsradiusaccountingmonth
Table A-16 acsradiusaccountingmonth Table
Column ID Day ACSServer MessageCode AccessService UserName CallingStationID AcctTerminateCause TerminationAction NASIdentifier NASIPAddress NetworkDeviceName NetworkDeviceGroups IdentityStore ADDomain IdentityGroup AuthorizationPolicy AcctStatusType FramedIPAddress Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acsradiusaccountingyear
Table A-17
Data Type integer smalldatetime varchar(500) varchar(10) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) integer bigint numeric(11) integer bigint bigint numeric(11) integer integer
acsradiusaccountingyear Table
Column ID Month
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-17
Table A-17
Column ACSServer MessageCode AccessService UserName CallingStationID AcctTerminateCause TerminationAction NASIdentifier NASIPAddress NetworkDeviceName NetworkDeviceGroups IdentityStore ADDomain IdentityGroup AuthorizationPolicy AcctStatusType FramedIPAddress Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acsaaadiagnostics
Table A-18 acsaaadiagnostics Table
Data Type varchar(500) varchar(10) varchar(500) varchar(500) varchar(255) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) varchar(500) integer bigint numeric(11) integer bigint bigint numeric(11) integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3
A-18
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-18
acsaaadiagnostics Table
acsadministratorlogin Table
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(100) varchar(100) varchar(10)
acsconfigurationchanges Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode AdminName AdminIPAddress AdminSession AdminInterface ObjectType ObjectName RequestedOperation OperationMessageText ConfigChangeData HostID
Data Type integer datetime datetime varchar(500) varchar(10) varchar(500) varchar(100) varchar(100) varchar(10) varchar(500) varchar(500) varchar(100) varchar(1000) text varchar(100)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-19
Table A-20
Column RequestResponseType FailureFlag Details OperatorName UserAdminFlag AccountName DeviceIP IdentityStoreName ChangePasswordMethod AuditPasswordType ObjectID AppliedToACSInstance LocalMode
acslogcollectionfailures
Table A-21
Data Type varchar(10) varchar(10) varchar(1000) varchar(500) varchar(10) varchar(500) varchar(15) varchar(500) varchar(10) varchar(10) varchar(100) varchar(500) bit
acslogcollectionfailures Table
acsmessagecatalog Table
Software Developers Guide for Cisco Secure Access Control System 5.3
A-20
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
acsprocessstatus
Table A-23 acsprocessstatus Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode NodeId NodeName Role DatabaseProc Management Runtime Adclient ViewDatabase ViewCollector ViewJobManager ViewAlertManager ViewLogProcessor
acssystemstatus
Table A-24
Data Type integer datetime datetime varchar(500) varchar(10) smallint varchar(500) varchar(100) bit bit bit bit bit bit bit bit bit
acssystemstatus Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode CPUUtilization NetworkUtilizationRcvd NetworkUtilizationSent MemoryUtilization DiskIOUtilization DiskSpaceUtilizationRoot DiskSpaceUtilizationAltRoot DiskSpaceUtilizationBoot
Data Type integer datetime datetime varchar(500) varchar(10) decimal(5,2) integer integer decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-21
Table A-24
Column DiskSpaceUtilizationHome DiskSpaceUtilizationLocaldisk DiskSpaceUtilizationOpt DiskSpaceUtilizationRecovery DiskSpaceUtilizationStoredconf DiskSpaceUtilizationStoreddata DiskSpaceUtilizationTmp DiskSpaceUtilizationRuntime AverageRadiusRequestLatency AverageTacacsRequestLatency DeltaRadiusRequestCount DeltaTacacsRequestCount
acssystemdiagnostics
Table A-25
Data Type decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) integer integer integer integer
acssystemdiagnostics Table
Data Type integer datetime datetime varchar(500) varchar(10) varchar(10) varchar(100) text
acsviewnetflowaggregation Table
Software Developers Guide for Cisco Secure Access Control System 5.3
A-22
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-26
acsviewnetflowaggregation Table
Data Type varchar(50) varchar(100) integer varchar(100) integer varchar(15) varchar(50) integer
checkpointday Table
Column ID Type Timestamp AuditSessionID ACSServer ACSSessionID NASIP EndpointMAC EndpointIP UserName VLAN dACL AuthenticationType InterfaceName Reason
nadaaastatus
Table A-28 nadaaastatus Table
Data Type integer smallint datetime varchar(100) varchar(100) varchar(100) varchar(41) varchar(100) varchar(41) varchar(500) varchar(100) varchar(100) varchar(500) varchar(100) varchar(500)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-23
Table A-28
nadaaastatus Table
Oracle Schema
The Monitoring and Report Viewer database in AD contains the following tables:
acstacacsauthentication
Table A-29 acstacacsauthentication Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode ACSSessionID AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore AuthenticationMethod AuthenType NetworkDeviceName DeviceIPAddress IdentityGroup NetworkDeviceGroups Response PriviligeLevel FailureReason ADDomain AuthenMethod GroupMappingPolicyMatchedR IdentityPolicyMatchedRule QueryIdentityStores RemoteAddress
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-24
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-29
Column SelectedAuthenticationIdenti SelectedQueryIdentityStores Service AVPair ExecutionSteps OtherAttributes SelectedShellProfile ResponseTime Passed Failed
acstacacsauthenticationmonth
Table A-30
Data Type varchar2(500) varchar2(500) varchar2(500) clob clob clob varchar2(500) integer smallint smallint
AuthorizationExceptionPolicyMa varchar2(500)
acstacacsauthenticationmonth Table
Column ID Day ACSServer MessageCode AccessService ServiceSelectionPolicy UserName IdentityStore NetworkDeviceName DeviceIPAddress IdentityGroup NetworkDeviceGroups FailureReason ADDomain UseCase Passed Failed TotalResponseTime MaxResponseTime
Data Type integer date varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob varchar2(500) varchar2(500) varchar2(500) integer integer integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-25
acstacacsauthenticationyear
Table A-31 acstacacsauthenticationyear Table
Column ID Month ACSServer MessageCode AccessService ServiceSelectionPolicy UserName IdentityStore NetworkDeviceName DeviceIPAddress IdentityGroup NetworkDeviceGroups FailureReason ADDomain UseCase Passed Failed TotalResponseTime MaxResponseTime
acsradiusauthentication
Table A-32
Data Type integer varchar2(10) varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob varchar2(500) varchar2(500) varchar2(500) integer integer integer integer
acsradiusauthentication Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode ACSSessionID AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-26
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-32
Column AuthenticationMethod NetworkDeviceName IdentityGroup NetworkDeviceGroups Response CallingStationID NASPort ServiceType AuditSessionID CTSSecurityGroup FailureReason UseCase ExecutionSteps FramedIPAddress NASIdentifier NASIPAddress NASPortId CiscoAVPair ADDomain RadiusResponse ACSUserName RadiusUserName NACRole NACPolicyCompliance NACUsername NACPostureToken NACRadiusIsUserAuthenticated SelectedPostureServer SelectedIdentityStore AuthenticationIdentityStore AuthorizationExceptionPolicyMa ExternalPolicyServerMatchedRul GroupMappingPolicyMatchedRule IdentityPolicyMatchedRule NASPortType QueryIdentityStores
Data Type varchar2(500) varchar2(500) clob clob clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-27
Table A-32
Column SelectedAuthorizationProfiles SelectedExceptionAuthorization SelectedQueryIdentityStores EapAuthentication EapTunnel TunnelDetails CiscoH323Attributes CiscoSSGAttributes OtherAttributes ResponseTime NADFailure Passed Failed
acsradiusauthenticationmonth
Table A-33
Data Type varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob clob clob integer smallint integer integer
acsradiusauthenticationmonth Table
Column ID Day ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore NetworkDeviceName IdentityGroup NetworkDeviceGroups CallingStationID FailureReason NASIdentifier NASIPAddress ADDomain UseCase SelectedAuthorizationProfiles
Data Type integer date varchar2(500) varchar2(10) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) clob clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-28
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-33
acsradiusauthenticationyear Table
Column ID Month ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName IdentityStore NetworkDeviceName IdentityGroup NetworkDeviceGroups CallingStationID FailureReason NASIdentifier NASIPAddress ADDomain UseCase SelectedAuthorizationProfiles CTSSecurityGroup Passed Failed TotalResponseTime MaxResponseTime
Data Type integer varchar2(10) varchar2(500) varchar2(10) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) clob clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) integer integer integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-29
acstacacsauthorization
Table A-35 acstacacsauthorization Table
Column ID ACSTIMESTAMP ACSViewTIMESTAMP ACSServer MessageCode ACSSessionID AccessService ServiceSelectionPolicy AuthorizationPolicy UserName Response NetworkDeviceName DeviceIPAddress PriviligeLevel CmdSet MatchedCommandSet SelectedShellProfile SelectedCommandSet AuthorizationFailureReason FailedShellAttribute IdentityGroup NetworkDeviceGroups AuthenMethod AuthorizationExceptionPolicyMa AuthorReplyStatus FailureReason GroupMappingPolicyMatchedRule IdentityPolicyMatchedRule QueryIdentityStores RemoteAddress SelectedAuthorizationProfiles SelectedExceptionAuthorization AVPair ExecutionSteps OtherAttributes
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) clob varchar2(500) varchar2(500) varchar(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob clob
Software Developers Guide for Cisco Secure Access Control System 5.3
A-30
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-35
Data Type varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) integer small int smallint
acstacacsauthorizationmonth Table
Column ID Day ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName NetworkDeviceName DeviceIPAddress PriviligeLevel CmdSet MatchedCommandSet SelectedShellProfile SelectedCommandSet AuthorizationFailureReason FailedShellAttribute IdentityGroup NetworkDeviceGroups TotalResponseTime Passed Failed
Data Type integer date varchar2(500) varchar2(10) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob integer integer integer
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-31
acstacacsauthorizationyear
Table A-37 acstacacsauthorizationyear Table
Column ID Month ACSServer MessageCode AccessService ServiceSelectionPolicy AuthorizationPolicy UserName NetworkDeviceName DeviceIPAddress PriviligeLevel CmdSet MatchedCommandSet SelectedShellProfile SelectedCommandSet AuthorizationFailureReason FailedShellAttribute IdentityGroup NetworkDeviceGroups TotalResponseTime Passed Failed
acstacacsaccounting
Table A-38
Data Type integer varchar2(10) varchar2(500) varchar2(10) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob clob integer integer integer
acstacacsaccounting Table
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-32
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-38
Column RemoteAddress AcctRequestFlags AuthenMethod ServiceType Service NetworkDeviceName Port NetworkDeviceGroups DeviceIPAddress SourceIPAddress PrivilegeLevel CmdSet ServerMsg ServiceArgument AVPair AcctInputPackets AcctOutputPackets AcctTerminateCause AcctSessionTime AcctSessionId ExecutionSteps Response OtherAttributes ResponseTime Started Stopped SessionKey
acstacacsaccountingmonth
Table A-39
Data Type varchar2(500) varchar2(10) varchar2(20) varchar2(20) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) clob number(6) number(6) varchar2(500) number(6) varchar2(500) clob clob clob integer smallint smallint varchar2(500)
acstacacsaccountingmonth Table
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-33
Table A-39
Column UserName RemoteAddress Service NetworkDeviceName NetworkDeviceGroups DeviceIPAddress SourceIPAddress PrivilegeLevel CmdSet Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acstacacsaccountingyear
Table A-40
Data Type varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(10) varchar2(500) integer number(20) number(6) integer number(20) number(20) number(6) integer integer
acstacacsaccountingyear Table
Column ID Month ACSServer MessageCode AccessService UserName RemoteAddress Service NetworkDeviceName NetworkDeviceGroups DeviceIPAddress SourceIPAddress PrivilegeLevel CmdSet
Data Type integer varchar2(10) varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500) varchar2(10) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-34
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-40
Column Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acsradiusaccounting
Table A-41
Data Type integer number(20) number(6) integer number(20) number(20) number(6) integer integer
acsradiusaccounting Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode ACSSessionID UserName CallingStationID AcctSessionId AcctStatusType AcctSessionTime ServiceType FramedProtocol AcctInputOctets AcctOutputOctets AcctInputPackets AcctOutputPackets FramedIPAddress NASPort NASIPAddress CiscoAVPair Class AcctTerminateCause
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(20) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob varchar2(500) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-35
Table A-41
Column AccessService AuditSessionID AcctMultiSessionID AcctAuthentic TerminationAction SessionTimeout IdleTimeout AcctInterimInterval AcctDelayTime EventTimestamp NASIdentifier NASPortId AcctTunnelConnection AcctTunnelPacketLost NetworkDeviceName NetworkDeviceGroups ServiceSelectionPolicy IdentityStore ADDomain IdentityGroup AuthorizationPolicy FailureReason SecurityGroup TunnelDetails CiscoH323SetupTime CiscoH323ConnectTime CiscoH323DisconnectTime CiscoH323Attributes CiscoSSGAttributes ExecutionSteps OtherAttributes ResponseTime Started Stopped SessionKey
Data Type varchar2(500) varchar2(500) varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) clob timestamp timestamp timestamp clob clob clob clob integer integer integer varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3
A-36
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
acsradiusaccountingmonth
Table A-42 acsradiusaccountingmonth Table
Column ID Day ACSServer MessageCode AccessService UserName CallingStationID AcctTerminateCause TerminationAction NASIdentifier NASIPAddress NetworkDeviceName NetworkDeviceGroups IdentityStore ADDomain IdentityGroup AuthorizationPolicy AcctStatusType FramedIPAddress Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acsradiusaccountingyear
Table A-43
Data Type integer date varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) integer number(20) number(6) integer number(20) number(20) number(6) integer integer
acsradiusaccountingyear Table
Column ID Month
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-37
Table A-43
Column ACSServer MessageCode AccessService UserName CallingStationID AcctTerminateCause TerminationAction NASIdentifier NASIPAddress NetworkDeviceName NetworkDeviceGroups IdentityStore ADDomain IdentityGroup AuthorizationPolicy AcctStatusType FramedIPAddress Count TotalResponseTime MaxResponseTime Active Throughput TotalSessionTime MaxSessionTime Started Stopped
acsaaadiagnostics
Table A-44
Data Type varchar2(500) varchar2(10) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) varchar2(500) integer number(20) number(6) integer number(20) number(20) number(6) integer integer
acsaaadiagnostics Table
Software Developers Guide for Cisco Secure Access Control System 5.3
A-38
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-44
acsaaadiagnostics Table
acsadministratorlogin Table
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(100) varchar2(100) varchar2(10)
acsconfigurationchanges Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode AdminName AdminIPAddress AdminSession AdminInterface ObjectType ObjectName RequestedOperation OperationMessageText ConfigChangeData HostID
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(500) varchar2(100) varchar2(100) varchar2(10) varchar2(500) varchar2(500) varchar2(100) varchar2(1000) clob varchar2(100)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-39
Table A-46
Column RequestResponseType FailureFlag Details OperatorName UserAdminFlag AccountName DeviceIP IdentityStoreName ChangePasswordMethod AuditPasswordType ObjectID AppliedToACSInstance LocalMode
acslogcollectionfailures
Table A-47
Data Type varchar2(10) varchar2(10) varchar2(1000) varchar2(500) varchar2(10) varchar2(500) varchar2(15) varchar2(500) varchar2(10) varchar2(10) varchar2(100) varchar2(500) smallint
acslogcollectionfailures Table
acsmessagecatalog Table
Software Developers Guide for Cisco Secure Access Control System 5.3
A-40
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
acsprocessstatus
Table A-49 acsprocessstatus Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode NodeId NodeName Role DatabaseProc Management Runtime Adclient ViewDatabase ViewCollector ViewJobManager ViewAlertManager ViewLogProcessor
acssystemstatus
Table A-50
Data Type integer timestamp timestamp varchar2(500) varchar2(10) smallint varchar2(500) varchar2(100) smallint smallint smallint smallint smallint smallint smallint smallint smallintRuntimeRuntime
acssystemstatus Table
Column ID ACSTimestamp ACSViewTimestamp ACSServer MessageCode CPUUtilization NetworkUtilizationRcvd NetworkUtilizationSent MemoryUtilization DiskIOUtilization DiskSpaceUtilizationRoot DiskSpaceUtilizationAltRoot DiskSpaceUtilizationBoot
Data Type integer timestamp timestamp varchar2(500) varchar2(10) decimal(5,2) integer integer decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-41
Table A-50
Column DiskSpaceUtilizationHome DiskSpaceUtilizationLocaldisk DiskSpaceUtilizationOpt DiskSpaceUtilizationRecovery DiskSpaceUtilizationStoredconf DiskSpaceUtilizationStoreddata DiskSpaceUtilizationTmp DiskSpaceUtilizationRuntime AverageRadiusRequestLatency AverageTacacsRequestLatency DeltaRadiusRequestCount DeltaTacacsRequestCount
acssystemdiagnostics
Table A-51
Data Type decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) decimal(5,2) integer integer integer integer
acssystemdiagnostics Table
Data Type integer timestamp timestamp varchar2(500) varchar2(10) varchar2(10) varchar2(100) clob
acsviewnetflowaggregation Table
Software Developers Guide for Cisco Secure Access Control System 5.3
A-42
OL-22972-01
Appendix A
Monitoring and Report Viewer Database Schema Understanding the Monitoring and Report Viewer Database Schema
Table A-52
Data Type varchar2(50) varchar2(100) integer varchar2(100) integer varchar2(15) varchar2(50) integer
Column ID Type Timestamp AuditSessionID ACSServer ACSSessionID NASIP EndpointMAC EndpointIP UserName VLAN dACL AuthenticationType InterfaceName Reason
nadaaastatus
Table A-54 nadaaastatus Table
Data Type integer number(5) timestamp varchar2(100) varchar2(100) varchar2(100) varchar2(41) varchar2(100) varchar2(41) varchar2(500) varchar2(100) varchar2(100) varchar2(500) varchar2(100) varchar2(500)
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
A-43
Table A-54
nadaaastatus Table
Software Developers Guide for Cisco Secure Access Control System 5.3
A-44
OL-22972-01
I N D EX
E
exporting monitoring & report viewer data
A-1
U
ucp sample script
2-7
I
import and export aborting processes creating import files csv templates sample scripts
5-8 5-11 5-5 5-4 5-5 5-7
sample code
2-4
5-1
W
web interface
M
monitoring & report viewer database schema WSDL file
3-6 A-2
monitoring and report Viewer monitoring and report viewer integrating viewer web services sample code web services
3-12 3-2 3-9
P
performing bulk operations
5-2
R
remote database
A-1
Software Developers Guide for Cisco Secure Access Control System 5.3 OL-22972-01
IN-1
Index
Software Developers Guide for Cisco Secure Access Control System 5.3
IN-2
OL-22972-01