This is the multi-page printable view of this section. Click here to print.
ClearPass
- 1: Integrations
- 1.1: Certificate Management
- 1.2: Endpoint Compliance
- 1.2.1: Tanium
- 1.2.2: BigFix
- 1.2.3: CrowdStrike Falcon
- 1.3: Firewall Context Sharing
- 1.3.1: Juniper SRX Integration
- 1.4: OT/ICS/IIoT/MIoT
- 1.4.1: SOTI Connect
- 1.5: Unified Endpoint Management
- 1.5.1: Jamf Pro
- 1.5.2: Jamf School
- 1.5.3: Meraki System Manager
- 1.5.4: Microsoft Intune
- 1.5.5: VMware Workspace ONE (Airwatch)
- 1.5.6: Ivanti MDM (formerly MobileIron)
- 1.5.7: Mosyle
- 1.5.8: SOTI MobiControl
- 1.6: Visitor Management / Webhook Processing
- 1.6.1: Envoy
- 1.6.2: SinePro
- 1.6.3: Teem LobbyConnect
- 1.6.4: Skyhook Generic Processor
- 1.7: Multi Factor Authentication
- 1.7.1: PingID MFA
- 1.8: Asset Management
- 1.8.1: Service Now CMDB
- 1.9: ClearPass Extension
- 1.9.1: Common Appendices for Extensions
- 1.9.2: Common Extension Attributes
- 1.9.3: Installing Extensions
- 1.9.4: List of active ClearPass Extensions
- 1.9.5: Skyhook Introduction
- 1.9.6: Skyhook Self Service Portal
- 1.9.7: Skyhook Token Refresh
- 2: Platform
- 2.1: ClearPass Clustering Design Guidelines
- 2.2: ClearPass Service Routing
- 2.3: ClearPass Wired Policy Enforcement Guide
- 2.4: Using custom scripts to upgrade OnGuard Agents
- 2.5: vMotion with ClearPass
- 2.6: Configuring IPsec tunnels in ClearPass
- 2.7: Updating after License Transfer
- 2.8: ClearPass MFA Workflows
1 - Integrations
1.1 - Certificate Management
1.1.1 - Certificate Enrollment Manager
Public TLS certificate lifetimes have been steadily decreasing as part of an industry-wide effort to strengthen internet security and improve the reliability of certificate management. Historically, publicly trusted TLS certificates could be issued with lifetimes of several years, but these limits have been progressively reduced through policies defined by the CA/Browser Forum and enforced by major browser vendors such as Apple, Google, and Mozilla. As of March 2026, the maximum validity period for publicly trusted TLS certificates has been reduced to 200 days, reflecting an ongoing industry trend toward shorter certificate lifecycle to reduce the risk associated with compromised keys, outdated cryptographic parameters, or changes in domain ownership. The CA/Browser Forum has officially set a schedule for shortening the lifetime of TLS certificates as shown in the table below.
A ClearPass deployment typically relies on server certificates for multiple services, including management access to ClearPass over HTTPS, captive portal logins over HTTPS, 802.1X authentication using different EAP methods like EAP-TLS, PEAP, etc., and secure RADIUS (RadSec) transport using RADIUS over TLS. Especially the HTTPS certs in most cases are publicly trusted so that devices connecting to guest network can validate the identity of the ClearPass servers without requiring custom trust configuration. As certificate lifetimes become shorter, the frequency with which these server certificates must be renewed and redeployed across ClearPass clusters correspondingly increases.
Managing these certificate renewals manually can introduce operational risk. If a certificate expires or is not updated consistently across all nodes in a ClearPass cluster, services such as administrative HTTPS access, guest portals, or certificate-based network authentication may fail. In environments that use RadSec to securely transport RADIUS traffic between network devices and authentication servers, an expired certificate could also disrupt authentication requests between network access devices and the RADIUS infrastructure.
For this reason, implementing an automated certificate lifecycle management process is becoming increasingly important for systems like ClearPass. Automated mechanisms allow certificates to be requested, renewed, and deployed before expiration, reducing the risk of service interruptions. Modern certificate automation protocols such as Automated Certificate Management Environment(ACME), Enrollment over Secure Transport(EST), Secure Certificate Enrollment Protocol(SCEP), and enterprise certificate lifecycle platforms can help organizations maintain valid certificates across HTTPS, RADIUS, and RadSec services while minimizing operational overhead and ensuring compliance with evolving public certificate lifetime requirements.
Certificate Enrollment Manager (CEM) Extension
Certificate Enrollment Manager (CEM) Extension provides an extensible way to integrate with different enterprise certificate lifecycle management platforms using EST / SCEP protocols and REST APIs to automatically renew the server certificates in ClearPass. Although the enrollment protocols like EST and SCEP are standardized, the implementation between different vendors have differences in terms of the URLs, authentication methods and types of certificates issued. Hence support for each CA vendor has to be validated separately.
The extension only needs to be installed on any one of the ClearPass nodes in the cluster and it can monitor the HTTPS / RADIUS / RadSec certificates on all the cluster nodes and trigger enrollment / re-enrollment appropriately. The extension can be installed on any ClearPass node in the cluster regardless of whether its the publisher, standby publisher, subscriber or dedicated insight node.
INFO
The first iteration of CEM extension adds support for automatic enrollment and renewal of certificates issued by DigiCert Trust Lifecycle Manager (TLM) using EST protocol framework.
How integration with DigiCert TLM works
DigiCert Trust Lifecycle Manager is a digital trust solution for CA-agnostic certificate management and PKI services. Trust Lifecycle Manager centralizes visibility and control over an organization’s certificate landscape, reduces risk of business disruption from certificate expiration or human error, streamlines operations with automation and configurable workflows, and increases agility for fast remediation or adaptation to changes in cybersecurity standards.
DigiCert Trust Lifecycle Manager supports EST to provide secure, automated certificate enrollment across diverse devices and applications. With EST, organizations gain standards-based enrollment, renewal, and revocation workflows, reducing human error while ensuring scalable trust management in hybrid IT environments. Trust Lifecycle Manager’s EST protocol implementation is based on IETF’s RFC7030 EST standard.
With EST based enrollment, all operations are submitted over HTTPS and DigiCert TLM supports the issuance of both RSA and ECDSA certificates. The EST service supports the following operations/client requests:
cacerts: To obtain the CA certificates and establish the trust anchor.
simpleenroll: To enroll new end-entity certificates.
simplereenroll: To renew existing end-entity certificates.
CEM extension uses EST protocol to enroll new certificates and to renew existing ones. It can be configured to enroll / re-enroll the certificates at startup or based on certificate validity checks done periodically.
INFO
The very first time the extension runs, it does a full enrollment by requesting for a new certificate from DigiCert TLM. The subsequent runs would only do a renewal or re-enrollment. Even if the extension were to be restarted or backed up and restored, it would remember the previous state and perform only re-enrollment.
If the extension were to be deleted and re-installed, it would do a full enrollment, the first time.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Configuring DigiCert TLM
These are the configuration steps required on DigiCert TLM to setup auto enrollment for certificates. Log into DigiCert ONE and open Digicert Trust Lifecycle Manager to complete the configuration steps below.
Add Trusted Root CA
EST enrollment uses either an enrollment code or client certificate for authentication. The re-enroll functionality mandates using a client certificate for authentication and hence a certificate with EKU TLS Client Authentication is required to authenticate the enrollment request. This client certificate can be created in many different ways. Some options are:
- Generate a client certificate from DigiCert TLM
- Generate a client certificate from ClearPass Onboard
- Generate a client certificate using openssl
The root CA that issued the client certificate needs to be uploaded to Digicert TLM as a trust certificate authority.
Navigate to Account > Root CAs and add the CA certificate.
Configure Certificate Profile
Navigate to Policies > Certificate Profiles and Create profile from template
Select the appropriate template like “Generic Private Server Certificate”. Note that not all templates support EST based enrollment. The first release only supports EST and hence only the EST based templates are supported. Support for REST API and SCEP will be added later.
Within the profile, select the enrollment method as EST, select the Trusted CA added in previous step.
Select the appropriate renewal period and Subject common name
Select the server authentication EKU and other extensions as needed
Configure appropriate seat ID mapping
Configuring CEM Extension
The extension needs to be configured to make simple enroll and simple re-enroll requests to DigiCert TLM. First we need to convert the client certificate created for EST enrollment into base 64 format. This can be done using openssl or other tools. Openssl command to convert certificate into base 64 is given below. Note that the pkcs12 file containing the certificate and private key should be converted to base64 and used within the extension config.
openssl base64 -in certificate.p12 -out certificate.txt
Sample output showing base64 encoded pkcs12 certificate:
Listed below are the extension configuration items specific to CEM Extension
Figure 12: Extension configuration parameters
| Configuration attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting. Change to "DEBUG" to see more detailed logs | “INFO” |
| certRenewalOnStart | If set to true, enrollment / renewal would be done as the extension starts up. If false, enrollment / renewal would be done based on certRenewalSchedule cron job | false |
| onlyCheckExpiryOfCerts | When set to true, extension only checks validity of certs without doing the actual renewal. Use this option to check if any of the certs are to be renewed and to validate connectivity to DigiCert without doing actual enrollment / renewal. If toggling this value, ensure to check the box to restart the extension | false |
| certRenewalSchedule | Configure a cron job to schedule when the cert renewal should be done. This ensures that renewal is done outside of business hours. Recommended to configure the cron to run once a day during off peak hours to check validity of certificates and trigger renewal | 0 5 * * * |
| pkcs12CertPassphrase | Password to be used while generating the CSR and private key. This is the password for the certificate being installed in ClearPass | ****** |
| certRenewalThreshold | Percentage value of certificate lifetime to trigger certificate renewal. Note that this value should be configured in such a way that renewal happens within the renewal window configured in DigiCert TLM Certificate Profile | 80 |
| typesOfCertSupported | Lists all the type of certificates the extension supports. The actual certificate type is selected under csrConfig > certType described further down | ["HTTPS(RSA)", "HTTPS(ECC)", "RADIUS", "RadSec", "Database"] |
| caName | Name of the Certificate Authority. DigiCert is the only supported CA at initial release | |
| caType | Specify the enrollment method. est is the only supported enrollment method at initial release | est |
| caUrl | Specify the enrollment URL | https://example.com/.well-known/est/TLM-{uuid}/simpleenroll |
| caAuthType | Specify the auth method used for EST Enrollment. "client-cert" is the only supported auth method at initial release | client-cert |
| clientCert | base 64 encoded client certificate for EST authentication | "base-64-encoded-pem-string" |
| clientCertPassphrase | Password used to encrypt the client certificate private key used to authenticate against DigiCert | |
| csrConfig | Attributes for the server certificate to be included in the CSR | |
| csrConfig > certType | Select from one of the supported CAs listed under typesOfCertSupported attribute. Note that the extension only supports renewing one type of certificate. If the goal is to automate the renewal for multiple certificate types (example both RADIUS and HTTPS(RSA)) then separate instances of the extension should be installed with each extension handling the renewal for one type of certificate. You can add a note to differentiate between multiple copies of CEM extension | HTTPS(RSA} |
| csrConfig > subjectAlternativeNames | SAN attributes of the type DNS and IP can be configured | { "type": "DNS", "value": "example.com" } |
Note that by default key type is automatically derived from certType attribute with “HTTPS(ECC)” using Elliptic Curve keys and All others (HTTPS(RSA), RADIUS, RadSec, Database) using RSA keys. If you wish to specify the key type manually, use these additional attributes within csrConfig
rsakeySize: Supported values ‘2048’, ‘3072’, ‘4096’
ecCurve: Supported values ‘prime256v1’, ‘secp384r1’, ‘secp521r1’
Example:
INFO
If the certificate renewal runs into any errors, the extension will stop running. This would print an alert message in ClearPass Event Viewer which can then be exported as syslog or sent as email to notify ClearPass administrators / NOC teams
INFO
Note that installing a HTTPS certificate will cause the ClearPass Admin UI service to restart. Installing a RADIUS certificate will cause a soft reload of the RADIUS service and installing a RadSec certificate will cause the RadSec tunnels to be restarted. Hence care must be taken to ensure that the certRenewalSchedule is setup in such a way that the enrollment / renewal happens during off-peak hours to minimize any impact to the workflows supported by ClearPass.
Validation
CEM extension log print details messages about each step of the enrollment / renewal process as shown below. If certRenewalOnStart is true, a renewal / enrollment is attempted when the extension starts. Otherwise its attempted at the scheduled cron interval.
Confirm that the certificate has been installed / renewed on ClearPass
1.2 - Endpoint Compliance
ClearPass integrates with a wide range for endpoint compliance solutions to ensure continous monitoring and enforcement as part of HPE Aruba Networking Zero Trust framework
A detailed list of third party interoperability can be found here: https://www.arubanetworks.com/support-services/clearpass-interoperability/
1.2.1 - Tanium
Introduction and Overview
Tanium platform provides unified endpoint security and management with modules that can discover and inventory assets, manage endpoints, track risk and compliance and help investigate and remediate threats. The endpoint context from Tanium is leveraged by ClearPass Policy Manager to make network access decisions.
This integration guide covers the deployment and configuration of a ClearPass Extension to interface with both cloud and on-prem instances of Tanium. The Extension integrates with Tanium Gateway which provides API access to endpoint attributes including risk and compliance obtained from scan results.
Extension uses APIs that query data stored in Tanium Data Service (TDS). TDS is a near real-time cached data store that maintains historical query results for both online and offline machines. This enables users to get precise, near real-time visibility on all machines in their environment, regardless of whether an endpoint is online or not.
Tanium APIs allow the Extension to provide the following integration capabilities.
-
Poll Tanium periodically for endpoint information which is then added to ClearPass endpoint repository
-
Real time query against Tanium to fetch endpoint attributes at the time of authentication which can then be used as part of policy evaluation
Pictorial view of the Integration
The diagram below shows a pictorial overview of the components and how they interact with each other.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Configuration Steps
These are the main steps involved in configuring this integration:
-
Create custom role in Tanium with required permissions
-
Create Tanium API Token
-
Install Tanium extension on ClearPass
-
Configure extension to fetch information from Tanium Data Service
Create Tanium Custom Role
It is recommended to create a custom role and a service account for the integration so that the API token is created using an account that has the minimum permissions required for syncing endpoint attributes. Navigate to Administration > Permissions > Roles and click on “New Role”
Assign “read” permissions for Asset and “execute” permissions for Gateway as shown below:
Scroll down to Sensor permissions, click on the orange button, and watch it turn green to enable the sensors as shown below. Once this is done you can proceed to add appropriate content sets.
Under Content Sets, click on “Apply Content Sets” and select “Interact” and “Tanium Data Service”. In one of the examples described later, we will be fetching risk scores which requires selecting the “Risk” content set as well. If you wish to fetch additional attributes or sensor readings, appropriate content sets must be enabled under the role.
Next, the role should be mapped to the appropriate service account created for ClearPass integration from Administration > Permissions > Users as shown below:
The user should also be given permissions to appropriate Computer Groups as shown below:
Create Tanium API token
ClearPass uses APIs to fetch endpoint attributes from Tanium Data Service. The Tanium Gateway solution must be at a minimum version of 1.8 and an API token must be created for API Authentication.
Log into Tanium using the service account and navigate to Administration > Permissions > API Tokens and click on “New API Token” button.
Create API token by entering ClearPass IP addresses or subnets. Tanium supports using 0.0.0.0/0 as allow all IPs. For production setups, it is strongly recommended to lock down access to the specific ClearPass IP addresses.
INFO
If you are just polling for endpoints, specify only the publisher and standby publisher IPs. If you are using the real time authorization lookups, specify IP address of each ClearPass node.
Click “Save”, copy the token displayed and store it in a safe location to be used later while configuring the extension on ClearPass.
By default, the token is valid for 7 days. ClearPass will rotate the tokens automatically. If you have to re-install the extension after 7 days, the original token would have expired, and you would have to rotate the old token manually and use the new one.
Installing Tanium Extension
A Graphical User Interface (GUI) is available to make the process of interacting with the extension framework easier. To access the extension GUI, from the Guest System, under Administration find the Extension user interface as shown below.
From here, click on ‘Install Extension’, and the search box below appears. Enter the keyword “Tanium” and click on Search.
INFO
In a cluster environment extension can be installed on the subscriber nodes directly. For endpoint sync operation, the extension just needs to be installed on the Publisher and Standby Publisher. Using extensions for real time authorization lookup requires it to be installed on all the nodes.
Click on the Extension and then the Install option.
Set a specific IP address for the extension if required. It will automatically pick an IP address if not assigned.
Configuring the Tanium Extension
It is important to set the configuration within the Extension to meet your needs. The extension can be configured to sync data in multiple ways as well as be used as for “real-time” authorization against Tanium. As shown on the previous page there are several parameters required to configure this extension. Not all configuration settings need to be set but some are mandatory. We have divided the parameters into two tables, one for Tanium Extension-specific configuration parameters and the other for Extension framework configuration parameters that are common across multiple vendor Extensions.
Table 1: Tanium Extension-specific configuration parameters
| Attribute | Description | Values/Examples |
|---|---|---|
| taniumHost | FQDN / IP to access tanium instance | https://tanium.nacsecurity.net |
| taniumApiToken | API token from Tanium | token-c5hsdxxxxxxxxxxxxxx |
| taniumEndpointAttributes | Additional endpoint attributes to be fetched from Tanium. Supports fetching nested attributes. | [ "lastLoggedInUser", { "os": [ "language", "name" ] }, "ipAddresses", { "risk": [ "riskLevel", "totalScore" ] } ] |
| taniumEndpointNameValuesSensors | List of sensors that return a single name and value | [ "Username", "Tanium Client Version", "Total Memory", "Free Memory", "Logged In Users", "Last Logged In User", "USB Storage Devices" ] |
| ignoreEndpointDifferences | List of attributes, changes to which are not considered true delta | EID Last Seen |
Mandatory fields are: taniumHost and taniumApiToken
INFO
Any sensor listed in the attribute taniumEndpointNameValuesSensors should be registered for collection in Tanium Data Service.
Table 2: Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it will take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
| attributePrefix | Prefix added to attributes to identify from which MDM the attribute was fetched | Leave empty for default “Tanium”. Enter any custom string for a custom value. |
Configuration of syncAllSchedule is covered in more detail in Appendix D at the end of this documentation, this is used to control the frequency of when the sync process runs. syncUpdatedOnly when set to true, will only ingest changes for managed endpoints. syncAllOnStart determines if when the extension is started or restarted should it immediately run the sync process or wait until the syncAllSchedule job is run.
The two attributes enableEndpointCache and endpointCacheTimeSeconds are specifically used in the extension to retrieve real-time data for a known endpoint. Then these switches will ensure that if the extension is asked to refresh data, it will check the endpointCacheTimeSeconds to decide if the data currently held is fresh or stale.
Leave syncPageSize, verifySSLCerts and logLevel at their default else otherwise advised.
An example of Tanium extension configuration is below. Include appropriate values for your environment based on the information gathered before, select Restart, and click on Save Changes to start the extension.
Following the restart, click on “Show Logs”. If contact is made, and access is granted based upon the configuration above with your Tanium credentials, you should see something like shown below:
Use Cases
The extension can serve multiple use cases as described in the Introduction section as well as the Pictorial. Each use case would require some further configuration based on the requirement. Some example configurations are shown below for each use case.
Periodic Poll
This is a commonly used method where the extension is configured to sync all the endpoints to begin with. Once finished, the extension is configured to periodically gather updated data at fixed intervals based on the configuration parameters as discussed in the table in previous section.
Below is the list of attributes fetched by the default extension configuration:
Additional attributes and sensor values can be fetched by editing “taniumEndpointAttributes” and “taniumEndpointNameValuesSensors” in the extension configuration. Following is a sample configuration used to fetch additional attributes like lastLoggedInUser, ipAddresses, os.language, os.name and additional sensor readings like “USB Storage Devices”, “Username” etc.
Note that the example below fetches risk attributes like riskLevel and totalScore. This requires Benchmark module in Tanium. If you wish to fetch additional attributes or sensor values, ensure that the appropriate solutions are enabled in Tanium.
INFO
Syntax for taniumEndpointAttributes and taniumEndpointNameValuesSensors are based on the GraphQL query language. If you need additional sensor values or attributes, please refer to Tanium Gateway documentation.
https://help.tanium.com/bundle/ug_gateway_cloud/page/gateway/index.html
{
“logLevel”: “INFO”,
“verifySSLCerts”: false,
“taniumHost”: “tanium.nacsecurity.net”,
“taniumApiToken”: “********”,
“taniumEndpointAttributes”: [
“lastLoggedInUser”,
{
“os”: [
“language”,
“name”
]
},
“ipAddresses”,
{
“risk”: [
“riskLevel”,
“totalScore”
]
}
],
“taniumEndpointNameValuesSensors”: [
“Username”,
“Tanium Client Version”,
“Total Memory”,
“Free Memory”,
“Logged In Users”,
“Last Logged In User”,
“USB Storage Devices”
],
“endpointCacheTimeSeconds”: 300,
“enableSyncAll”: true,
“syncAllSchedule”: “*/30 * * * *”,
“syncPageSize”: 100,
“syncAllOnStart”: true,
“syncUpdatedOnly”: true,
“syncUpdatedField”: “lastLoggedInUser,ipAddresses,Client Version,risk.riskLevel,risk.totalScore”,
“syncUpdatedSensor”: “Last Logged In User”,
“ignoreEndpointDifferences”: “EID Last Seen”,
“enableEndpointLookupCache”: false,
“macAddressSeparator”: “:”,
“bypassProxy”: false,
“enableStats”: false,
“statsUsername”: “statsadmin”,
“statsPassword”: “********”
}
The above configuration enables periodic sync every 30 minutes. This could be aggressive and should be configured based on the requirement for each scenario to ensure that Tanium is not inundated with requests and to manage the resource utilization on ClearPass Policy Manager.
A parameter that further helps with optimization is syncUpdatedOnly. Set this value to true to get updates only if there is a change associated with the endpoint. The value of pageSize should not be changed unless recommended by customer support.
Validation of the endpoint context being updated after the initial sync can be done by navigating to Configuration > Identity > Endpoints. Filter using the attribute Source = Tanium as shown below.
Shown below is a sample of parameters obtained from Tanium for an endpoint, these attributes can be evaluated by the enforcement policy within ClearPass Policy Manager. The full list of endpoint attributes is documented in Appendix C.
A sample enforcement policy leveraging the endpoint attributes which can be used in a service is shown below.
Tanium as an Authorization Source
With Tanium as an Authorization Source, ClearPass Policy Manager can query Tanium Data Service in real time to determine if the endpoint is managed by Tanium at the time of Authorization and grant access. It can leverage other endpoint attributes returned by Tanium within the enforcement policy. For example, a device with high-risk score can be denied access, a device with Last Update or EID Last Seen timestamps lower than the expected value can be quarantined etc.
This use case requires further configuration which includes an addition of Authentication Source which will be used for Authorization. It also necessitates modification of a service to use this new source for Authorization and a modification of role mapping to use this Authorization source which will be covered below.
To add Tanium as an Authorization source can be done under Configuration > Authentication > Sources, click “Add”.
Click on Next. This will advance to the Primary Tab which requires connection details. First an internal POST is made to the extension. The extension then calls Tanium APIs to retrieve the attributes associated with the endpoint.
The Base URL is http://<Extension IP>. The extension IP is highlighted in extension installation section. The Login Username and Login Password are mandatory fields but never used here since the contents are posted internally to an extension. Please use dummy values for username and password.
Click on “Next”. This will advance you to the Attributes Tab where you need to provide the authorization attributes. Click on “Add More Filters”. Provide a Name for the filter and then a Filter Query. It’s extremely important that the Filter Query is defined correctly. This is the query string that is sent to the Tanium extension asking for context about the endpoint. The query can be indexed off the mac-address or any other endpoint attribute like serial number, UUID etc. of the authenticating endpoint using the following syntax:
/{Tanium attribute name}/%{ClearPass attribute name}
For completeness, few sample filter queries are provided below.
To lookup based on MAC Address in RADIUS request:
/macAddresses/%{Connection:Client-Mac-Address-Colon}
To lookup based on device serial number embedded in client certificate attribute like Subject-AltName-DirName-OnboardDeviceSerial
/serialNumber/%{Certificate:Subject-AltName-DirName-OnboardDeviceSerial}
To lookup based on device UUID embedded in client certificate attribute like Subject-AltName-DirName-OnboardDeviceUDID
/systemUUID/%{Certificate:Subject-AltName-DirName-OnboardDeviceUDID}
Next build out the definitions of the attributes that will be returned from the Filter Query. These attributes will subsequently be used within policy-evaluation and ultimately the enforcement policy applied.
Once the HTTP authorization source is defined, the returned attributes can be leveraged in a service using an enforcement policy or role mapping. A sample role mapping is shown below. Remember to add the newly added Authorization Source under the Authorization tab of the service.
The above policy assigns appropriate role to an endpoint based on the attributes fetched real time from Tanium.
A point to note is that ClearPass Policy Manager would query the Authorization Source every time the client authenticates. The downside with this approach is that if there is a latency in the response from Tanium, it would result in a delay in authentication and if the delay was beyond an acceptable limit, it would result in timeouts. For best performance it is always recommended to leverage the ability of ClearPass to cache the attributes for a configurable time. This is particularly useful in scenarios where clients roam frequently triggering frequent authentication requests. Use these parameters in customer environment based on their requirements.
The parameters of interest are enableEndpointLookupCache and enableCacheTimeSeconds. The values are explained in the table under the section “Configuration Steps”.
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“taniumHost”: “”,
“taniumApiToken”: “********”,
“taniumEndpointAttributes”: null,
“taniumEndpointNameValuesSensors”: null,
“ignoreEndpointDifferences”: “EID Last Seen”,
“enableEndpointLookupCache”: true,
“endpointCacheTimeSeconds”: 300,
“enableSyncAll”: false,
“syncAllSchedule”: “0 3 * * *”,
“syncPageSize”: 100,
“syncAllOnStart”: false,
“syncUpdatedOnly”: false,
“syncUpdatedField”: “”,
“syncUpdatedSensor”: “”,
“macAddressSeparator”: “:”,
“bypassProxy”: false,
“enableStats”: false,
“statsUsername”: “”,
“statsPassword”: “********”
}
The access tracker results with the Authorization attributes are shown below.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – Default attributes fetched from Tanium
Following is the sample list of the attributes fetched from Tanium using the default configuration.
{
“Source”: “Tanium”
“Tanium EID First Seen”: “Thu, 09 Mar 2023 07:53:07 +0000”
“Tanium EID Last Seen”: “Sun, 26 Nov 2023 20:00:45 +0000”
“Tanium Last Update”: “2023-11-26 20:33:12”
“Tanium System Found”: true
“Tanium computerID”: 695858940
“Tanium domainName”: “tmelab.com”
“Tanium id”: 6
“Tanium ipAddress”: 172.16.10.190
“Tanium macAddresses”: “30:03:C8:49:7C:BB”
“Tanium manufacturer”: “LENOVO”
“Tanium model”: “Lenovo V14 G3 ABA”
“Tanium name”: “tme-win-11.tmelab.com”
“Tanium os.generation”: “Windows 11”
“Tanium os.name”: “Windows 11 Pro”
“Tanium os.platform”: “Windows”
“Tanium serialNumber”: “PF3TG7DQ”
“Tanium systemUUID”: “AE90C181-ED53-11EC-80F2-6C2408C2965C”
}
1.2.2 - BigFix
Introduction and Overview
BigFix is one of the leading endpoint management and security platforms. It quickly identifies and discovers information about endpoints, patches operating systems and monitors the inventory continuously to ensure compliance of endpoints in the infrastructure. BigFix aims at keeping the endpoints secure by ensuring they are patched on the network. Unpatched systems are a big threat to organizations as hackers frequently look for ways to leverage known vulnerabilities for malicious activities. It has a rich set of device attributes gathered from the agents running on an endpoint. These attributes can be used by ClearPass Policy Manager to get more context for the endpoint trying to connect onto the network. Unpatched or non-compliant systems can be sent to a Quarantine zone to ensure they do not have access to valuable assets on the network. This integration guide covers the deployment and configuration of a ClearPass Extension to interface with BigFix. The Extension leverages BigFix APIs to obtain attributes associated with an endpoint. This allows the Extension to provide the following integration capabilities.
-
Periodic Poll: enable periodic polling of endpoints in BigFix with a valid mac address. This allows Policy Manager to access a number ofendpoint attributes which can be leveraged for creating policies. For example
a. Check if the endpoint is known to BigFix
b. Check if the Last Update was less than 7 days
c. Check if the endpoint has been locked by BigFix
-
Authorization source: Trigger the Extension to get the attributes for the authenticated endpoint, this query can be based upon the mac-address or the IP address of the endpoint.
Pictorial View of the Integration
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
The default configuration used for v3 of the extension is below.
{
"logLevel": "INFO",
"verifySSLCerts": true,
"bigFixHost": "",
"bigFixPort": 52311,
"bigFixUserName": "",
"bigFixPassword": "********",
"bigFixAdditionalProperties": [],
"bigFixIncludePatchSummary": false,
"enableEndpointCache": false,
"cacheExpirationMinutes": 30,
"enableCacheSync": false,
"cacheSyncSchedule": "0 5 * * 1",
"syncOnStart": false,
"cppmUserName": "",
"cppmPassword": "********",
"bypassProxy": false,
"enableStats": false
}
INFO
BigFix v2 of the extension provides the ability to fetch the patch summary details for an endpoint. This is an important attribute for policy decisions. This was not possible using v1 of the extension. The configuration option used to enable this is “bigFixIncludePatchSummary”.
Each of the attributes are explained in the table below in detail.
| Configuration attribute | Description | Example/Values |
| bigFixHost | The host name or IP address of your BigFix system. | 192.168.1.10 bigfix.arubasecurity.net |
| bigFixPort | The port number for the BigFix API. | Default: 52311 |
| bigFixUserName | The user name of an account in BigFix with access to Computer Properties and the Query API. | Username for account created (see Appendix E) |
| bigFixPassword | The password for the user entered in the bigFixUserName setting. | Password for account created (see Appendix E) |
| bigFixAdditional-Properties |
A JSON array of additional properties to pull from BigFix. Default properties are included automatically and cannot be removed. Additional values may be added. |
["Property Name", "Property Name"] |
| bigFix-IncludePatchSummary |
Enables the extension to add patch summary information to device attributes. Patch summary is the numeric count of missing patches classified as Critical, Important, Moderate, and Low. |
true / false |
| enableEndpointCache | Enables the endpoint cache process when performing a single MAC Address or IP Address based device lookup. | true / false |
| enableExpirationMinutes | The amount of time an endpoint's data is considered "valid" when using enableEndpointCache. | Default: 30 |
| enableCacheSync |
Enables the caching of all available endpoints in BigFix. Uses differential updates — only systems that checked in since the last update are refreshed. |
true / false |
| cacheSyncSchedule |
CRON-formatted schedule for updating the endpoint cache. See Appendix C for more details. |
"0 5 * * 1" (Updates every Monday at 05:00) |
| syncOnStart | Starts a cache sync every time the extension is started or restarted. | true / false |
| cppmUserName | The user name of an Admin user in ClearPass. Used for device profiling. | Administrator username |
| cppmPassword | The password for the user entered in cppmUserName. | Administrator password |
| logLevel | Logging level for troubleshooting. | "DEBUG", "INFO", "WARN", "ERROR" |
| bypassProxy | If a proxy is configured, bypass it for API calls to BigFix. | true / false |
| enableStats | Enable basic extension statistics dashboard. | true / false |
When leveraging the sync capabilities of the Extension to get the device attributes from BigFix, use the attribute enableCacheSync and specify cacheSyncSchedule. These 2 attributes are leveraged for periodic poll of endpoints from BigFix. The syncOnStart attribute can be leveraged as well to sync everything upon the start or re-start of the extension.
When doing single device lookups by MAC Address, if enableEndpointCache is true, the mac address will be looked up in ClearPass to see if the information for the computer is in the database and up-to-date as determined by the cacheExpirationMinutes, this being the amount of time an endpoints data will be considered "fresh" when using the enableEndpointCache option. If false, all requests will be sent to BigFix.
The bigFixUserName and bigFixPassword are credentials of the operator on BigFix which will give access to endpoints discovered by BigFix via REST APIs. A default administrator account can be used for this setup or a separate local operator can be created. For steps on creating this operator on BigFix, see next page.
The cppmUserName and cppmPassword should be for an Administrator account. The device profiling attributes obtained from BigFix need to be written into the endpoint repository leveraging a profiling APIs which requires an Administrator account.
INFO
In 6.9 a new REST API was introduced to replace the functionality of the legacy XML API above. If your running 6.9 or greater than the above two parameters can be removed from the configuration.
A ClearPass Network Administrator account can be created under
Administration > Users and Privileges > Admin Users. Click on
Add. A user with the following Privilege Level needs to be
created.
A Network Administrator privilege level is sufficient for the action of adding device profiling information into the endpoint database of ClearPass.
A copy of the BigFix Extension with the desired configuration is shown below, this has to be modified for your as a minimum. Include the bigFixHost, bigFixPort, bigFixUserName, bigFixPassword, cppmUserName and cppmPassword that will be specific to your environment.
Change or include any other values based on the description of each in the above table as necessary to your deployment. Select Restart and click on Save Changes to restart the extension.
An optional but extremely powerful parameter to note is bigFixAdditionalProperties. By default, the parameter has the value of [] which basically indicates that the sync would only get the default attributes.
However, BigFix includes an extensive list of attributes from an endpoint. Some of these attributes might not be very useful or relevant for ClearPass and would increase the payload to be ingested from BigFix. Customization options are available with this parameter so that an administrator can identify and pull values apart from the default which are important in their environment. Navigate to the BigFix Extension and click on Show Details as shown below.
Click on the Extension URL under the details. This gives a list of all
the attributes that can be fetched from BigFix. If the information is
available for the endpoint on BigFix, ClearPass can pull it.
The URL above gives a long list of available attributes. The ones marked in bold are mandatory and fetched by default. If any of the other properties are useful in a particular environment, they can be fetched using the bigFixAdditionalProperties parameter. They can be then be leveraged in ClearPass Policy.
For example, here we have added BIOS and Client Settings to the list of additional attributes that need to be fetched from BigFix.
Following is the change in the Extension configuration. Remember this change is only required if additional attributes need to be fetched from BigFix. This can be totally skipped for the basic setup of this integration.
{ "bigFixHost": "10.2.98.40",
"bigFixPort": 52311,
"bigFixUserName": "admin",
"bigFixPassword": "********",
"bigFixAdditionalProperties": [
"Client Settings", "BIOS"
],
"bigFixIncludePatchSummary": true,
"enableEndpointCache": true,
"enableCacheSync": true,
"cacheSyncSchedule": "0 5 * * 1",
"syncOnStart": true,
"cppmUserName": "admin",
"cppmPassword": "********",
"verifySSLCerts": false,
"logLevel": "INFO",
"bypassProxy": false,
"enableStats": false
}
Ensure the Extension is restarted upon a configuration change. After
the restart of the extension, click on Show Logs.
The above log states that the Extension has sync’d the endpoint data from BigFix. The above steps sync endpoint details at the time of starting the Extension and then regular updates are fetched at the interval specified by cacheSyncSchedule, see Appendix C for more information on configuring this value. Please note the IP address of the Extension. This will be used in the next section where we leverage BigFix Extension as an Authorization source. A sample of attributes fetched for an endpoint is shown below.
Configure ClearPass Policy Manager
Multiple methods exist for how ClearPass can utilize the returned data from HCL BigFix, such as:
Ensure that the endpoint is managed by BigFix. If not, perhaps restrict access for the device on the
Corporate Network with a role that only allows the user to remediate and install the BigFix endpoint agent. This provides a controlled environment where all endpoints are known to be in line with corporate security policy, around patching and OS updates.
Check if the endpoint has the latest BigFix agent installed. If not, perhaps quarantine the device with the option to remediate and install an updated client.
More importantly validate whether the endpoint is missing any patches, subdivided into Critical, Important, Low and Moderate, separate policy can be written against any of the counts.
Additionally, policy can be written against a wealth of additional endpoint attributes that are important to you, if for example you wanted to check the BiOS version of devices connecting, you can have BigFix return that data which can then be compared in policy to decide if an endpoint maybe vulnerable to a BiOS exploit.
As mentioned previously, the extension can be run in two modes.
Periodic Sync Mode: Using stored attributes
The Extension can sync data from BigFix periodically, write this data into the ClearPass EndpointDB, then use the EndpointDB as an authorization source. Be aware that this data will not be completely ‘real-time,’ but may be adequate for many if not all use cases.
Here’s an example of a ClearPass Role Mapping Policy that utilizes
these BigFix Endpoint Attributes.
HTTP Authorization Source Mode: A Real-Time authorization check
In this mode we build an HTTP authorization source, add it to an existing Service Policy, then process the returned data from BigFix, typically utilizing a role-mapping or an enforcement profile action. Note that with an HTTP authorization source configured in a Service, ClearPass will make a call to BigFix every time an authenticating device matches this Service, unless the cacheExpirationMinutes timer for the endpoint is still qualifying the data as “fresh”. Making real-time API calls to BigFix every time a device authenticates may not be scalable if there are network delay constraints or you have a high number of authentications/sec.
The HTTP Authorization source is the conduit between the extension and ClearPass Policy Manager. It’s through the authorization source that we expose the BigFix endpoint attributes to Policy Manager so they can be used to perform role-mapping or an enforcement policy action.
Defining a BigFix HTTP Authorization Source
The first step is to add the authorization source. Under
Configuration > Authentication > Sources, click Add and
choose type HTTP.
Provide a Name for the Authentication Source and click Next. On the Primary Tab, provide the IP Address of the extension as discussed earlier. Ensure a trailing ‘/mac/’ is added after the extension IP address.
INFO
The Base URL is the IP address of the running extension, if using the extension in this mode it’s good practice to fix the extension to a static IP address. The Login Username and Password can be set to ANYTHING; they are not used by this extension but the parameters are mandatory.
Click on Next. This will advance to the Attributes Tab where you must configure at least one attribute. Click on Add More Filters. Provide a Name for the filter and then a Filter Query. The query is indexed off the MAC Address of the endpoint. Copy the line below and paste into the Filter Query box.
%{Connection:Client-Mac-Address-Hyphen}
INFO
It’s extremely important that the Filter Query is defined correctly. This is the query string sent to the BigFix Extension requesting context about the endpoint.
The data returned from BigFix can be extensive, but not all the data
is relevant to making a security policy decision about the endpoint.
Choose which attributes are required for your enforcement profile. As
an example, the filter shown below has eleven attributes configured.
Your filter may differ depending on the use-cases you are trying to
meet. Remember if you want to check additional attributes via the HTTP
authZ then they need to be added in the array un the extension under
bigFixAdditionalProperties.
Using Results from the BigFix HTTP Auth Source
Below is an example of using these attributes in a ClearPass Role
Mapping Policy.
This is just a simple configuration to show what you can do with the returned attributes.
Previously we discussed about an optional parameter called bigFixAdditionalProperties. It is used to fetch more attributes than the default ones available above. In order to use that attribute with Authorization source it is necessary to add the same using the option “Add More Filters”. Without doing this, it will not be available for use with Authorization.
Let’s look at the example below where the BigFix Missing Patches-Critical attribute fetched is mapped within the Authorization source
as shown below.
Let’s look at the service configuration within ClearPass to see this
HTTP source being leveraged as an Authorization source within a
service. Ensure to check the option for enabling Authorization.
The next step is to add this source under Authorization. The
Authorization tab for the service is shown below.
Finally, the authorization source is leveraged under Enforcement for
the policies to be defined. A sample Enforcement Policy for this
service is shown below.
In the above policy if BigFix marks an endpoint as Locked, the endpoint is assigned a Quarantine role with restricted Access. A full access role is granted only if the Endpoint “Is Found” by BigFix. If not, a default of [Deny Access Profile] is assigned.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E BigFix configuration
It is assumed that a working BigFix environment is leveraged for this extension. The configuration of BigFix is beyond the scope of this guide.
The Extension configuration requires a valid BigFix administrator account to leverage BigFix APIs. This account can be created on BigFix as shown below.
Go to Tools Menu on top of your screen and click on Create Operator . Add a user with credentials as shown below.
The next step involves assigning permissions for this account. It is
important that the account has the permissions for Can use REST API. Also, the account should have a list of Administered Computers". In our lab, a user with restricted permissions was used
and should be preferred. For details on this, please contact your
local BigFix representative.
Under the “Details” tab for this account, provide restricted
access as shown below.
If there are permission issues when trying to fetch computers, one can
check or troubleshoot by giving this account the Master Operator
permission as shown below or use an administrator account for testing
only.
Navigate to the “Computer Assignments” tab. Add the computers in
scope for this Extension or select all computers. It is important that
after the settings are saved, the “Administered Computers” tab
gets updated. An empty list of Administered Computers would always
result in extension fetching no computers.
Further restrictions can be assigned to this account by granting a
Reader permission only to the sites within the scope.
Appendix F XMLs
The Authentication Source can be easily imported into ClearPass so that it can be leveraged to use the BigFix
Extension as an Authorization source in a service. The XML file can be downloaded from https://github.com/aruba/clearpass-exchange-snippets/tree/master/extensions/ibm-bigfix
-
Download the XML profile > “clearpass-extension_tenable-securitycenter_enf-profile.xml”.
-
Open this file in your favorite editor.
-
Use the Find and Replace feature of the editor to replace "<BigFix Extension IP>" with the actual IP address of the BigFix Extension configured. Refer Figure 24.
-
Save the file and Import.
The file can be imported from Configuration > Enforcement >Profiles.
The above action will import an ‘basic’ HTTP Authentication Source in ClearPass which can be leveraged as an Authorization source for a service, you may want to add additional fields/attributes as previously discussed.
1.2.3 - CrowdStrike Falcon
Introduction and Overview
CrowdStrike Falcon Endpoint Protection is a cloud-based security platform that combines the capabilities of a next-gen Antivirus (NGAV) and Endpoint Detection and Response (EDR) using a single cloud-delivered agent. This release of document focuses on the new SDK based CrowdStrike Falcon extension in the ClearPass Policy Manager. A few enhancements that are added with the new SDK based extension help with the efficient integration of CrowdStrike Falcon Endpoint Protection and ClearPass Policy Manager with the existing methods.
-
CrowdStrike Falcon Integration with ClearPass Policy Manager with the new SDK based extension now conform with the User Agent information that is used by CrowdStrike for internal tracking.
-
The syncing of endpoints from CrowdStrike Falcon now provides the CrowdStrike device ID as well as attribute along with MAC. The authentication source and context server action URL’s can now leverage both MAC and Device ID in real-time lookup for authorization and context server action-based containments.
-
The new extension now also supports bypassing proxy.
ClearPass Policy Manager integrates with CrowdStrike Falcon in multiple ways;
-
Perform a real-time lookup of the device attributes which can be leveraged for Authorization.
-
Bulk import of all the endpoints leveraging flexible polling definition based on crontab
-
Trigger containment or lift the containment for the quarantined devices using the CrowdStrike Falcon agent.
The above use-cases are covered in this integration and documented in this Integration Guide.
What’s new in CrowdStrike v2.1 Extension? -Important Changes
Deprecation of GET /devices/entities/devices/v1(GetDeviceDetails) - CrowdStrike has announced the deprecation of v1 GET host details operation. Integrations leveraging the v1 endpoint API’s must be updated to use one of the new v2 versions by February 9, 2023. This means that all earlier versions of extensions will fail collecting device details causing the integration to break. This release v2.1.0 is updated to use the v2 version of the GET host details operation and is a go to version before February 9, 2023 without fail to continue using the integration between ClearPass and CrowdStrike.
Support for Zero Trust Assessment attributes – CrowdStrike has supported Zero Trust Assessment of endpoints for a while which can be leveraged by this version of extension to fetch the risk scores of an endpoint as endpoint attributes. There are numerous assessment items that CrowdStrike evaluates to give evaluated results like OS assessment, Sensor assessment and Overall assessment scores. We have added support for following Zero Trust assessment attributes in this version of extension which can be called into ClearPass policies for profile enforcements based on CrowdStrike Zero Trust Assessment scores in addition to the existing attributes that we have from past CrowdStrike extension versions.
-
“CrowdStrike Assessment OS”
-
“CrowdStrike Assessment Overall”
-
“CrowdStrike Assessment Sensor Config”
A new configuration knob is added to this version of extension which can be set to true to fetch the Zero Trust scores of an endpoint. This option is set to false by default.
crowdStrikeSyncZeroTrust": true,
Pictorial View of the Integration
The diagram below shows a pictorial overview of the components and how they interact with each other.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Configuration Steps in CrowdStrike to enable API communication
There are primarily 2 steps involved in getting this integration configured.
-
Configuration of CrowdStrike for Integration
-
Installation and Configuration of CrowdStrike extension using the ClearPass Policy Manager GUI
INFO
Setup and configuration of CrowdStrike is beyond the scope of this guide. Here we specify the steps necessary to configure the integration.
Getting API Credentials
Login to the CrowdStrike tenant, using your administrator credentials.
Create a new API Client. Navigate to Support > API Clients and Keys. Click on “Add new API client”.
Save the API Client ID and Client Key on a notepad. Client Key is not displayed again. This will be used while configuring the Extension in ClearPass Policy Manager.
Enter a Client Name. Under API Scopes, add the following permissions
-
Read/Write permissions for Hosts
-
Read for Event streams
Check for Managed Hosts
This configuration step is optional and is only required if there are no Endpoints managed by CrowdStrike.
Go to Hosts > Host Management. Ensure there are hosts being managed by CrowdStrike. These are the hosts that will be pulled by ClearPass Policy Manager, if the sync function is enabled in the Extension configuration.
If no hosts are managed by CrowdStrike, one needs to install the Falcon Sensor on the endpoints to be managed. These steps vary based on the endpoint Operating System. The installers are available under Hosts > Sensor Downloads.
Steps for sensor installation are available under the section “Sensor Deployment and Maintenance” here https://falcon.crowdstrike.com/support/documentation
CrowdStrike Extension Installation and Configuration on ClearPass
A Graphical User Interface (GUI) is available to make the process of interacting with the extension framework easier. To access the extension GUI, from the Guest System, under Administration find the Extension user interface as shown below.
From here, click on ‘Install Extension’, and the search box below appears. Enter the keyword “CrowdStrike” and click on Search.
INFO
In a cluster environment an extension can be installed on the subscriber nodes directly.
Click on the Extension and then the Install option.
Set a specific IP address for the extension if required. It will automatically pick an IP address if not assigned.
After the extension has been installed, review the configuration and adjust as needed. Notice the options to Start, Delete, Reinstall or Show Logs and the option to edit and set the extension configuration.
The default configuration used for the extension is shown below
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“crowdStrikeApiHost”: “api.crowdstrike.com”,
“clientId”: “[Client ID]”,
“clientSecret”: “********”,
“crowdStrikeSyncZeroTrust”: false,
“enableEndpointCache”: false,
“endpointCacheTimeSeconds”: 300,
“syncAllOnStart”: false,
“enableSyncAll”: false,
“syncAllSchedule”: “0 2 * * 6”,
“syncUpdatedOnly”: true,
“syncPageSize”: 100,
“attributePrefix”: “”,
“bypassProxy”: false,
“enableStats”: true,
“statsUsername”: “”,
“statsPassword”: “********”
}
Each of the attributes are explained in the table below in detail.
Figure 12: Extension configuration parameters
| Configuration attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL Certificates be validated | true |
| crowdStrikeApiHost | The hostname or IP address of the CrowdStrike API | Default: api.crowdstrike.com |
| clientId | The Client ID used to access the CrowdStrike Oauth API | [Client ID] |
| clientSecret | The Client Secret for the provided Client ID | ******** |
| enableEndpointLookupCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| pageSize | Used to limit the amount of data returned by each sync request in a single attempt. This prevents issues pertaining to timeouts when the dataset to be ingested is large. The value should not be changed unless recommended by customer support. |
500 |
| attributePrefix | Add prefix to endpoint attributes to be able to identify attributes synced from two different CrowdStrike extension instances for parallel systems. | Null |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| crowdStrikeSyncZeroTrust | Enable/Disable fetching of Zero Trust score attributes | false |
A copy of the CrowdStrike Falcon extension with the desired configuration is shown below, this has to be modified for your deployment. Modify the clientId, clientSecret and other options that will be specific to your environment. Change or include any other values based on the description of each in the above table
Select Restart and click on Save Changes to restart the extension.
After completing the configuration, click on ‘Save Changes’ and restart of the extension, click on Show Logs.
The above log shows that the extension has been configured and has ingested endpoints from CrowdStrike leveraging sync on start. These logs can be seen in detail if the loglevel setting is changed to DEBUG.
Use Cases
The extension can serve multiple use cases as described in the Introduction section as well as the Pictorial. Each use case would require some further configuration based on the requirement. Some example configurations are shown below for each use case.
Periodic Poll
This is a commonly used method where the extension is configured to sync all the endpoints to begin with. Once finished, the extension is configured to periodically gather updated data at fixed intervals leveraging the configuration parameters as discussed in the table in previous section. Following is the sample configuration used.
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“crowdStrikeApiHost”: “api.crowdstrike.com”,
“clientId”: “[Client ID]”,
“clientSecret”: “********”,
“crowdStrikeSyncZeroTrust”: false,
“enableEndpointCache”: false,
“endpointCacheTimeSeconds”: 300,
“syncAllOnStart”: false,
“enableSyncAll”: false,
“syncAllSchedule”: “0 2 * * 6”,
“syncUpdatedOnly”: true,
“syncPageSize”: 100,
“attributePrefix”: “”,
“bypassProxy”: false,
“enableStats”: true,
“statsUsername”: “”,
“statsPassword”: “********”
}
The above configuration enables periodic sync and triggers it every 2 hours. This could be aggressive and should be changed based on the requirement in a particular scenario to ensure that CrowdStrike is not inundated with requests and also to manage the resource utilization on ClearPass Policy Manager.
A parameter that further helps with optimization is syncUpdatedOnly. Set this value to true to get updates only if there is a change associated with the endpoint. The value of pageSize should not be changed unless recommended by customer support.
Validation of the endpoint context being updated after the initial sync can be done by navigating to Configuration > Identity > Endpoints. Filter using the attribute Source = CrowdStrike as shown below.
Shown below is a sample of security contextual parameters obtained from CrowdStrike for an endpoint, these attributes can be evaluated by the enforcement policy within ClearPass Policy Manager. These attributes are obtained leveraging the default policy on CrowdStrike. The Falcon agent should be capable of capturing further attributes which could be leveraged as well. The full list of endpoint attributes is documented in Appendix C on Page 27.
A sample enforcement policy leveraging the endpoint attributes which can be used in a service is shown below.
Note that the common endpoint attributes related to Zero Trust Assessment would make sense in enforcement policies when they are of data-type integer. For example, if one needs to check if the overall Zero Trust Assessment score of an endpoint is greater than 20 then such policy conditions will need the attributes to be of type integer. By default, all the attributes sent by CrowdStrike get added as data-type String for an endpoint. Therefore, for certain use cases such attributes need to be deleted from the Dictionary attributes and re-added with the data-type set to integer manually.
To delete the attributes, one needs to first stop the extension, delete the existing endpoints from the ClearPass DB as the endpoints will be referencing these attributes from the dictionary preventing an administrator to delete them. After which these attributes can be added manually as shown below with the data-type set to integer.
Since the Zero Trust Assessment scores are available as endpoint attributes only starting version 2.1.0 of the extension one needs to first upgrade the extension. So, the step to delete the endpoints and dictionary attributes can be done prior to the upgrade which will prevent restarting the extension multiple times.
CrowdStrike as an Authorization Source
With CrowdStrike as an Authorization Source, ClearPass Policy Manager can query CrowdStrike Real-Time to determine if the endpoint is managed by CrowdStrike at the time of Authorization and grant access accordingly. It can leverage other security attributes returned by CrowdStrike within the enforcement policy. For example, a contained device can be denied access, a device with Last Update higher than the expected value can be quarantined etc.
This use case requires further configuration which includes an addition of Authentication Source which will be used for Authorization. It also necessitates modification of a service to use this new source for Authorization and a modification of Enforcement Policy to use this Authorization source which will be covered below.
The addition of Authentication source can be easily configured by importing the XML available on HPE Aruba Networking GitHub. Kindly refer Appendix B for details.
Adding CrowdStrike as an Authorization source can be done under Configuration > Authentication > Sources, click “Add”.
Click on Next. This will advance to the Primary Tab which requires connection details. Here an internally POST is made to the extension. The extension then calls CrowdStrike APIs to retrieve the security attributes associated with the endpoint.
The Base URL is http://<Extension IP>. The extension IP is highlighted in Figure 14. The Login Username and Login Password are mandatory fields but never used here since the contents are posted internally to an extension. This value has to be defined and could be anything.
Click on “Next”. This will advance you to the Attributes Tab where you need to provide the authorization attributes. Click on “Add More Filters”. Provide a Name for the filter and then a Filter Query. It’s extremely important that the Filter Query is defined correctly. This is the query string that is sent to the CrowdStrike extension asking for context about the endpoint. The query is indexed off the mac-address of the authenticating endpoint. For completeness, the filter query is provided here, copy it carefully.
/%{Connection:Client-Mac-Address-NoDelim}
Next build out the definitions of the attributes that will be returned from the Filter Query. These attributes will subsequently be used within our policy-evaluation and ultimately the enforcement policy applied.
For. Zero Trust Assessment Score attributes below are the definitions of the attributes from a second query that needs to be added.
/zero-trust/%{Endpoint:CrowdStrike Device ID}
Further attributes can be added here if necessary for the policy. Appendix C has a list of attributes captured by the extension.
Once the HTTP authorization source is defined, the returned attributes can be leveraged in a service using an enforcement policy or role mapping. A sample enforcement policy is shown below. Remember to add the newly added Authorization Source under the Authorization tab of the service.
The above policy grants full access to an endpoint if it is provisioned with a CrowdStrike Falcon agent and the agent has not contained the endpoint and the Zero Trust Overall Assessment score is greater than 20.
INFO
A point to note is that ClearPass Policy Manager would query the Authorization Source every time it authenticates. The problem with this approach is that if there is a latency in the response from CrowdStrike which is hosted in cloud, it would result in a delay for an endpoint to get onto the network. If the delay is beyond an acceptable limit it would result in timeouts. Also, for best performance it is always recommended to leverage the ability of ClearPass to cache the attributes for a configurable time period.
Let’s revisit the configuration parameters of the extension. The parameters of interest are enableEndpointLookupCache and enableCacheTimeSeconds. The values are explained in the table under the section “Configuration Steps”.
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“crowdStrikeApiHost”: “api.crowdstrike.com”,
“clientId”: “[Client ID]”,
“clientSecret”: “********”,
“crowdStrikeSyncZeroTrust”: false,
“enableEndpointCache”: false,
“endpointCacheTimeSeconds”: 300,
“syncAllOnStart”: false,
“enableSyncAll”: false,
“syncAllSchedule”: “0 2 * * 6”,
“syncUpdatedOnly”: true,
“syncPageSize”: 100,
“attributePrefix”: “”,
“bypassProxy”: false,
“enableStats”: true,
“statsUsername”: “”,
“statsPassword”: “********”
}
The access tracker results with the Authorization attributes are shown below.
Leverage the benefits of caching the attributes for faster authentication results. This is particularly useful in scenarios where clients roam frequently triggering frequent authentication requests. Use these parameters best suited in a customer environment based on their requirements.
Contain an endpoint using CrowdStrike APIs
ClearPass Policy Manager extension can call the CrowdStrike APIs to trigger containment on the endpoint leveraging the Falcon agent. APIs can also be leveraged to lift the containment.
Configuration for containment includes 3 steps on ClearPass Policy Manager. These steps can be ignored if the Enforcement Policies are exported directly as an XML. The steps are available in Appendix B.
-
Define Endpoint Context Server
-
Add Context Server Action
-
Create an Enforcement Profile to trigger the action
Endpoint Context Server
The first step is to define an Endpoint Context Server. This can be added under Administration > External Servers > Endpoint Context Servers click on Add and use the extension IP address highlighted in Figure 14.
WARNING
Select the Server Type as “Generic HTTP”. The Server Name is the IP address of the Extension. Once you enter that, the Server Base URL gets automatically populated and adds https to begin with.
Ensure you change this to http else the internal POST fails. Please note that this is an internal post within ClearPass from the Policy Manager to the Extension.
Context Server Action
The next step is to define a Context Server Action within ClearPass Policy Manager which will internally POST to the extension. The extension will trigger an API call to CrowdStrike and fetch the information associated with it which can be used for Authorization. The context server action allows us to define the HTTP Method, the URL and the JSON contents that will be used to post the mac address to the extension.
This can be added under Administration > Dictionaries > Context Server Actions. Click on Add and use the details shown below. All the other tabs are blank.
The URL used below has to match for the API calls to be successful. Kindly copy paste the URL from below
Contain: /contain/%{Connection:Client-Mac-Address-NoDelim}
Lift Containment: /lift-containment/%{Connection:Client-Mac-Address-NoDelim}
Similarly, a Context Server Action for lifting the containment is shown below.
Enforcement Profile
The next step involves using the Context Server Action in an Enforcement Profile as below. The Enforcement Profile for containing an endpoint leveraging CrowdStrike APIs action is shown below.
INFO
Containment would only work if the attribute CrowdStrike Device ID exists in the Endpoint repository in CPPM. The attribute is not stored if CrowdStrike is only used as an Authorization source without poll/sync and enableEndpointLookupCache is set to false.
The Access Tracker result is shown below. CPPM triggers an internal API call to the extension configured.
Similarly, containment can be lifted from the hosts using the Lift Containment action or Enforcement Policy within CPPM.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – XMLs
The following steps are required to add CrowdStrike as an Authentication Source by importing it into ClearPass Policy Manager using the XML file available in our GitHub repository
https://github.com/aruba/clearpass-exchange-snippets/tree/master/extensions/CrowdStrike
-
Download the XML profile > “clearpass-extension_crowdstrike_auth-source.xml”.
-
Open the XML file using a simple editor and replace X.X.X.X with your EXTENSION IP ADDRESS (Refer Figure 14).
-
You can also import the XML without making any edits and then change the “Base URL:” from “http://X.X.X.X” to your extension IP address using the ClearPass Policy Manager UI. This can be changed under the Primary tab of the imported Authentication Source (Refer 0).
-
The XML file can be imported into ClearPass by navigating to Configuration > Authentication > Sources. Click on Import and use the file downloaded.
The Enforcement Profile, Context Server Action and the Endpoint Context Server configured in the section “Contain an endpoint using CrowdStrike APIs” can easily be imported using the XML available on HPE Aruba Networking GitHub
https://github.com/aruba/clearpass-exchange-snippets/tree/master/extensions/CrowdStrike
- Download the XML profile > “clearpass-extension_crowdstrike_enf-profile.xml”.
- Open this file in your favorite editor. Use the Find and Replace feature of the editor to replace “<<Extension IP>>” with the actual IP address of the extension configured. Refer Figure 14.
- The XML file can be imported into ClearPass by navigating to Configuration > Enforcement > Profiles. Click on Import and use the file downloaded.
Appendix F – Attributes Fetched from CrowdStrike
Following is the sample list of the default attributes fetched from CrowdStrike using the default policy. {
“CrowdStrike Cid”: “643b2392ec494d948e9c879c4fe11f3a”,
“CrowdStrike Status”: “normal”,
“CrowdStrike Hostname”: “B07D64852C5D-BG”,
“CrowdStrike Local IP”: “10.x.x.1x”,
“CrowdStrike OS Build”: “22000”,
“CrowdStrike Policies”: “prevention-6dfa63d7790446c4babf32db50e0810e”,
“CrowdStrike Device ID”: “27b832e592ab4e739583acfba1aaa004”,
“CrowdStrike Last Seen”: “2023-01-04T16:42:31Z”,
“CrowdStrike First Seen”: “2022-12-01T07:05:21Z”,
“CrowdStrike Group Hash”: “e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855”,
“CrowdStrike OS Version”: “Windows 11”,
“CrowdStrike External IP”: “49.205.32.38”,
“CrowdStrike Last Update”: “2023-01-04 16:45:00”,
“CrowdStrike MAC Address”: “b0-7d-64-85-2c-5d”,
“CrowdStrike Platform ID”: “0”,
“CrowdStrike BIOS Version”: “X571GT.311”,
“CrowdStrike Build Number”: “22000”,
“CrowdStrike Pointer Size”: “8”,
“CrowdStrike Product Type”: “1”,
“CrowdStrike System Found”: “true”,
“CrowdStrike Agent Version”: “6.48.16205.0”,
“CrowdStrike Assessment OS”: “78”,
“CrowdStrike Connection IP”: “10.x.10.x”,
“CrowdStrike Cpu Signature”: “591594”,
“CrowdStrike Major Version”: “10”,
“CrowdStrike Minor Version”: “0”,
“CrowdStrike Platform Name”: “Windows”,
“CrowdStrike Serial Number”: “M4N0CX12R927169”,
“CrowdStrike Config ID Base”: “65994753”,
“CrowdStrike Kernel Version”: “10.0.22000.1335”,
“CrowdStrike Config ID Build”: “16205”,
“CrowdStrike Device Policies”: “Prevention-6dfa63d7790446c4babf32db50e0810e, Sensor Update-b7178b018dcb4a8d83cec39401acfb5c, Device Control-5d3813ac29c44e54b48987b25c361bda, Global Config-67643d17e357489c8d6a08d38c07f1b4, Remote Response-22b6b4e42b6b4333bdb2f8112d1f7dea, Firewall-671577970e284f019faf83d9fa690842”,
“CrowdStrike Agent Load Flags”: “1”,
“CrowdStrike Agent Local Time”: “2023-01-04T19:36:42.247Z”,
“CrowdStrike Provision Status”: “Provisioned”,
“CrowdStrike BIOS Manufacturer”: “American Megatrends Inc.”,
“CrowdStrike Product Type Desc”: “Workstation”,
“CrowdStrike Assessment Overall”: “30”,
“CrowdStrike Assessment Version”: “3.5.1”,
“CrowdStrike Config ID Platform”: “3”,
“CrowdStrike Default Gateway IP”: “10.234.1.1”,
“CrowdStrike Modified Timestamp”: “2023-01-04T16:44:16Z”,
“CrowdStrike Sensor File Status”: “not deployed”,
“CrowdStrike Service Pack Minor”: “0”,
“CrowdStrike System Manufacturer”: “ASUSTeK COMPUTER INC.”,
“CrowdStrike System Product Name”: “VivoBook_ASUSLaptop X571GT_F571GT”,
“CrowdStrike Connection MAC Address”: “b0-7d-64-85-2c-5d”,
“CrowdStrike Assessment Modified Time”: “2022-12-30T07:55:03Z”,
“CrowdStrike Assessment Sensor Config”: “5”,
“CrowdStrike Reduced Functionality Mode”: “no”
}
1.3 - Firewall Context Sharing
ClearPass integrates with several firewalls to ensure continuous monitoring and enforcement as part of HPE Aruba Networking Zero Trust framework
A detailed list of third party interoperability can be found here: https://www.arubanetworks.com/support-services/clearpass-interoperability/
1.3.1 - Juniper SRX Integration
A HPE Juniper Networking SRX firewall is a high-performance, next-generation security platform from HPE Juniper Networks that combines advanced firewall capabilities with routing, VPN, and threat intelligence features in a single, scalable appliance or virtual device for enterprise and service provider networks.
ClearPass can authenticate users across wired, wireless, and VPN infrastructures. The integration with Juniper SRX allows ClearPass and the SRX Series device to collaborate in environments in which they are deployed together.
Integrating ClearPass with Juniper SRX endpoint context server typically tags the username context, as well as the external devices being authenticated, along with its respective IP address, which further simplifies IP address management on the Juniper SRX endpoint context server side.
Author: Zak Emerick, Herman Robers
Introduction and Overview
INFO
This document does not cover the basic steps of deploying the SRX, configuring zones, basic policy etc. There is an assumption that these steps are already completed.
In preparation for the integration with the ClearPass Policy Manager certain minimum configuration is required on the SRX firewall to allow ClearPass and the SRX to communicate, share context and optionally allow the SRX to query ClearPass for session information.
The integration with the SRX supports two separate workflows:
-
Push model with webapi: ClearPass pushing context directly into the SRX.
-
Pull model with user-query: SRX to pull or query context from ClearPass. There are certain use cases when it is relevant for the SRX to query user context, such as when the SRX has been out of service for a software upgrade or when a new firewall comes online and needs to be aware of the current active network sessions.
Either workflows, or both, can be configured. Note that the pull model will add additional load to the ClearPass appliance.
Configuration of SRX webapi (Push Model)
Since SRX versions starting with 25.0 deprecated the WebUI, it’s currently recommended to configure the SRX via the CLI or configure the equivalent using Juniper Security Director.
Login to SRX using SSH to access the CLI. From the root prompt (for example, root@SRX650-TME%), enter the command cli to enter operational mode, then type configure or edit to enter configuration mode.
From configuration mode, configure the webapi service. Some of the information entered here will be used later when configuring ClearPass. The username and password will be used again when configuring ClearPass, so record them.
set system service webapi user <UserName> password <Password>
set system service webapi client <ClearPass IP>
NOTE: If you have multiple ClearPass instances, a client must be created for each IP address.
set system service webapi https port <8443>
INFO
Do not set the HTTPS port to 443. This will conflict with the WEBUI port.
set system service webapi http port <8080>
INFO
Do not set the HTTP port to 80. This will conflict with the WEBUI port. Also it is recommended to use HTTPS to keep the communication secure. webapi over HTTP should only be used for testing in lab.
set system service webapi https default-certificate
Generating a custom certificate is outside the scope of this document but is strongly recommended for production deployments.
set system service webapi debug-level error
Confirming configuration.
matt@nac-srx.arubasecurity.net# show system services webapi
user {
cppm-api-user;
password "$9$unNcOBESrvx-wp0BESeXxjHqmQF69A01R"; ## SECRET-DATA
}
client {
10.127.208.77;
10.127.208.76;
}
http {
port 8080;
}
https {
port 8443;
default-certificate;
}
debug-level {
error;
}
[edit]
INFO
-
Only one user account can be defined. This is the account configured on ClearPass within the Endpoint Context Server that is used to authenticate to the SRX.
-
A maximum of 20 clients can be defined. Also, note the default http [8080] and https [8443] ports are configured.
Configuring ClearPass for SRX Integration (Push Model)
The following items are a prerequisite for the integration to function properly.
-
Enable Insight at Administration -> Server Configuration -> Click Server -> Enable Insight
-
Enable Interim Accounting-Update Packet logging at Administration -> Server Configuration -> Click Server -> Service Parameters -> Radius Server -> Log Accounting Interim-Update Packets
-
Review Eager-Handler polling frequency setting at Administration -> Server Configuration -> Click Server -> Service Parameters -> Async network services -> Eager handler polling frequency. This defines how often updates are sent to SRX. Note that only true delta is sent which means if the device goes down and immediately comes up within the polling interval, the net effect is that nothing has changed and hence no update is sent.
Add the Juniper SRX as a Context Server
Navigate to Administration -> External Servers -> Endpoint Context Servers -> Add
Add the port to the URL that was configured on the SRX (for example,8443). Next, add the Username and Password as configured previously.
NOTE
It is best practice to use a trusted certificate on the webapi service of the SRX firewall and to validate that certificate in ClearPass. The root CA that issued the WebAPI server certificate, would need to be installed in the ClearPass Certificate Trust List with Usage type: Endpoint Context Servers.
ClearPass Enforcement Policy and Profile
An Enforcement Profile and Enforcement Policy must now be created to send the context update to SRX based on specific policy conditions. For example if the use case is to apply specific firewall policies to IoT devices, the enforcement policy can be setup in such a way that the update is triggered only for such devices.
To create enforcement profile, navigate to Configuration -> Enforcement -> Profiles -> Add
Select the “Session Notification Enforcement” template.
Select Session-Notify as the type for each entry
Select Juniper Networks SRX as the Server-Type
Select Server-IP and the SRX host previously defined.
For the final two Session-Notify fields (“Login/Logout Action”), select the Juniper Networks SRX Login and Juniper Networks SRX Logout values respectively. If the expected Login/Logout server actions do not appear, verify the previous configuration steps.
To create an Enforcement Policy, navigate to Configuration -> Enforcement -> Policies -> Add
INFO
If an established Enforcement Policy already exists, the newly created Enforcement Profile can simply be added to it. There is no need to create a custom Enforcement Policy solely for this workflow.
In the example below, there are different policy conditions that triggers the Post-Authentication Enforcement Profile “Update SRX” created above when the device is both compliant as well as non-compliant
The Enforcement policy must then be attached to the relevant Services.
Validating that the enforcement policy and profile is working correctly from ClearPass Access Tracker
Configuration of ClearPass for SRX Integration (Pull Model)
The HPE Juniper SRX can also query ClearPass to obtain authentication session information. Powered in part by REST and OAuth2, the SRX can query the ClearPass Insight Database to obtain the needed data for session context on the firewall. It is possible, though unlikely, that the SRX will not have context for an active network user. When the SRX is required to police a traffic flow and does not have the user’s context, it can query ClearPass. After receiving the query result, the SRX updates its auth-table and applies policy to the user appropriately.
The process to query a ClearPass appliance uses OAuth2 as the authentication method. This must be configured first to allow the user-authentication process.
Configure OAuth2 Client on ClearPass
The first part of this configuration is to set up OAuth2 as an API client. Log in to ClearPass and access the Guest module from the Menu in top right corner
Navigate to Administration -> API Services -> API Clients ->
INFO
-
Record the Client ID. It will be needed later.
-
Copy the Client Secret immediately. Once the API client is created and the screen is exited, the Client Secret cannot be displayed again. A new client secret can be generated if needed.
-
Super Administrator privileges are not necessary. This profile should be scoped appropriately in a production environment. Sample operator privileges documented below.
Sample Operator Privileges Set the following permissions though Custom Access to the Operator Privileges Sections:
API Services > Allow API Access: Allow Access
Guest Manager > Active Sessions: Read Only
Guest Manager > Active Sessions History: Read Only
Policy Manager > Active Session for a MAC: Read
Policy Manager > Identity - Deny Listed Users: Read
Policy Manager > Identity – Endpoints: Read
Policy Manager > Insight – Endpoints: Read
Policy Manager > Insight – Alert: Read
All other settings should be set to: No Access.
Note that there is an option to generate an Access Token. This step is not required for this integration. The access token used by the SRX is generated dynamically by the SRX using the Client Secret.
No need to Generate Access-Token here
HPE Juniper SRX Configuration
Add ClearPass as a user identification authentication source. The name used is only a label. It is not tied to an FQDN, etc.
set services user-identification authentication-source aruba-clearpass
user-query web-server CPPM-Label
Define the connection method to be used (https or http).
set services user-identification authentication-source aruba-clearpass
user-query web-server connect-method https
Define the IP address of the ClearPass appliance the SRX will communicate with.
set services user-identification authentication-source aruba-clearpass
user-query web-server address <ClearPass IP>
Define the Client ID created previously in the Guest API Services.
set services user-identification authentication-source aruba-clearpass
user-query client-id CPPM-SRX
Use the previously copied Client Secret generated by ClearPass.
set services user-identification authentication-source aruba-clearpass
user-query client-secret <Client Secret>
Define the token-api, this is always the same value.
set services user-identification authentication-source aruba-clearpass
user-query token-api api/oauth
Define the query-api, this is always the same value
set services user-identification authentication-source aruba-clearpass
user-query query-api api/v1/insight/endpoint/ip/$IP$
The commands above will generate the following configuration (the client secret will be encrypted):
root@SRX650-TME> show configuration services user-identification
authentication-source aruba-clearpass {
authentication-entry-timeout 100;
user-query {
web-server {
cppmserver160;
connect-method https;
address 10.2.100.160;
}
client-id CPPM-SRX;
client-secret
"$9$PTznCAuhSlaZqfzFtp8Lx7VYZUif5zZU9A0Bhc4oJUH.5QFn/tJGF6ApB1NdVwaG.P53n9jHORcyMWik.PTFREceMLRhv87-wsJZUj.f69ApORFncyre8LkqmPz69Ap";
\## SECRET-DATA
token-api api/oauth;
query-api "api/v1/insight/endpoint/ip/$IP$";
Configuring Ingress Event Processing for SRX
ClearPass can consume inbound syslog messages, parse them, and trigger an action such as an enforcement update for a user or endpoint. For example, an update regarding the posture or health of an endpoint can trigger an enforcement update for the device or user role, or it can trigger an update to a data center or internet access firewall based on the new context.
This feature allows event-driven, real-time enforcement within the enterprise network and enables a more effective protection framework.
Multiple steps are required to configure the Ingress Event Notification Framework. One of the more complex steps relates to the definition of the inbound parsing dictionary. Several dictionaries are supplied by default.
Note that Ingress Events Dictionaries can be added or created at any time. They do not require a ClearPass software release or patch.
Enable Ingress Events Processing
Navigate to Administration -> Server Manager -> Server Configuration -> [Your ClearPass Node] -> System
When enabling this feature a warning message is displayed as shown below which highlights and warns of the potential consequences. This feature can generate a significant CPU load on the ClearPass appliance.
NOTE
Careful consideration and planning are required before using this feature. ClearPass should only receive syslog messages by exception that require processing and action. A constant stream of syslog messages will likely cause the appliance to become unresponsive and may lead to failure or timeout of the primary authentication function.
Guidelines around enabling Ingress Event processing
Care must be taken when using this feature. While there are no exact deployments where it cannot be enabled, the following guidelines provide direction. The overriding resource issue is CPU cycles. It is possible for an appliance running at 80% CPU load to handle this feature without issue, while an appliance at 50% CPU load may experience problems. The key factor is not the current CPU load but the additional load that inbound syslog messages will generate. Appliances with multiple CPUs will perform better.
The intent behind this feature is for ClearPass to take a remediation action in response to a critical event seen in the network which typically does not happen in a constant stream. If the syslog messages received by ClearPass is highly curated and not a constant stream, it should be fine to enable this feature. ClearPass should be able to handle up to 1 event per second without issues. High rate of events or high load on the server can cause ingress event parsing to slow down considerably and even fail completely.
Hardware
Specific care needs to be taken when using C1000 / N1000 appliances. Especially if you plan to enable this on the older hardware, again the gating factor is “What CPU load will this generate on the appliance?”.
Virtual Machine
For virtual machines, it has always been difficult to control allocated resources, especially CPUs. Because this is a CPU-intensive workload, extra attention must be paid to the CPUs assigned to the virtual machine and current CPU usage.
General
In a cluster of multiple appliances or when the syslog messages might be numerous, it may be practical to dedicate an appliance to processing Ingress events.
If this feature is expected to be a major part of the deployment, a process should be undertaken to model the expected load and determine whether a dedicated appliance is required. If the deployment uses hardware appliances and a dedicated hardware appliance is not available for load modeling, deploy a temporary virtual machine to establish a baseline and better understand the demands of the Ingress workload. It is not recommended to deploy this feature on an appliance that is already running TCP Profiling. The combination of these two CPU-intensive tasks should be avoided.
Confirm Ingress Services are running
Start the services if they are stopped.
If the services do not start check under Monitoring -> Event Viewer for additional messages.
Configure Ingress port.
The logger service is responsible for listening on the defined port
(default 514) and ingesting the syslog messages. Configure the TCP/UDP
port at:
Administration -> Server Manager -> Server Configuration ->
[Your ClearPass Appliance] -> Service Parameters [Ingress logger
service]
Configuring the Ingress Events Dictionary
This file takes the structured or unstructured syslog messages and turns them into fields or attributes that can be referenced within a namespace.
Multiple Ingress Event Dictionaries are supplied by default. For the Juniper SRX integration, several dictionaries are available because the firewall can send syslog in multiple formats (primarily structured and traditional). By default, the SRX dictionaries are disabled and must be enabled. Only the required dictionaries should be enabled.
INFO
If the syslog format do not match what is defined in the default dictionaries, please reach out to product team via support for help with creating a custom one.
Enable the required dictionary at: Administration-> Dictionaries -> Ingress Events.
Click the desired dictionary and enable it.
Note the Attribute Names in the screenshot. These are the fields that parse the incoming syslog data. These fields can later be referenced in policy processing.
Add the Event Source
Define the event source at: Configuration -> Network -> Events Sources -> Add
Choose the correct vendor from the drop-down and make sure to enable the Event Source.
Building the Actions and Events
The following section describes how to add the necessary Enforcement Policies, Profiles, and Services to ClearPass. This configuration allows ClearPass to ingest the logs, parse the data, extract content and context from the syslog messages, and take action based on the received data.
The examples below may differ from the exact methods used in your environment to take advantage of the Ingress Events engine. However, they illustrate the framework and methodology offered by the Ingress engine and explain the core concept behind it.
Add the Enforcement Profile – Update Endpoint
Create a policy that is used to update an endpoint attribute when a “threat” has been detected. Create an Enforcement Policy under Configuration -> Enforcement -> Profiles -> Add and use the template ClearPass Entity Update Enforcement.
An endpoint attribute can be created or one that is supplied can be used. If a custom attribute is required, create it first in the Endpoint Attributes Dictionary. Depending on the logic used, an endpoint attribute may be updated or an attribute may be added to show the endpoint is in an unresolved state.
Consideration must be given to how these attributes will be removed or reset once the threat has been resolved or remediated.
Add the Event Enforcement Policy
Create an Event Enforcement Policy at: Configuration -> Enforcement -> Policies -> Add and confirm that the Enforcement Type is Event
The Rules tab is where the events to key off are defined. The available options depend on which Event Dictionaries have been enabled. For this example, two SRX dictionaries and one PANW dictionary were enabled. If a custom Ingress Events dictionary has been created and enabled, it will appear here.
Choosing ‘Juniper-SRX-SS’ and expanding the namespace ‘Name’ displays
all fields configured in that Ingress Event Dictionary.
In the example a simple check is used to demonstrate the configuration. You can set the policy to trigger an update to the endpoint if the word “threat” is seen in the alert field.
Numerous fields are available and any field in the namespace ‘Name’ can be used to trigger an event with operators such as CONTAINS, EQUALS, EXISTS, BEGINS_WITH, NOT_EQUAL, NOT_CONTAINS, NOT_BELONGS_TO, etc.
Add the Event Service
Create this under Configuration -> Services -> Add with the type as Event-based Enforcement.
Setup is now complete to receive and parse syslog messages from an HPE Juniper SRX firewall. In the example, an endpoint in the Endpoint Database is marked as malicious or out-of-policy. ClearPass then triggers an enforcement action. Typically, for a device flagged as malicious, the desired outcome is to quarantine or isolate the device or user. A typical enforcement action is to issue a Change of Authorization (CoA) so that ClearPass can re-evaluate the device based on its updated status.
Tuning the Ingress Event Engine [IEE] Processing
The process of ingesting syslog messages, parsing the data, and writing it to the Event Database before triggering an event can take time. This process is heavily dependent on the physical resources available on the appliance, the number of dictionaries enabled, and the Batch Processing Interval.
The Batch Processing Interval determines how frequently the Event Engine checks the Event Database for new entries. On lower-powered or older hardware, the default of 30 seconds should suffice, but it may need to be increased.
For the C3010, N3001 hardware appliance, or an appliance dedicated to
IEE processing, this parameter may need to be lowered to make the
process more real-time.
Setting up Syslog on Juniper SRX
The syslog configuration on a Juniper SRX can be extensive. Logs can be stored locally or sent to an external syslog server. Events can be logged from the system and/or from traffic. The focus for this integration is data-plane traffic logs. These logs are generated by processes that control data flow, such as the firewall and IPS processes.
INFO
For the process of integration with ClearPass, we will have to use ‘stream’ mode. The default mode is ‘event’.
Below is a basic syslog configuration.
root@SRX650-TME> show configuration system syslog
archive size 100k files 3;
user \* {
any emergency;
}
file messages {
any critical;
authorization info;
}
file interactive-commands {
interactive-commands error;
}
To configure the SRX to forward data-plane syslog messages to a ClearPass appliance, several settings are required. The example below contains the core requirements to send to two syslog servers. It demonstrates the ability of the SRX to send syslog messages to multiple targets and to differentiate by syslog type, formatting, category, etc.
The configuration shows system/node-specific settings such as stream mode and source address, along with two ClearPass appliances (to_cppm and to_beta1) that can override system-level settings.
INFO
Stream mode is normally used on high-end SRX devices but can be configured on any model. It is configured under the security stanza. In stream mode, logs are sent to the remote syslog server (in this case ClearPass) directly from the data plane and do not affect SRX device performance. Because of this, the logs cannot be saved locally (no control plane processing). However, care must be taken not to overwhelm the ClearPass appliance with syslog messages.
root@SRX650-TME> **show configuration security log**
mode stream;
format syslog;
source-address 10.2.51.132;
stream to\_cppm {
severity debug;
format sd-syslog;
filter threat-attack;
host {
10.2.51.210;
port 514;
}
}
stream to\_beta1 {
severity critical;
format syslog;
category idp;
host {
10.2.100.162;
port 514;
}
}
INFO
The SRX can rate-limit the syslog messages being sent (configuration not shown here).
ClearPass Access Tracker Logs Examples
The following examples show the logs posted in the ClearPass Access Tracker when an Event occurs. The view is filtered to show only Events.
Validation
Monitoring user context under JUNOS webapi
To validate user authentication context is being received from ClearPass use the following command.
matt@nac-srx.arubasecurity.net> show services user-identification authentication-table authentication-source aruba-clearpass extensive
Logical System: root-logical-system
Domain: GLOBAL
Total entries: 1
Key: 10.127.209.150
Username: host/oak-win-01
Groups:posture-unhealthy, c2c_fullaccess, domain computers, [machine authenticated]
State: Valid
Source: Aruba ClearPass
Access start date: 2026-05-15
Access start time: 16:26:56
Last updated timestamp: 2026-05-15 23:28:10
Age time: 28
INFO
- Groups equate to ClearPass Roles
- ClearPass Posture is sent as a Role (SRX Group).
Validate user-query (Pull Method)
Use the commands below to validate the user-query method.
root@SRX650-TME> show services user-identification
authentication-table authentication-source aruba-clearpass extensive
Domain: ns-tme
Total entries: 1
Source-ip: 10.2.100.167
Username: djump
Groups:posture-unknown, \[user authenticated\], rooted
State: Valid
Source: Aruba ClearPass
Access start date: 2026-04-30
Access start time: 15:45:56
Last updated timestamp: 2026-04-30 23:45:15
Age time: 100
Clear the SRX Auth table
root@SRX650-TME> clear services user-identification
authentication-table authentication-source aruba-clearpass
Confirm the authentication-table is clear
root@SRX650-TME> show services user-identification
authentication-table authentication-source aruba-clearpass extensive
warning: "There is no authentication-table entry."
Force the SRX to request an update from ClearPass (It is actually querying ClearPass via Rest APIs)
root@SRX650-TME> request services user-identification
authentication-source aruba-clearpass user-query address 10.2.100.167
Confirm user is in authentication-table.
root@SRX650-TME> show services user-identification
authentication-table authentication-source aruba-clearpass extensive
Domain: GLOBAL
Total entries: 1
Source-ip: 10.2.100.167
Username: djump
Groups:posture-unknown, \[user authenticated\], rooted
State: Valid
Source: Aruba ClearPass
Access start date: 2026-04-30
Access start time: 15:47:37
Last updated timestamp: 2026-04-30 23:45:22
Age time: 100
Monitoring the user-query (Pull Method)
Using the below JUNOS CLI commands from operational-mode, you can check the status of the ClearPass to SRX connectivity.
root@SRX650-TME> show services user-identification
authentication-source aruba-clearpass user-query status
Authentication source: aruba-clearpass
Web server Address: 10.2.100.160
Status: Online
Current connections: 1
Monitoring the number of requests/responses between ClearPass and the SRX
root@SRX650-TME> show services user-identification
authentication-source aruba-clearpass user-query counters
Authentication source: aruba-clearpass
Web server Address: 10.2.100.160
Access token: 0f0d31e4bfcd4809d67535ecc68298f25d2ca036
Request sent number: 3
Total response received number: 3
Error response received number: 0
Time of last response: 2026-04-30 11:38:53
Appendix
SRX Query Rate to ClearPass for Session Data
In all SRX platforms, the max query rate is 600 queries / minute.
Additional Resources
Integrating ClearPass with Juniper Networks SRX Endpoint Context Server
The ClearPass RESTful API’s SRX is querying (Pull Method)
The following are the REST APIs that the SRX uses to pull user data.
Using the IP query, the API was tested via the Swagger interface. A
wealth of data is returned for the endpoint 10.2.100.167.
1.4 - OT/ICS/IIoT/MIoT
1.4.1 - SOTI Connect
Introduction
SOTI Connect is an enterprise IoT device management solution that provides complete lifecycle management of connected devices — including industrial and mobile printers, IoT-enabled sensors, and other OT/ICS endpoints — from a single point of control. This integration guide covers the setup, configuration, and monitoring of the SOTI Connect ClearPass Extension within ClearPass Policy Manager. The extension enables ClearPass to retrieve endpoint data managed by SOTI Connect, enriching device profiles with up-to-date attributes for use in policy enforcement and access control decisions. Note that this integration supports periodic sync mode only, where ClearPass pulls managed endpoints and their associated attributes from SOTI Connect at configured intervals.
Pictorial View of the Integration
The extension can be configured to periodically sync device information from SOTI Connect.
In this mode ClearPass polls SOTI Connect periodically and updates the ClearPass
Endpoint database with attributes obtained from SOTI Connect. These attributes
can be utilized in ClearPass during endpoint Authorization. This mode
has a simpler configuration demand, however, the data provided may not
be completely up to date at authentication time.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
ClearPass SOTI Connect Extension Configuration
After installing the Extension, the default configuration will need to be updated.
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
INFO
syncUpdatedOnly is not supported in the SOTI Connect extension due to limitations in SOTI Connect’s API.
SOTI Connect specific extension attributes
| Configuration attribute | Description | Example/Values |
|---|---|---|
| sotiHostName | This hostname of the SOTI Connect. This will be the URL used by ClearPass to communicate with SOTI Connect | https://soticonnect.example.com |
| sotiClient ID | The API Client ID from SOTI Connect | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
| sotiClientSecret | The API Client Secret from SOTI Connect | s3cr3tK3y!xY9mN2pQ |
| sotiUserName | The username of the SOTI Connect admin account | soti_admin |
| sotiPassword | The password for the SOTI Connect admin account | P@ssw0rd!2024 |
| includeProperties | List of property names to fetch as additional endpoint attributes from SOTI Connect's device properties. | base-module#device-name, printerSim-Files#AllowedTypes |
SOTI Connect Configuration
This extension communicates with your SOTI Connect tenant via publicly exposed and documented API’s. The only configuration needed on SOTI Connect is to create an API client.
Adding an API Client
To add an API client, you must have the required privileges on your SOTI Connect tenant.
Log in to the SOTI Connect tenant and navigate to SYSTEM ADMINISTRATION > Global Settings by clicking on the hamburger menu on the top left of your tenant UI.
Under Global Settings, click Security Access under General. On the right side of the screen, click the ADD A SECURITY ACCESS icon to create a new Client ID and Client Secret.
Click GENERATE to create a new Client ID and Client Secret, then click SAVE. You can click the view button in the Client Secret field to see the secret value. Copy the Client ID and Client Secret temporarily to use them while setting up the extension on ClearPass.
Using the information returned by SOTI Connect into ClearPass Policies.
The endpoint attributes returned by SOTI Connect can be used to make policy decisions in ClearPass when an endpoint authenticates on the network. These attributes can be used in Role Mapping policies to assign various roles to endpoints based on the SOTI Connect attributes and later use those roles to make access control decisions. They can also be used directly in enforcement policies to evaluate policy conditions built on these attributes and make access control decisions as needed. Let’s look at an example of building Role Mapping policies using these attributes.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – Sample List of returned SOTI MobiControl endpoint attributes
{
“Active IP Address”,
“Active Protocol”,
“Approval Date”,
“Approved”,
“Certificate Action Permissions”,
“Compliance Status”,
“Connection Status”,
“Deactivated Type”,
“Deleted”,
“Description”,
“Device Type ID”,
“Device Type Internal ID”,
“Device Type Name”,
“Discover Date”,
“ID”,
“Last Connection Check Time”,
“Last Connection Update Time”,
“Last Seen Time”,
“Last Update”,
“Name”,
“New Firmware Available”,
“Normal Action Permissions”,
“Protocol Adapter Name”,
“Protocol Instance Name”,
“Protocol Name”,
“Remote Control Capability”,
“Status”,
“Supported Protocols”
}
INFO
As noted above in the SOTI Connect specific extension attributes section, if you wish to include additional attributes for an endpoint from the device “properties” section of the SOTI Connect API payload, you can list them in the “includeProperties” field of the extension configuration as shown below.
“includeProperties”: [ “base-module#device-name”, “printerSim-Files#AllowedTypes” ],
1.5 - Unified Endpoint Management
ClearPass integrates with a wide range for UEM / MDM solutions authorize devices as part of HPE Aruba Networking Zero Trust framework
A detailed list of third party interoperability can be found here: https://www.arubanetworks.com/support-services/clearpass-interoperability/
1.5.1 - Jamf Pro
Change Log
What’s new in Jamf v5.0?
In this release v5.0, support for the Jamf Pro API’s has been added to the JAMF extension. This update is introduced in response to JAMF’s announcement of the deprecation of Jamf Classic APIs, which will no longer be supported in the future. To ensure continued functionality and compatibility with JAMF’s supported interfaces, the integration now supports the Jamf Pro API while continuing to retain support for the Jamf Classic APIs. Once JAMF fully deprecates the Jamf Classic APIs, enabling the use of the Jamf Pro API will no longer be optional. Additional details regarding the Jamf Classic API deprecation can be found in JAMF’s official notice- https://developer.jamf.com/jamf-pro/docs/deprecation-of-classic-api-computer-inventory-endpoints.
A new configuration parameter, enableV2Api, has been added to control API usage. Setting this parameter to true enables the use of the Jamf Pro API, while setting it to false retains the use of the Jamf Classic APIs. Once the Jamf Classic APIs are fully deprecated, the extension will no longer function if this parameter remains set to false. Customers are therefore strongly recommended to switch to using the Jamf Pro API at their earliest convenience by setting enableV2Api to true.
A restart of the extension is required for the new configuration to take effect.
INFO
To avoid service disruption, switch to the Jamf Pro API by setting enableV2Api to true ahead of the Jamf Classic API deprecation.
There are differences in attribute naming conventions between the Jamf Classic APIs and the Jamf Pro API. As a result, it is important to review the Jamf attributes currently used within ClearPass policies and verify whether any policy logic relies on attribute names that have changed in the Jamf Pro API. Where applicable, policies must be updated to reference the new Jamf Pro API attribute names to ensure continued and correct policy evaluation. Failure to update affected policies may result in unintended behavior or service disruption due to attribute name changes between the Jamf Classic and Jamf Pro APIs. The reference table below provides a mapping of attributes between the Jamf Classic API and the Jamf Pro API to assist in identifying any required policy updates.
Please note that, depending on specific customer use cases and any custom modifications or additional attributes in use, not all Jamf attributes may be included in the provided reference list. The list primarily covers attributes returned in standard API responses. For any attributes that are not listed, it is recommended to contact Jamf Support to confirm whether there are differences in attribute naming conventions between the Jamf Classic APIs and the Jamf Pro API.
| JAMF4 (Attribute names as seen in v4 and older versions) | JAMF5 (Attribute names in v5 version) | Change Type |
|---|---|---|
| JAMF Activation Lock Enabled | JAMF Activation Lock Enabled | Unchanged |
| JAMF Asset Tag | JAMF Asset Tag | Unchanged |
| JAMF Block Level Encryption Capable | JAMF Block Level Encryption Capable | Unchanged |
| JAMF Data Protection | JAMF Data Protected | Renamed |
| JAMF Department | JAMF Department | Unchanged |
| JAMF Device Ownership Level | JAMF Device Ownership Type | Renamed |
| - | JAMF Declarative Device Management Enabled | New attribute |
| JAMF File Level Encryption Capable | JAMF File Level Encryption Capable | Unchanged |
| JAMF Group Names | JAMF Group Names | Unchanged |
| JAMF Hardware Encryption | JAMF Hardware Encryption | Unchanged |
| JAMF ID | JAMF ID | Unchanged |
| JAMF IMEI | JAMF IMEI | Unchanged |
| JAMF Initial Entry Date UTC | JAMF Initial Entry Date | Renamed |
| JAMF IP Address | JAMF IP Address | Unchanged |
| JAMF Jailbreak Detected | JAMF Jailbreak Detected | Unchanged |
| JAMF Last Contact Time UTC | JAMF Last Contact Time | Renamed |
| JAMF Last Inventory Update UTC | JAMF Last Inventory Update UTC | Unchanged |
| JAMF Last Reported IP | JAMF Last Reported IP | Unchanged |
| JAMF Last Update | JAMF Last Update | Unchanged |
| JAMF Lost Mode Enabled | JAMF Lost Mode Enforced | Renamed |
| JAMF Make | JAMF Make | Unchanged |
| JAMF Managed | JAMF Managed | Unchanged |
| JAMF Model | JAMF Model | Unchanged |
| JAMF Model Display | - | Missing |
| JAMF Model Identifier | JAMF Model Identifier | Unchanged |
| JAMF Model Number | JAMF Model Number | Unchanged |
| JAMF Name | JAMF Name | Unchanged |
| JAMF OS Name | JAMF OS Name | Unchanged |
| JAMF OS Version | JAMF OS Version | Unchanged |
| JAMF Passcode Compliant | JAMF Passcode Compliant | Unchanged |
| JAMF Passcode Present | JAMF Passcode Present | Unchanged |
| JAMF Phone Number | - | Missing |
| JAMF Platform | JAMF Platform | Unchanged |
| JAMF Remote Managed | JAMF Remote Managed | Unchanged |
| JAMF Report Date UTC | JAMF Report Date | Renamed |
| JAMF Room | JAMF Room | Unchanged |
| JAMF Serial Number | JAMF Serial Number | Unchanged |
| JAMF Supervised | JAMF Supervised | Unchanged |
| JAMF System Found | JAMF System Found | Unchanged |
| JAMF Type | JAMF Type | Unchanged |
| JAMF UDID | JAMF UDID | Unchanged |
| JAMF User Approved Enrollment | JAMF User Approved MDM | Renamed |
| JAMF Version | JAMF Version | Unchanged |
| - | JAMF Management ID | New attribute |
| - | JAMF Last Enrolled Date | New attribute |
| - | JAMF Department ID | New attribute |
| - | JAMF Tethered | New attribute |
What’s New in Jamf Extension v4.3?
Starting release v4.3.1 we have added support for data-types like Date-time, Integer and Boolean for attributes synced from Jamf to ClearPass. In the earlier releases all attributes were stored in ClearPass Policy Manager as Strings. However some attributes from Jamf are needed to be processed as Date-time, Integer and Boolean data-type attributes e.g “Jamf Last Contact Time UTC”. ClearPass policlies that use these attributes should be able to support these attributes with the correct data-type. Upgrading to extension version 4.3.1 will now update the Dictionary Attributes on ClearPass synced from Jamf with the correct data-type. This gives customers option to build policies using date and time based attributes like Jamf Last Contact Time UTC, Jamf Last Inventory update or other Integer and Boolean attributes like Jamf Managed etc with the correct operators in policies which best suits to evaluate an attribute.One such example of an enforcement policy to check whether an endpoints last contact time with Jamf is not more than a week is shown below.
Upgrading to this release requires a pre-requsite step to first delete the Date-time, Integer and Boolean attributes that have already been added with the string data-type so that the extension can then update these attributes in the endpoint database with correct data-types. It is recommended that this step is followed before upgrading the extension to avoid running into errors while updating these attributes in the endpoint database during the re-sync process. The steps to follow before upgrading the extension are detailed below.
- Stop the older version of the extension running.
- Go to Configuration > Identity > Endpoints and set filter as shown in below image to see all the endpoints synced from Jamf.
- Select all endpoints synced from Jamf. Click on ‘Bulk Delete’ and add the attributes to be deleted from the below list.
| Date-Time |
|---|
| Initial Entry Date UTC |
| Last Contact Time UTC |
| Report Date UTC |
| Last Inventory Update UTC |
| Last Update |
| Boolean |
|---|
| Remote Managed |
| Managed |
| Supervised |
| System Found |
| User Approved Enrollment |
| Data Protection |
| Activation Lock Enabled |
| Block Level Encryption Capable |
| File Level Encryption Capable |
| Passcode Compliant |
| Passcode Present |
| Lost Mode Enabled |
| Integer32 |
|---|
| Room |
| Hardware Encryption |
- Once the attributes are deleted. Go to the extensions page and upgrade to / install the new extension.
- You should now be able to see the updated Dictonary attributes from Jamf and the updated attributes in the correct Data-type format in endpoint DB.
What's New in Jamf Extension v4.2?
Beginning version 10.49.0 of Jamf Pro, the Classic API will now support Client Credentials based authorization. To conform with this, the Jamf Extension v4.2 has been updated to support Access Tokens that can be used to interact with the Jamf Pro API endpoints. The new vesion of extension has two additional fields “ClientID” and “ClientSecret”. Simlar to obtaining a bearer token using a username and password in earlier releases. The client ID and client secret will be exchanged by the extension for generating access tokens to interface with the Jamf Pro API’s. Jamf has already announced that basic authentication in the Classic API will no longer be enabled by default for the new Jamf Pro instances for enhanced security and will be deprecated after 31^st^ March 2024. All customers are recommened to update to v4.2 Extension for better security practices and to maintain best combatibility with Jamf. This release will continue to offer both the jamfUsername / jamfPassword and ClientId / ClientSecret fields in the default extension configuration to allow customers migrate smoothly as the new auth mechanism will need the API roles and clients functionality configured on the Jamf Pro side. More details on this is available in Jamf Pro documentation https://learn.jamf.com/bundle/jamf-pro-documentation-current/page/API_Roles_and_Clients.html
The privileges required to support the API endpoints needed to interact with Jamf Pro for the integration are as follows.
Privileges
Read Mobile Devices, Read Computers, Read Computer Extension Attributes, Create Computer Extension Attributes.
Read Computer Extension Attributes and Create Computer Extension Attributes are needed only when the “createMacExtensionAttribute” is set to true.
If createMacExtensionAttribute is set to true, Jamf will scan all MAC addresses on a device and string them together, ClearPass will interpret each MAC address as a separate endpoint with the same name and create separate endpoints in the ClearPass endpointDb
INFO
ClientId / ClientSecret takes precedence over jamfUserName / JamfPassword when both are configured.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Pictorial View of the Integration
The extension can be configured in one mode of operation.
Periodic Sync Mode
In this mode ClearPass polls Jamf periodically and updates the ClearPass Endpoint database with attributes obtained from Jamf. These attributes can be utilized in ClearPass during endpoint Authorization. This mode has a simpler configuration demand, however, the data provided may not be completely up to date at authentication time and is dependent upon Jamf running a script on their side which is not well documented.
ClearPass Jamf Extension Configuration
After installing the Extension, the default configuration will need to be updated. The configuration parameters are divided into two tables, one for Jamf Extension-specific configuration parameters and the other for Extension framework configuration parameters that are common across multiple vendor Extensions.
Table 1: Jamf Extension-specific configuration parameters
| Attribute | Description | Values/Examples |
|---|---|---|
| jamfHost | This is the sub-domain of the Jamf API URL. This will be the URL used by ClearPass to communicate with Jamf. | instance.jamfcloud.com |
| jamfUserName | The Jamf username used to interface with Jamf and create Extension Attributes. Ensure this username has sufficient privileges in which to create Extension Attributes. | admin |
| jamfPassword | The password for the aforementioned Jamf username. | [password] |
| additional-attributeMapping | This array allows for more information to be retrieved from Jamf. | See Appendix A |
| macExtensionAttributeName | The name of the Extension Attribute used. In this example, it is the "cppm-alma-addresses" Extension Attribute. | cppm-alma-addresses |
| createMacExtensionAttribute | Specifies whether to run or create the extension attribute automatically. | true or false |
| skyhookTenant | The Skyhook tenant ID received in the registration email. Required when using Webhooks for real-time event updates from Jamf to ClearPass. | See Appendix F |
| dbAccessToken | The access token for Skyhook received in the registration email. Required when using Webhooks for real-time event updates from Jamf to ClearPass. | See Appendix F |
| smartGroupTrig-gerDisconnect | Tied to Webhooks events, after adding or updating devices. In the case it triggers a Webhook that matches SmartGroupMobileDeviceMembership-Change or SmartGroupComputerMembership-Change, the devices with corresponding MAC address in the configured Smart Group are sent a disconnect. | Smart Group name. For example, "OutofCompliance" is name of Smart Group for devices where Jailbreak Detected is a condition. |
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
Additional Configuration Notes
At a minimum, you’ll need to set these attributes:
-
jamfHost
-
jamfUserName
-
jamfPassword
If using the extension to sync device information to the endpoint database, set the enableSyncAll and syncAllSchedule attributes, and optionally the syncAllOnStart attribute. Note that enableSyncAll and syncAllOnStar both default to “false”, so to enable they need to be changed to “true”. Also note that in the v4 Extension the syntax for these sync attributes changed compared to previous versions, but the functionality remains the same.
If createMacExtensionAttribute is set to true, Jamf will scan all MAC addresses on a device and string them together, ClearPass will interpret each MAC address as a separate endpoint with the same name and create separate endpoints in the ClearPass endpointDb.
The logLevel, verifySSLCerts and enableStats should be left as their default settings unless advised by ClearPass TAC or your HPE Aruba Networking SE/Partner. Once you configure these parameters, you can start your extension. Any subsequent reconfiguration requires a restart of the extension.
INFO
Pay special attention to the values in the extension configuration. Where a configuration attribute is a Boolean value {true/false}, it must not be enclosed with literals..
Jamf Pro Configuration
The ClearPass Jamf Extension communicates with your Jamf/Jamf Pro tenant via publicly exposed and documented API’s.
Jamf / Jamf Pro Configuration
Collecting all mac-addresses macOS devices in Jamf-pro
When the extension is installed in ClearPass Guest, and the “createMacExtensionAttribute” attribute is set to true, the extension attribute “cppm-all-mac-addresses” will be created within the Jamf environment only if the supplied “jamfUserName” and “jamfPassword” are correct, and only if the provided “jamfUserName” has the appropriate level of access within Jamf to create the extension. If not, manual creation of the Extension Attribute will need to occur by a Jamf administrator.
Follow the below steps to validate that the Extension Attribute has been created within Jamf / Jamf Pro. After login, click on the gear at the top right of the page.
Then click Computer Management > Extension Attributes on the Jamf nav-bar as shown below.
Next, click on Extension Attributes in the Computer Management – Management Framework section.
If you do not see the “cppm-all-mac-addresses” Extension Attribute listed, the Jamf account that was configured within the ClearPass Extension does not have the appropriate level of access to create an Extension Attribute. You will need to have the customer contact their Jamf administrator for support of this issue.
Configuring ClearPass Policy Manager
Multiple methods exist for how ClearPass can utilize the returned data from Jamf, such as:
-
Ensure that the endpoint is managed by Jamf. If not, perhaps restrict access for the device on the Corporate Network with a role that only allows the user to remediate and install the Jamf endpoint agent. This provides a controlled environment where all endpoints are protected.
-
Check if the endpoint has the latest Jamf agent installed. If not, perhaps quarantine the device with the option to remediate and install and updated Jamf client.
-
Another very powerful use case is to check if the actual Jamf agent is running.
-
If you’re using the macExtensionAttributeName attribute “cppm-all-mac-addresses”, all mac-address will be collected on the MAC. This is useful to ensure all-mac-addresse are reported to ClearPass so individual records for each interface are created to ensure that regardless of the mac-address used to authenticate, ClearPass has knowledge of it*.*
As mentioned previously, the extension supports only a single mode of use, “Sync endpoint data from Jamf Pro into the ClearPass EndpointDb.
Periodic Sync Mode: Using stored attributes
The Extension will sync data from Jamf based upon a configurable schedule, write this data into the ClearPass EndpointDB, this data is then used in policy as an authorization source. Be aware that this data is not ‘real-time’. Here’s an example of a ClearPass Role Mapping Policy that utilizes these Jamf Pro Endpoint attributes.
Appendix A – List of returned Jamf Pro endpoint attributes
RootElement.ChildElement1.ChildElement2.ChildElement3.ChildElement4.ChildElement5
Example: If you wanted to pull mdm_capable and gatekeeper_status from Jamf, your extention configuration variable “additionalAttributeMapping” would look like this:
| general. | id | network_adapter_type | Other |
|---|---|---|---|
| mac_address | id | name | network_adapter_type |
| last_reported_ip | serial_number | udid | jamf_version |
| platform | barcode_1 | barcode_2 | asset_tag |
| remote_management | managed | management_username | management_password_sha256 |
| supervised | mdm_capable | mdm_capable_users | mdm_capable_user |
| management_status | enrollment_via_dep | user_approved_enrollment | user_approved_mdm |
| report_data | report_data_epoch | report_data | last_contact_time |
| initial_entry_date_epoch | initial_entry_date | last_enrolled_date_utc | last_enrolled_date_epoch |
| initial_entry_date_utc | last_cloud_backup_date_epoch | distribution_point | sus |
| site | id | name | notebook server |
| itunes_store_account_is_active | |||
| location. | username | realname | real_name |
|---|---|---|---|
| email_address | position | phone | phone_number |
| department | building | room |
| purchasing. | is_purchased | is_leased | po_number |
|---|---|---|---|
| vendor | applecareid | purchase_price | purchasing_account |
| po_date | po_date_epoch | warranty | warranty_expires |
| warranty_expires_epoch | lease_expires | lease_expires_epoch | os_applecare_id |
| lease_expires_utc | life_expactancy | attachments | purchasing_contact |
| os_maintenance_expires | |||
| peripherals. | size | ||
|---|---|---|---|
| hardware. | make | model | model_identifier |
|---|---|---|---|
| os_name | os_version | os_build | master_password_set |
| active_directory_status | service_pack | processor_type | processor_architecture |
| processor_speed | processor_speed_mhz | number_processors | number_cores |
| total_ram | total_ram_mb | boot_rom | bus_speed |
| bus_speed_mhz | battery_capacity | cache_size | cache_size_kb |
| available_ram_slots | optical_drive | nic_speed | smc_version |
| ble_capable | sip_status | gatekeeper_status | xprotect_version |
| institutional_recovery_key | disk_encryption_configuration | filevault2_users | user |
| storage | device | disk | model |
| revision | serial_number | size | drive_capacity_mb |
| connection_type | smart_status | partitions | partition |
| name | size | type | partition_capacity_mb |
| percentage_full | filevault_status | filevault_percent | filevault2_status |
| filevault2_percent | boot_drive_available_mb | lvUUID | lvUUID |
| pvUUID | mapped_printers | printer | name |
| uri | type | ||
| certificates. | certificate | common_name | identity |
|---|---|---|---|
| expires_utc | expires_epoch | name |
| security | activation_lock | secure_boot_level | external_boot_level |
|---|---|---|---|
| software. | unix_executables | licensed_software | installed_by_casper |
|---|---|---|---|
| installed_by_installer_swu | cached_by_casper | available_software_updates | available_updates |
| running_services | applications | size | application |
| name | path | version | fonts |
| plugins | |||
| extension_attributes. | extension_attribute | id | name |
|---|---|---|---|
| type | multi_value | value |
| groups_accounts. | computer_group_memberships | local_accounts | user_inventories |
|---|---|---|---|
| disable_automatic_login | user | username | password_history_depth |
| password_min_length | password_max_age | password_min_complex_characters | password_require_alphanumeric |
| iphones. | size | ||
|---|---|---|---|
| configuration_profiles. | size | configuration_profile | id |
|---|---|---|---|
| name | uuid | is_removable | |
| filevault2_percent | boot_drive_available_mb | lvUUID | lvUUID |
| pvUUID | mapped_printers | printer | name |
| uri | type | ||
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – Using the Jamf Extension Information in a ClearPass Service
In this appendix, we’ll provide more detail on how to incorporate information from the Jamf Extension in an existing ClearPass service. We’ll add the Endpoint Database to an existing basic Wired 802.1X service that processes authentications from HPE ArubaOS switches. This service checks Active Directory to set roles, then uses those roles in an enforcement policy to send different RADIUS attributes to the switch. The configuration of your existing policies will likely differ, so please use this appendix as a general guide.
Service Authorization
The first step is to add Authorization to our service by checking the Authorization box on the Service tab. Checking this box makes the Authorization tab visible in the service definition.
Note: your existing services may already have this box checked.
Proceed to the Authorization tab and add the Endpoint Database.
We also added the [Time Source] [Local SQL DB] for evaluating dates and times.
Role Mapping Policy
Our Role Mapping Policy originally only contained the first two lines seen below.
We first created the role names in ClearPass by navigating to Configuration > Identity > Roles. We then added the subsequent lines to the role mapping policy to set roles based on the returned values from Jamf. Note this is an evaluate-all Role Mapping Policy, so all matching roles will be applied.
Appendix F – Using Webhooks for real-time event updates from Jamf to ClearPass
Jamf supports triggering Webhooks based on certain events which include changes in device groups and newly added devices in the inventory. This eliminates the dependency on endpoint sync schedule interval to get the correct state of managed endpoints with the use of real-time updates for any state changes in existing endpoints and updates for newly added endpoints in Jamf. These events can be leveraged by ClearPass when Jamf is configuted to send these events to Skyhook and update the endpoint attributes based on the attributes received from the Skyhook events.
Configuring Webhooks in Jamf
Under All Settings > Global Management click on Webhooks:
Click “+ New” button to configure a new Webhook:
Set the Display Name for the Webhook and enable it. The Webhook URL sample is provided below. The Skyhook tenant ID is suffixed in the URL to send the webhook events to the right skyhook tenant. The procedure to get a skyhook tenant registered for Jamf is discussed in the following steps. Set all other configuration settings as shown below in the example (make sure Content Type is set to JSON) and click on Save.
Register for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
Kindly copy the skyhookTenant, dbAccessToken and the Webhook URL in a text file. This will be used for configuration of the extension in ClearPass Policy Manager as well as configuring the tenant details in Jamf.
Example: New Device Enrollment
Here is a sample configuration for New Device Enrollment on Jamf:
Here is a sample log from the Jamf Extension based on a new mobile device enrolled:
The newly enrolled device is then entered in the Endpoint DB and can be looked up based on the MAC address shown in the extension log.
Example: Smart Group Mobile Device Membership Change
Here is a sample configuration for Mobile Device Membership Change on Jamf:
Here is a sample log from the Jamf Extension based on a mobile device membership change:
1.5.2 - Jamf School
Introduction and Overview
Jamf School is a powerful, cost effective Mobile Device Management system for today’s modern digital classroom. With Jamf School all your Apple devices can be managed. Jamf School has easy to use tools for the IT Department, teachers and parents.
In combination with Apple’s iOS, Jamf School is the very best MDM choice for education. Inventory, deploy and secure every Mac, iPad and iPhone in your schools – and integrate them into existing IT with an ease that has never been possible until now.
This integration guide covers the deployment and configuration of ClearPass Policy Manager to interface with Jamf School. The integration leverages Jamf School APIs to obtain attributes associated with an endpoint. It provides an ability to pull all device details from a customer tenant into ClearPass endpoints database. The contextual data inserted into ClearPass can then be leveraged to drive granular access policy.
Pictorial View of the Integration
The diagram below shows a pictorial overview of the components and how
they interact with each other.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
ClearPass Jamf School Extension Configuration
After installing the Extension, the default configuration will need to be updated. The configuration parameters are divided into two tables, one for Jamf Extension-specific configuration parameters and the other for Extension framework configuration parameters that are common across multiple vendor Extensions.
Table 1: Jamf School Extension-specific configuration parameters
Jamf School Configuration
| Attribute | Description | Values/Examples |
|---|---|---|
| JamfSchoolHost | This will be the URL used by ClearPass to communicate with Jamf School API endpoints. | account.jamfcloud.com |
| JamfSchoolNetworkId | The network ID for your Jamf School Instance. See, https://developer.jamf.com/developer-guide/docs/jamf-school for more details. | 30174556 |
| JamfSchoolApiV2Key | The ApiV2key is mandatory and used to access the Jamf School API for periodic sync with JamfSchool. See, https://developer.jamf.com/developer-guide/docs/jamf-school for more details. | secret-Value | JamfSchoolApiV1Key | The ApiV1key is optional if only periodic sync is configured. However to support Real-time AuthZ against JamfSchool this API key is needed. | secret-Value |
| ignoreEndpointDifferences | List of endpoint fields that should be ignored during comparison/syncing. | lastCheckin, lastCheckin.date, modified, etc |
| removeEndpointAttributes | List of attributes that should be removed from endpoints during sync. | availableCapacity, batteryLevel, etc |
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
Periodic Polling to Sync Endpoints
When leveraging the pull capabilities of the Extension to get the device attributes from Jamf School, use the attribute enableSyncAll and specify syncAllSchedule. These 2 attributes are leveraged for periodic poll of endpoints from Jamf School. The syncAllOnStart attribute can be leveraged as well to sync everything upon the start of the extension.
The JamfSchoolNetworkId,JamfSchoolApiKeys are collected from inside the Jamf School system. For the username, you will have to use the Network ID for your account, which can be found at Devices > Enroll Device(s). For the password, you will have to use the API Key.
A copy of the Jamf School Extension with the desired configuration is shown below, this has to be modified for your deployment. Include the JamfSchoolHost, JamfSchoolNetworkId and JamfSchoolApiKeys that will be specific to your environment.
Change or include any other values based on the description of each in the above table. Select Restart and click on Save Changes to restart the extension.
After the configuration and the restart of the extension, click on
Show Logs.
The above log shows that the Extension has pulled the endpoint data from
Jamf School. The above steps pull endpoint details at the time of starting
the Extension and then regular updates are fetched at the interval
specified by SyncAllSchedule. Please note the IP address of the
Extension. This will be used in the next section where we leverage the
Jamf School attributes during real-time AuthZ. A sample of endpoint attributes
fetched are shown below.
Multiple use-cases exist for how the data that is returned from Jamf School can be used in the Policy enforcement. In the example below, we are performing multiple checks:
-
Check if the device is managed by Jamf School. If it is not, redirect it to the captive Portal. Create a helpdesk ticket for remediation.
-
If the iCloud Backup is not enabled, create a helpdesk ticket.
-
If the device is not supervised by Jamf School, put it in the Quarantine VLAN.
Different companies will have different enforcement profiles and policies. The key takeaway here is to leverage the attributes received from Jamf School to drive the policy engine into making different enforcement actions for the device as they authenticate on the network.
Using JamfSchool extension as HTTP AuthZ source for Real-time attribute lookups for Endpoints.
INFO
When using the JamfSchool extension as an HTTP AuthZ source for real-time attribute lookups of endpoints, you must configure the JamfSchoolApiV1Key. This key enables real-time queries to Jamf School during authorization. If real-time lookups are not required, the JamfSchoolApiV1Key can be omitted. In such cases, configuring only the JamfSchoolApiV2Key is sufficient for periodic polling and endpoint synchronization.
To add JamfSchool as a real-time AuthZ source:
Navigate to Configuration > Authentication > Sources and click Add.
Select Type = HTTP, then go to the Primary tab. Enter the JamfSchool extension IP as the HTTP address and click Next.
Configure the Filter Query, specifying the attributes you want to retrieve from JamfSchool.
These attributes can then be leveraged in your policies.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.5.3 - Meraki System Manager
Introduction
This TechNote covers how to deploy and configure the ClearPass Extension to interface with Meraki System Manager. In this TechNote we will cover the complete installation, configuration and integration between the Extension and ClearPass Policy Manager. The Extension effectively becomes an authorization source to service policies.
With Meraki System Manager hosted in the cloud and ClearPass sitting primarily on-prem, there are challenges in making these two applications communicate in real time on device posture status. Traditionally the apps would communicate using APIs where an application would request information which is usually followed by a response. Hence in order to get real-time information you must poll or request as often as possible which is not scalable. The answer or the solution is a webhook which does not wait for a request to send information but sends the data as soon as it is available.
Before we proceed with the flow, we need to understand the concept of webhooks and skyhook.
What is a webhook?
A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately.
What is skyhook?
Skyhook was developed to overcome the inability for Cloud based applications to send events [webhooks] directly into a ClearPass that was typically deployed on the Trust side of a corporate firewall. In short, it is a service that runs in the Cloud, deployed, developed and managed by Aruba. ClearPass nodes running onprem, use extensions to open a persistent connection into Skyhook to receive the events originally sent from a 3rd party cloud application specific for that customer/tenant. As an overview, Meraki System Manager running in the cloud will send a webhook upon an alert notification. This will communicate with Skyhook. The ClearPass extension configured and installed will maintain a persistent connection with Skyhook awaiting an event.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Pictorial View of the Integration
The extension can be configured for two different ways of operation.
Periodic Sync Mode
In this mode ClearPass polls Meraki System Manager periodically and
updates the ClearPass Endpoint database with attributes obtained from
Meraki System Manager. These attributes can be utilized in ClearPass during endpoint Authorization. This mode has a simpler
configuration demand, however, the data provided may not be completely
up to date at authentication time.
Ingress Event Processing (IEE):
In this mode we configure an IEE source that results in real time alert
notifications from Meraki System Manager. Information in this case is
more up to date, but there is the higher overhead of an API call during
endpoint authorization. A view of this process is below.
Register and Request for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
Meraki System Manager Configuration
The ClearPass Meraki System Manager extension communicates with your Meraki System Manager tenant via REST API calls. By default, your Meraki System Manager tenant is not enabled to receive and respond to API calls, so you will need to create a Meraki System Manager API Key to enable API access. In this process an API key should be collected as it will be required to configure the ClearPass Meraki System Manager Extension.
Meraki System Manager API Tenant Configuration
Follow the below steps to configure and collect the data from your Meraki System Manager tenant.
After login, go to Your login name > My profile on the upper right
nav-bar as shown below.
Then from under My profile options, scroll down to API Access and click
“Generate new API key”.
At this time you will be shown the API key and you will need to copy it
for later user in ClearPass, click “I have stored my new API Key” and
then “Done”, as shown below.
Meraki System Manager Alert Webhook Configuration
Follow the below steps to configure and collect the data from your Meraki System Manager tenant.
After login, go to System Manager -> Alerts on the left nav-bar as
shown below.
Then scroll down to Webhooks and click “Add an HTTP server”. Fill in
the “Name” field to anything you prefer. The “URL” field will be
“https://skyhook.clearpassbeta.com/api/skyhook/meraki-sm/put-yourskyhook-tenant-id-here”
where “put-your-skyhook-tenant-id-here” will be replace with the
skyhook tenant ID you received after enrollment. “Shared secret” is a
password you specify that is optionally used within the extension to
validate the authenticity of the webhook, this needs to be referenced
later in the extension configuration. Then click “Save”.
In “Default recipients” add the Webhook alias you created earlier
and then create/modify a “Security Alert” that you want to be
notified on.
Meraki System Manager Extension Configuration
After installing the Extension, the default configuration will need to be updated.
Edit the three configuration value pairs from the previous steps with your saved values.
Below is an explanation of all of the configuration value pairs. The logLevel, verifySSLCerts and merakiHost should be left as their default settings unless advised by ClearPass TAC or your Aruba SE/Partner. Once you configure these parameters, you can start your extension. Any subsequent reconfiguration requires a restart of the extension.
Extension Configuration options
| Configuration attribute | Description | Example/Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | "DEBUG", "INFO", "WARN", "ERROR" |
| verifySSLCerts | Specifies whether SSL certificates should be validated when making requests | true or false |
| merakiHost | URL for API calls to Meraki | api.meraki.com |
| merakiApiKey | The API Key from Meraki System Manager configuration | — |
| endpointSyncSchedule | The CRON schedule used for the sync process | 10 3 * * * |
| endpointSyncOnStart | Specifies whether to run the endpoint sync immediately when the extension starts | true or false |
| enableSyslogEvents | Enables the processing of syslog events from Meraki System Manager alerts | true or false |
| syslogServers | Host: IP of the extension gateway; Port: syslog port (usually 514); useTCP: true or false | — |
| enableSkyhook | Enables or disables the endpoint sync scheduler | true or false |
| skyhookTenant | The Tenant ID for Skyhook from registration | 965abd48-zzzz-aaaa-8164-xxxxxxxxxx |
| dbAccessToken | The access token for Skyhook (sent from Skyhook registration) | — |
| sharedSecret | The Meraki System Manager Webhook Secret from alert settings | — |
| cppmUserName | A ClearPass username used for device profiling | — |
| cppmPassword | Password for the above ClearPass user | — |
| bypassProxy | Enable extension to bypass web proxy | true or false |
Additional Configuration Notes
If you only want the extension to sync device information to the endpoint database, set the endpointSyncSchedule attributes, and optionally the endpointSyncOnStart attribute.
At a minimum, you’ll need to set these attributes:
-
merakiApiKey
-
cppmUserName
-
cppmPassword
The cppmUserName and cppmPassword attributes are set, the
extension can configure endpoint profiling based on data from Meraki
System Manager. Create this user in ClearPass, navigate to
Administration > Users and Privileges > Admin Users. Click on
Add. Set the Privilege Level to Network Administrator.
Configure ClearPass Policy Manager
Multiple methods exist for how ClearPass can utilize the returned data from Meraki System Manager, such as:
-
Ensure that the endpoint is managed by Meraki System Manager. If not, perhaps restrict access for the device on the Corporate Network with a role that only allows the user to remediate and enroll the device to Meraki System Manager. This provides a controlled environment where all endpoints are managed.
-
Check if the endpoint is meeting compliance requirements set by your company (i.e. Firewall enable, Anti-virus installed, etc)
-
Take automated actions on notifications sent from Meraki System Manager.
As mentioned previously, the extension can be run in two modes.
Periodic Sync Mode: Using stored attributes
The Extension can sync data from Meraki System Manager periodically, write this data into the ClearPass EndpointDB, then use the EndpointDB as an authorization source. Also, as part of this sync configuration notifications can be processed for devices that are not meeting company compliance. Why this is useful is that if a device were to fall out of compliance an event can be triggered, and a new enforcement can be processed to handle the violation.
Be aware that this data will not be completely ‘real-time,’ but may be
adequate for many use cases.
Here’s an example of a ClearPass Role Mapping Policy that utilizes these
Meraki System Manager Endpoint Attributes.
Ingress Event Processing: A Real-Time Notification
In this scenario we configure ClearPass Policy Manager to process event notifications. For a complete and more detailed overview of Ingress Event Processing please review the technote “CPPM_TechNote__Ingress_Event_Engine_V1.0.pdf”
Ingress Event Processing uses the Ingress Event Engine [IEE] that is built-in ClearPass Policy Manager. The IEE delivers an extra dimension to the capabilities on how ClearPass Policy Manager can interoperate with Devices and Users. IEE is where an inbound syslog can be the trigger for CPPM to take action on authenticated networks devices & users.
Configuring Ingress Event Processing
Let’s check the basics first….. we need to enable the Ingress Events
processing engine. Enable this under Administration-> Server Manager
> Server Configuration > [Your CPPM Node] > System as below.
INFO
Note when enabling this feature, a warning message is displayed as shown below which highlights and warns of the potential consequences. Be aware that is can generate a significant CPU load on the node. Careful consideration needs to be used and we specifically do not want CPPM to be receiving a constant stream of syslog messages that it has to then process. CPPM should only be receiving syslog messages by exception that it has to process and take action on, if you send a constant stream of syslog then the overhead will likely cause the node to become CPU bound and the potential failure/timeout of the primary function, the Authentication of Users/Computers.
Check if Ingress Daemons are Running
As a part of the Ingress framework, we have added two new daemons, check
they are running, if they are ‘Stopped’, then start them using the
controls as shown below.
Check on the Configured Inbound Ingress Listening Port
As shown above there are a couple of daemons, one of these, the logger
service is responsible for listening on the TCP/UDP port defined below
[default 514] and ingesting the syslog records on that port, configure
the TCP/UDP port from the following location **Administration > Server
Manager > Server Configuration > [Your CPPM Node] > Service
Parameters [select Ingress logger]… set the TCP/UDP port number
required.
Configure Ingress Events Dictionary
This is the actual file which takes the structured/unstructured syslog
and turns it into fields/attributes that we can reference within a
Namespace. This section of the configuration requires some knowledge of
Groks, especially when adding a new Vendor. We supply multiple IEE
dictionaries by default and will add more over time. We have provided
dictionaries for Juniper, Palo-Alto, CheckPoint and InfoBlox. As you can
see below the supplied dictionaries are disabled. Only enable the
required dictionaries.
Here you will want to import two new IEE dictionary for Meraki System
Manager. One dictionary is used for the polling notifications that
provides rich device detail to where we can trigger action on an
authenticated device. The other dictionary is used for real-time Alert
notification via the Meraki Webhook. Currently the Alert notifications
contain very limited information.
Add an Event Source
Next we need to define the event source, go to Configuration >
Network > Events Sources > [Add your node].
Add an Enforcement Profile
We need to create a policy under Configuration > Enforcement > Policies that we will use to trigger an action for notification.
Example for Notification Profile
This example is created for email notification, but different
notification types can be configured. This is to handle the minimal
information provided in Alerts, in some circumstances admins may want
some type of notification for device policy change state.
Add an Event Enforcement Policy
Next create an Event Enforcement Policy. Create this under
Configuration -> Enforcement -> Policies [add] be sure to select
as highlighted below of the Enforcement Type as Event.
Based upon the Meraki System Manager Event Dictionary you enabled, it
will determine what is available here in the rules definition. Then
expanding the namespace ‘Name’, we see all the fields that are
configured in this Ingres Event Dictionary.
In this case we do a check to demonstrate the configuration for a device
policy violation notification from the Extension polling. We set the
policy to trigger a session re-auth if we see the words “security_policy_violating” in the violatingPolicy field. The other
one is for a real-time Alert notification generated by the Webhook. We
set the policy to trigger an email if we see the words “Clients are
violating” in the alertType field.
Add an Event Service
Now that all of the parsing/enforcement is completed, add the Event
Service. Create this under Configuration -> Services -> [add
‘Event-based Enforcement’].
Then set the Service Rule conditions that will trigger the service.
CPPM Access Tracker Logs Examples
Below is an example of the logs that get posted in the CPPM Access
Tracker when an ‘Event’ occurs. The below is filtering just on
‘Events’ in Access Tracker.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Periodic Sync Mode
If you are configuring the extension to poll Meraki System Manager periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
Ingress Event Processing
In this scenario we configure ClearPass Policy Manager to process event notifications. For a complete and more detailed overview of Ingress Event Processing and cluster consideration please review the technote “CPPM_TechNote_-_Ingress_Event_Engine_V1.0.pdf”
1.5.4 - Microsoft Intune
Version History
This integration is implemented through ClearPass Extensions which run independent of the ClearPass platform version. Hence extensions can be updated and released outside of ClearPass release cycles.
What’s new in ClearPass Intune Extension v6.4 ?
Support for HTTP caching for User and Device Group queries
In this release, support for HTTP caching is added for User and Device group queries to the Intune extension. ClearPass policies that use Intune extension as the authorization source for real time User and Device group queries can now be cached with a configurable TTL cache timeout. This avoids frequent HTTP real-time calls from the Intune extension to the Entra ID tenant for User and Device group queries improving the performace of the overall integration components.
The following configuration knobs are added to the extension which are hidden by default. Adding these knobs with the below settings on the extension configuration will enable the HTTP caching for User and Device group real time queries.
“httpCacheTtlInSeconds”: 30, - HTTP Cache TLL in seconds defines the cache timeout. E.g 30 seconds
“httpCacheMaxEntries”: 100, - HTTP Cache Max Entries should not exceed 100 for optimal performance.
Sample Configuration:
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“httpCacheTtlInSeconds”: 30,
“httpCacheMaxEntries”: 100,
“azureADEndpoint”: “login.microsoftonline.com”,
“graphEndpoint”: “graph.microsoft.com”,
“tenantId”: “xxxxxxxx”,
“clientId”: “xxxxxxxx”,
“clientSecret”: “xxxxxxxx”,
“syncPageSize”: 50,
“enableSyncAll”: true,
“syncAllSchedule”: “*/30 * * * *”,
“syncUpdatedOnly”: false,
“syncOnStart”: true,
“enableEndpointCache”: true,
“endpointCacheTimeSeconds”: 900,
“intuneAttributes”: null,
“enableUserGroups”: false,
“userGroupUpdateSchedule”: “*/5 * * * *”,
“bypassProxy”: false,
“enableStats”: true,
“statsUsername”: “whoever”,
“statsPassword”: “********”,
}
What’s new in ClearPass Intune Extension v6.3 ?
Support for Strong Mapping
With Intune extension version 6.3.3, we have made changes to align with Microsoft’s Strong Mapping requirements detailed below.
With the introduction of Strong Mapping feature the SAN URI field is now also used by Microsoft to insert a security identifier (SID) value for Microsoft Entra hybrid joined users/devices. This means that Intune managed clients in a Microsoft Entra hybrid joined environment when provisioned with a certificate using the Intune SCEP certificate profile will have SID tag in the SAN URI field of the certificate. This means that the Intune attribute used for real time lookups now comes in the SAN URI field of the certificate along with the Strong Mapping SID attribute as comma seperated strings in ClearPass. It is therfore important for us to be able to extract only the Intune Device ID attribute from this field to make API calls for real time lookups.
This release supports parsing of the Intune Device ID attribute from the comma seperated string that comes in the SAN URI field to make API calls for real time lookups on Intune. Therfore, all customers adopting the Strong Mapping feature are required to upgrade to this release of the Intune extension. Starting Jan 2025 the Strong Mapping adoption is expected to be enforced on the overall windows ecosystem after which the key distribution system (KDC) will check if certificates have the security identifier during certificate-based authentications.Upgrading to this extension release will therefore not be optional once Microsoft enforces Strong Mapping for Microsoft Entra hybrid joined users/devices.
The URI attribute “{{OnPremisesSecurityIdentifier}}” is required on the Intune SCEP certificate profile to add the Strong Mapping SID value in the SAN URI field once Strong Mapping is enabled for the Intune tenant by Microsoft.
New Recommendation around using alternate Intune ID to support Device / User Group Lookups
INFO
The following are only recommendations and not mandatory settings. They also only apply to environments that need device or user group lookups using Intune extension. With ClearPass release 6.12 Device group lookups against Entra ID is also supported natively along with User group lookups.
For customers using Intune extension as real-time AuthZ source to do user and device group lookups, we use the Intune Device ID from the SAN URI field of the certificate to fetch the Intune attributes and parse the User ID / AAD_Device_ID to then make another call to fetch either the user or device group information. This adds an additional API call for getting the User ID / AAD_Device_ID as part of Intune attributes (Using Intune Device ID) first and then using that information to do the user or device group lookup. However, if the AAD_Device_ID and the UserPrincipalName if already present in the SAN / CN field of certificate we can save an API call for better performance in high client density environments to directly parse them from the certificate and make the API call to fetch the user or device group lookup directly without having to make that extra API call to first fetch those attributes as Intune attributes (Using Intune Device ID) first then make the second call.
To address this we have added support for KEY:VALUE pair when more than one ID is included in the SAN URI field or when using AAD_Device_ID. AAD_Device_ID can fetch both Intune attributes and device group information. UserPrincipalName fetches the user group information and Intune Device ID only fetches the Intune attributes. Given below are the examples to setup Intune SCEP certificate profile to use KEY:VALUE pairs for different ID’s. Note that making changes in the below fields would require the configured Certificate Authority to re-sign / issue new certificates for the clients.
Supported KEY:VALUE pairs are as follows. The KEY names used are same as the variable names that Intune supports in the SCEP profile. Please refer the below link from Micrsoft for details.
https://learn.microsoft.com/en-us/mem/intune/protect/certificates-profile-scep
- DeviceId:{{DeviceId}} - Used for Intune attributes lookup.
- AAD_Device_ID:{{AAD_Device_ID}} - Used for both Intune attributes and Device group membership lookup.
- UserPrincipalName:{{UserPrincipalName}} - Used for User group lookup only when user group lookup using extension is enabled.
The order of priority for querying Intune using these attributes during real-time AuthZ is DeviceId, AAD_Device_ID and finally the standalone value. Any attribute value in the SAN URI that does not have any one of the above KEYs before them is considered as a standalone value and is considered as DeviceId by default to maintain backward compatibility for environments that are already setup with DeviceId in the SAN URI field of the client certificates for real-time lookpus against Intune or environments that have Strong Mapping enabled. These recommendations as noted above are optional and environments that use only the DeviceId value (wthout the KEY:VALUE pair) in the SAN URI field is still supported for both Microsoft Entra hybrid joined users/devices and Microsoft Entra only joined users/devices.
INFO
Supported special characters in the KEY variable names are “_” and “-”. KEYS can be set in any case as required but it is strongly recommended to use the same variable names that Intune supports in the SCEP profile. Supported variables can be found in the following Microsoft Intune documentation https://learn.microsoft.com/en-us/intune/intune-service/protect/certificates-profile-scep#create-a-scep-certificate-profile
For more information on how to use the extension in HTTP Authorization Mode please refer to the Configuring ClearPass Policy Manager as an HTTP authZ source section of this document.
What’s new in ClearPass Intune Extension v6 ?
Microsoft released the Compliance Retrieval service with the Intune June 2021 service release. This new service is intended to replace the Intune NAC service, and includes changes to improve the security, reliability, and privacy of the NAC service. For example, it uses lookup by Intune device ID only, which removes the dependency on internal identifiers, such as serial numbers, which are not consistently accessible. It also eliminates MAC address identifiers, which are problematic because devices can have multiple or randomized MAC addresses. The new service is also streamlined to return only enrollment and compliance data from Intune. Any other device data not related to access control is eliminated from this service.
Intune Extension v6 adheres to the main requirement to use certificate-based authentication (e.g. EAP-TLS) with the new service. In conjunction with this, it is required to include the Intune device ID in the subject alternative name (SAN) of your certificate profiles. Please refer to Appendix E for more details on SCEP certificate profile configuration.
As noted below, Intune Extension v5 made a major move to use Microsoft GraphAPI. However, we encountered an issue with GraphAPI when syncing with Intune to retrieve device attributes as it did not support pulling the Ethernet MAC address attribute (wired interface). We addressed this with a workaround that utilizes real-time lookup by Intune device ID to pull the Ethernet MAC address attribute and have it stored in the endpoint DB. Please refer to the section “Utilizing HTTP Authorization Mode to Retrieve Specific Device Attributes” for more details.
INFO
The following are recent changes done by Google that impact Android devices in Intune: (1) Removal of serial number, IMEI, and MEID on personally-owned work profile devices [running Android 12] and (2) Removal of Wi-Fi MAC address on newly-enrolled device administrator and personally-owned work profile devices [running Android 9 and above]. For more information, see the Android Day Zero Support with Microsoft Endpoint Manager blog post.
What’s new in ClearPass Intune Extension v5 ?
In this MAJOR update the integration changes fundamentally how it works. You MUST read the ‘change in behaviors’ below to understand how this might affect how you use this Extension. We feel this change is for the better, we’ve constantly had customers telling us that the authN event-driven approach was not how they liked or wanted this integration to work. Previously we had been restricted to using the “Intune NAC-API”, however this version uses the Microsoft GraphAPI, this open up a list of new features and some changes.
-
Batch Ingest all Tenant endpoints like other UEM vendors
-
Only sync updated endpoint context after previous sync
-
Send CMD’s to Intune to ‘run’ against endpoints
-
Lock Screen
-
Wipe Device
-
Shutdown Device
v5 - Change in Behavior
It is important to note that this Extension works in a different way to the previous Intune extensions, it does not query Intune on each and every authN {or reference cached data as in previous versions} thus it’s not an authZ source like before, though an authZ use-case exists it works differently from the previous version.
This integration works by ingesting all of the endpoint with a customer’s tenant, this is inline with how every other UEM integration fundamentally works. However, because of the API changes we can’t query based upon the authenticating mac-address, more on this later. With the v5 we have to use the EndpointDb as the authZ source, so depending on the sync schedule, this will determine the fresh ‘v’ stale view of the data.
There is an option to query real-time Intune, however there is an assumption that the endpoint is already managed by Intune and you’re only querying for current data. You could have an authZ rule such as Endpoint Source=Intune trigger a CSA profile for an update, and if Source != Intune trigger a different CSA profile. The reason behind this is that the query exposed in GraphAPI is based on the Azure DeviceID {AZID}, so for ClearPass to query for an endpoint update it needs the AZID, which it has from data already synced, the Extension uses the mac-address of the authenticating device, looks up the AZID in the ClearPass endpointDb before it can query Intune.
For this reason the previous process of using a real-time query based upon mac-address for found/not-found devices in Intune needs to be adjusted, perhaps validating an endpoint has an AZID attribute value.
INFO
As/If you move to this v5 you must carefully consider the adjustments that may be need in your work flow and configuration and how you use the Intune data ingested into the endpointDb repo.
What’s new in ClearPass Intune Extension v4
In v4, we added the capability to cache Intune attributes for a configurable time. This allows device attributes from Intune to be written to the Endpoint Repository of ClearPass. If a device authenticates within the cache period, ClearPass would not send requests to Intune Authorization source, rather use the attributes cached in the Endpoint Repository. This helps reduce the number of API calls to Intune.
What’s new in ClearPass Intune Extension v3
Enabling Intune NAC API to ingest endpoint ownership such as it can be used in Policy within ClearPass
INFO
Intune v2 was never released publicly
What’s new in ClearPass Intune Extension v1
The first Intune extension for ingesting endpoint data, based upon a 1:1 API call due to limited ability in Intune to ingest ALL endpoint in a tenant.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Pictorial View of the Integration
The extension can be configured for two different modes of operation.
Periodic Sync Mode:
In this mode ClearPass polls Intune periodically and updates the ClearPass Endpoint database with attributes obtained from Intune. These attributes can be utilized in ClearPass during endpoint Authorization. This mode has a simpler configuration demand, however, the data provided may not be completely up to date at authentication time.
HTTP Authorization Source Mode:
In this mode we configure an HTTP Auth source that results in a real time API call to Intune during endpoint authorization. Information in this case is more up to date, but there is a higher overhead of an API call during endpoint authorization, remember we only query for already known/ingested endpoint context. A view of this process is below.
Configurations Steps
There are primarily 4 steps involved in getting this Integration configured.
-
Configuring and Collecting Information from Microsoft to Configure Intune extension
-
Installation and Configuration of the Intune Extension
-
Configuring ClearPass Intune Extension to sync endpoint data from Intune to the EndpointDb
-
Configuring ClearPass Policy Manager to use already ingest endpoint context from Intune or configure an Authorization source for real-time updates.
Collecting Information to Configure Intune extension
INFO
Below we cover the process of adding a ‘ClearPass App’ into Azure as an application and enabling the necessary application level permissions. Think of this as the gateway between ClearPass and Microsoft Intune.
It is assumed you have Intune/Azure environment already setup and configured. The setup of these environments is beyond the scope of this TechNote.
In order to complete the integration, you need to collect multiple pieces of information from Intune and the Azure platform when configuring the ‘ClearPass App’ that are required to complete the extension configuration. The goal is to collect information to complete the highlighted attributes below in red:
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“azureADEndpoint”: “login.microsoftonline.com”,
“graphEndpoint”: “graph.microsoft.com”,
"tenantId": "xxxxxxxx",
"clientId": "xxxxxxxx",
"clientSecret": "********",
“syncPageSize”: 50,
“enableSyncAll”: true,
“syncAllSchedule”: “*/30 * * * *”,
“syncUpdatedOnly”: false,
“syncOnStart”: true,
“enableEndpointCache”: true,
“endpointCacheTimeSeconds”: 900,
“intuneAttributes”: null,
“enableUserGroups”: false,
“userGroupUpdateSchedule”: “*/5 * * * *”,
“bypassProxy”: false,
“enableStats”: true,
“statsUsername”: “whoever”,
“statsPassword”: “********”,
}
Login to https://portal.azure.com. Log in using your Intune Tenant Admin account. We assume here you have already identified and configured at least one of your Intune accounts with Administrator rights.
Once logged in, open “Azure Active Directory” and select “App Registrations”. In “App Registrations”, click on “New registration” menu. Provide a name to identify this application, something like “ClearPass Intune Integration”. Use all the default values when defining the new application, click on ‘Register’.
After clicking on Register, in the next screen for the application previously created, record the clientId and the tenantdID as highlighted below. Collect these string as they will be required later to complete the Extension configuration.
Next the permissions must be configured for the new application. To the left on the navigation tree, click on ‘API permissions’ followed by ‘Add a Permission’
Next, click on ‘Microsoft Graph > Application permission’, add the permissions listed below. Next click on ‘Intune > Application permission’ add the permissions listed below.
TIP
Check Appendix F for details about permissions required for the application. We have a detailed breakdown of permissions needed for each use case. Only enable the appropriate permissions as required by your setup.
At this stage all of the permission should be added, but show as ‘Not granted for…..’ Click on ‘Grant admin consent for XXX’
Confirm on the request for granting consent for the requested permissions.
Ensure you see a successful confirmation of this process, as the below two screen images indicate.
One final step in this section, create a secret. From the navigation pane on the left side, click on ‘Certificates & secrets’, then under ‘Client secret’ add a ‘New client secret’, provide a descriptive description, choose the expiration and be sure to make a note of the expiration date. Depending on your sensitivity to password rotation and corporate policy, this is ultimately your decision. You can configure a new password at any time, change its duration accordingly as long as you match this to the secret configured in the Extension.
Before you leave this screen record the client-secret shown below as this is also required to complete the configuration of the Intune extension.
Configuring ClearPass Intune Extension to sync endpoint data
It’s important to set the configuration within the Extension to meet your needs. The extension can be configured to sync data in multiple ways as well as be used as a “real-time” authZ to Intune. Not all configuration settings need to be set but some are mandatory. We have divided the parameters into two tables, one for Intune Extension-specific configuration parameters and the other for extension framework configuration parameters that are common across multiple vendor Extensions.
Table 1: Intune Extension-specific configuration parameters
| Attribute | Description | Values/Examples | |
|---|---|---|---|
| tenantId | Azure Tenant ID for the instance, as previously recorded. | XXXXXXXXX-b3e5-12ab-34cd-ZZZZZZZZZZZ | |
| clientId | The API Client ID configured for the Intune instance, as previously recorded. | 123abcde-45fg-67hi-jk89-1234567890a | |
| clientSecret | The Client Secret that corresponds to the clientId, as previously recorded. | XyzYZ123456-aabbccddeeff123-abcfgh12= | |
| syncPageSize | The page size used when puling data from Graph. | 50 | |
intuneAttributes {See below for a more detailed explanation of this field} |
This setting allows the user to restrict the requested attributes from Intune. The setting requires an array of strings, each string being an attribute to include. |
Example:
|
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
Mandatory fields are; tenantId, clientId, clientSecret obtained earlier.
Configuration of syncSchedule is covered in more detail in Appendix D at the end of this documentation, this is used to control the frequency of when the sync process runs. syncUpdatedOnly when set to true, will only ingest changes for managed endpoints. syncOnStart determines if when the extension is started or restarted should it immediately run the sync process, or wait until the syncSchedule job is run.
The two values of enableEndpointCache and cacheTimeInSeconds are specifically used in conjunction with the extension is used as an Authorization source to retrieve real-time data for a known endpoint. If using the Extension in combination as discussed later with a HTTP authZ source which needs to do lookup based on Intune Device ID as following:
- GET /device/info/id/:intuneId
Then these switches will ensure that if the extension is asked to refresh data, it will check the cacheTimeInSeconds to decide if the data current held is fresh or stale.
intuneAttributes is used to filter the returned data back from Intune, this can be used if there are large amounts of tenants or you just want to reduce the number of attributes returned and updated. This setting allows the user to restrict the requested attributes from Intune.
The setting requires an array of strings, each string being an attribute to include.
Example:
| ["complianceState", "deviceEnrollmentType", "jailBroken"] |
|---|
When blank, which is the default value when the extension is initailly installed, it will say null, all attributes from Intune will be returned and added to the endpoint database. If you populate a filter the following fields will always be included, ‘id’, ‘wiFiMacAddress’, ‘deviceName’, ‘model’, ‘osVersion’, ‘operatingSystem’.
The following values are valid optional attributes:
id, userId, deviceName, managedDeviceOwnerType enrolledDateTime, lastSyncDateTime, operatingSystem, complianceState, jailBroken, managementAgent, osVersion, easActivated, easDeviceId, easActivationDateTime, azureADRegistered, deviceEnrollmentType, activationLockBypassCode, emailAddress, azureADDeviceId, deviceRegistrationState, deviceCategoryDisplayName, isSupervised, exchangeLastSuccessfulSyncDateTime, exchangeAccessState, exchangeAccessStateReason, remoteAssistanceSessionUrl, remoteAssistanceSessionErrorDetails, isEncrypted, userPrincipalName, model, manufacturer, imei, complianceGracePeriodExpirationDateTime, serialNumber, phoneNumber, androidSecurityPatchLevel, userDisplayName, configurationManagerClientEnabledFeatures, wiFiMacAddress, deviceHealthAttestationState, subscriberCarrier, meid, totalStorageSpaceInBytes, freeStorageSpaceInBytes, managedDeviceName, partnerReportedThreatState
INFO
Note: If something is incorrect or a field that Intune doesn’t like to limit, it will cause errors. If this happens check or remove the configured values. A sample of this error is, “Parsing OData Select and Expand failed: Could not find a property named ‘XXXXX’ on type ‘microsoft.graph.managedDevice’.”
Leave dataPageSize, verifySSLCerts and logLevel at their default else otherwise advised.
An example of an Intune extension configuration is below. Include appropriate values for your environment based on the information gathered before, select Restart and click on Save Changes to start the extension.
Following the restart, click on “Show Logs”. If contact is made, and access is granted based upon the configuration above with your Intune tenant, you should see something similar to the below.
INFO
IP address assigned to the extension is “172.17.0.4”. This will be used when configuring Intune as an HTTP Authorization source within ClearPass Policy Manager. It’s likely the IP address of your Extension will differ.
Configuring ClearPass Policy Manager as an HTTP authZ source
Endpoint Sync Mode
After configuring the syncSchedule and starting the Extension, data should immediately start to appear in the EndpointDb, especially if syncOnStart is set as true, you can see this by filtering data as shown below.
Filter=Attribute equals Source contains Intune
After the initial sync is complete, it’s a simple process of utilizing the data in the EndpointDb inside Role-Mapping/Enforcement-Policy.
HTTP Authorization Mode
To complete the configuration to use the Extension as a ‘real-time’ authorization source, configure an HTTP authorization source within ClearPass. With Intune as an authorization source to the extension, ClearPass can receive the latest data from the Intune platform for previously ingested endpoints, presented under the authZ source. This is more real-time but consideration needs to be made relative to the number of API calls that would be made.
Click on Next. This will advance to the Primary Tab provide the connection details.
The Base URL IP address is what can be seen in figures above.
Set the Base URL as HTTP://IP_of_the_Extension/device/info/id/ and pay special attention to HTTP not HTTPS, and also the addition of “id/” in the path which is required in v6 of Extension.
It’s mandated that a Login Username/Password is entered, but it’s not used, so this can be set to anything.
Click on “Next”. This will advance you to the Attributes Tab where you need to provide the authorization attributes.
Click on “Add More Filters”. Provide a Name for the filter and then a filter query. It’s extremely important that the filter query is defined correctly. This is the query string that is sent to the Intune extension asking for context about the endpoint. The query is indexed off the Intune Device ID in the certificate of the authenticating endpoint. The Device ID can be referenced in the subject alternative name in the certificate (see Appendix E for more details).For completeness, the Filter Query is provided here, copy one of the options carefully corresponding to how the certificate is configured.
%{Certificate:Subject-AltName-URI}
Next build out the definitions of the attributes that will be returned from the Filter Query. These attributes will subsequently be used within our policy-evaluation and ultimately the enforcement policy applied. You can choose whatever attributes you want to be exposed under authZ based upon what you list here. A complete list is available in Appendix A, the first fields in BOLD listed in Appendix A translate to the fields you can enter when configuring the query results, a short example is below.
Once the HTTP authorization source is defined you can use the returned attributes in your policy processing. As an example lets view the returned attributes from the above from an authentication request in access-tracker.
Below can be see the result of a real-time query from Intune based upon the attributes configured in the above authZ source, this data has been returned and is available to the policy at authentication time.
Similarly, For fetching User group information as AuthZ attributes using the Intune extension the Base URL of the authentication source should be set as HTTP://IP_of_the_Extension//realtimeUserGroup/ and the filter query is indexed of the UserPrincipalName from the SAN field of the certificate. For the Device group information the Base URL of the authentication source should be set as HTTP://IP_of_the_Extension/realtimeDeviceGroup/ and the filter is indexed of the AAD_Device_ID from the SAN field of the certificate.
Fetching user group membership:
Fetching device group membership:
Utilizing HTTP Authorization Mode to Retrieve Specific Attributes
The HTTP authorization mode can be leveraged as a general method for retrieving specific attributes from Intune. This comes in handy when we need to overcome a limitation with GraphAPI when syncing with Intune to retrieve device attributes. One such limitation of GraphAPI is it does not support retrieving the Ethernet MAC address attribute (wired interface). In order to address this, we can add Ethernet MAC Address to the HTTP authorization source query and returned attribute as shown below:
INFO
It is important that “enableEndpointCache” is set to true in the Extension configuration.
This method utilizes real-time lookup by Intune device ID to pull the Ethernet MAC attribute and have it stored in the endpoint DB as shown below:
In the next section we cover options on how to use the results of the returned attributes from Intune in Role-Mapping or in an Enforcement-Policy.
Using data from Intune in a ClearPass Enforcement Policy
Multiple use-cases exist for how the data that is returned from Intune can be used in your policy enforcement. In the example below, we are performing multiple checks:
-
Check the device is a Corporately issued and managed device. If true then update the Palo Alto and Checkpoint corporate firewall with context about this device.
-
Check that the device is managed by Intune and that it’s compliant. In addition to allowing access for these devices, we’re also updating the endpoint with the authentication Date & Time so we can track the device’s access to the network.
-
If the device is not in compliance then we will apply a Quarantine role.
-
If the device is running an OS that is not 13.6 [assume iOS] then we flag it as an old-OS.
-
If the device is running an OS that begins with 13.6 [assume iOS] then we flag it as an approved-OS.
-
If the device is running Android OS then we attach a label of Android.
-
If the device is running Android OS then we attach a label of Apple.
The policy used in the screenshot above is just a reference. Different companies will have different enforcement profiles and policies. The key take away here is that it showcases the use of authorization attributes received from Intune to drive the policy engine into taking different enforcement actions for the device as they authenticate on the network. It is recommended to use these policies within Role-Mapping. Enforcement policies usually will not use an “Evaluate all” rules evaluation algorithm.
Sending updates and triggering actions on Azure enrolled Devices
Starting with the v5 Extension we’ve enabled some new capabilities in respect of how we can interact with the Intune managed devices. The framework adopted for v5 allows ClearPass Policy Manager to update endpoint attributes in Intune and trigger actions against managed devices.
Review this link to see a list of the possible actions; https://docs.microsoft.com/en-us/graph/api/resources/intune-devices-manageddevice?view=graph-rest-1.0
This list shows all of the supported actions that can be envoked against an Intune managed device, at this stage based upon request from customer’s we’ve implmented a small subnet of actions to gauge the need from our customers, if there are other actions required, please contact us.
-
Trigger a device-sync
-
Trigger a device endpoint update {very limited capabilities}
-
Trigger a device shutdown
-
Trigger a device wipe
-
Trigger a device remote lock
From the list of commands above in the link it can be seen that via a Context Server Actions {CSA}, any actions in theory can be sent via the Extension to Intune. Below are some examples of building out the CSA’s for the action’s supported.
Before configuring the CSA, you must configure a basic Context-Server pointing to the Extension IP-Address, pay specific attention to theServer Base URl of http://Extension_IP_address . Note that it is not https, after this configure the individual CSA’s shown below. in our working example 172.17.0.4 is the IP-address of the Intune extension, your IP will likely differ.
Next create the Context-Server-Actions.
Creating the remoteLock Action CSA
Depending on the action, there are several steps to check/configure.
Firstly, ensure the required permission in Azure have been configured. The permission to run the actions is additional to the base permission required to ingest the endpoint data. For example; reviewing the remoteLock actions from the link supplied above shows that a specific GraphAPI permissions is required.
TIP
Check Appendix F for details about permissions required for the application. We have a detailed breakdown of permissions needed for each use case. Only enable the appropriate permissions as required by your setup.
So be sure to add the permissions as necessary as per the above;
It likely after adding the new permission you’ll see a warning messages like below;
Ensure that you “Grant admin consent for XXXXX”, for the permission that was just added.
Once this above step is complete, you’ll see a message indicating success and the permission grant will change as shown below.
Following the configuration of the Context-Server and the configuration in Azure, configure the CSA in ClearPass.
Configure the CSA, chose the Context-Server previously configured {172.17.0.4 in our example}, configure as a POST, set Authentication Method equal to None and set the URL as /device/remoteLock/%{Connection:Client-Mac-Address-Hyphen}
Then the CSA needs to be added to a Enforcement Profile, configure it as the below as a post_authentication session-notification, then this can be added to an existing enforcment-policy rule.
When this is run succesfully in the Extension the following logs can be seen;
[2020-09-01T21:06:36.809] [INFO] Intune - [/device/remoteLock/:mac] request received from ::ffff:172.17.0.1.
[2020-09-01T21:06:37.023] [DEBUG] Intune - Request “GET ‘/endpoint’” took 213 ms.
[2020-09-01T21:06:38.091] [DEBUG] Intune - Request “POST ‘/deviceManagement/managedDevices/94ee89b5-55b0-4635-9f74-1f732dac8497/remoteLock’” took 1.067 Seconds.
[2020-09-01T21:06:38.091] [INFO] Intune - The action “remoteLock” was sent to Intune for device 94ee89b5-55b0-4635-9f74-1f732dac8497.
INFO
Based on customer feedback, if the NAD device deployed is not sending the framed IP address in the accounting packets, the “Post_Authentication Type” based enforcement profile does not get triggered/applied for the endpoint. A workaround for this to remove the dependency on the framed IP address in accounting is to use “HTTP Type” based enforcement profile instead to trigger the post authentication.
Creating the deviceShutdown Action {requires Supervised Mode on endpoint}
Configure the CSA as a POST, set Authentication Method equal to None and set the URL as /device/shutDown/%{Connection:Client-Mac-Address-Hyphen}, this CSA can then be attached to a enforcement-profile, which can then ultimatly be added to a service-policy to be triggered under certain matching conditions.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – List of all available Intune Attributes
“Source”:“Intune”,
“Intune Last Updated”:“2020-08-24 22:51:00”,
“Intune ID”:“04bbcce0-07bb-4c88-a3bb-c88a123abcb0c”,
“Intune User ID”:“abaf94ff-b6b3-1a2b-5e6f-19581de12345”,
“Intune Device Name”:“Danny’s iPhone”,
“Intune Managed Device Owner Type”:“personal”,
“Intune Enrolled Date Time”:“2019-02-06T21:33:29.6217769Z”,
“Intune Last Sync Date Time”:“2019-07-20T21:38:23.0716346Z”,
“Intune Operating System”:“iOS”,
“Intune Compliance State”:“noncompliant”,
“Intune Jail Broken”:“False”,
“Intune Management Agent”:“mdm”,
“Intune OS Version”:“12.3.1”,
“Intune Eas Activated”:true,
“Intune Eas Device ID”:“12345445XXX0B396FFF642NOG3C”,
“Intune Eas Activation Date Time”:“2019-02-06T21:34:08.5872874Z”,
“Intune Azure AD Registered”:true,
“Intune Device Enrollment Type”:“userEnrollment”,
“Intune Azure AD Device Id”:“7a80afd3-aabb-1234-9acf-83f987654321”,
“Intune Device Registration State”:“registered”,
“Intune Device Category Display Name”:"",
“Intune Is Supervised”:false,
“Intune Exchange Last Successful Sync Date Time”:“0001-01-01T00:00:00Z”,
“Intune Exchange Access State”:“none”,
“Intune Exchange Access State Reason”:“none”,
“Intune Remote Assistance Session Url”:"",
“Intune Remote Assistance Session Error Details”:"",
“Intune Is Encrypted":true,
“Intune User Principal Name”:“dannyjump@clearpassyeahbaby.onmicrosoft.com”,
“Intune Model”:“iPhone X”,
“Intune Manufacturer”:“Apple”,
“Intune IMEI”:“351234567890154321”,
“Intune Compliance Grace Period Expiration Date Time”:“2020-05-10T11:15:10.1451Z”,
“Intune Serial Number”:“G6TWXXYXYZXYZXYZ”,
“Intune Phone Number”:"+*******9748”,
“Intune User Display Name”:“Danny Jump”,
“Intune Wi Fi MAC Address”:“a056f38cc6be”,
“Intune Subscriber Carrier”:“AT&T”,
“Intune MEID”:"",
“Intune Total Storage Space in Bytes":251419164672,
“Intune Free Storage Space in Bytes":211984318464,
“Intune Managed Device Name”:“dannyjump_IPhone_2/6/2019_9:33 PM”,
“Intune Partner Reported Threat State”:“unknown”
Appendix F – SCEP Certificate Configuration Profile
This appendix provides an example of how to create a SCEP certificate configuration profile for a specific device type, such as Windows, in Intune. Configuration profiles for other device types are done in a similar fashion. For reference, Microsoft provides the following useful guides:
Create and assign SCEP certificate profiles in Intune
https://docs.microsoft.com/en-us/mem/intune/protect/certificates-profile-scep
Configure and use PKCS certificates with Intune
https://docs.microsoft.com/en-us/mem/intune/protect/certificates-pfx-configure
Windows Device Configuration Profile
The first step is to create a “Trusted certificate” configuration profile for Windows devices with the following properties:
Upload certificate file from your own implemented CA (e.g. AD CS).
The next step is to create a “SCEP certificate” configuration profile for Windows devices with the following properties:
The configurations settings for this profile are as follows:
It is important to reference the Device ID in the Subject alternative name.
The Root certificate refers back to the “Trusted certificate” profile done in the first step.
When the endpoint authenticates with ClearPass, the Access Tracker details can be inspected to ensure that the Device ID is present in the SAN URI attribute of the certificate as shown below:
If a real-time query is being implemented via HTTP authorization source, make sure to reference the Subject alternative name URI attribute in the filter query as shown in Figure 27.
Appendix G – Permissions needed for the Entra ID Application
The complete list of permissions required by the Entra Application for Intune integration is listed below:
GroupMember.Read.All
Directory.Read.All
User.Read.All
Device.Read.All
DeviceManagementManagedDevices.ReadWrite.All (Post Auth)
DeviceManagementManagedDevices.PrivilegedOperations.All (Post Auth)
DeviceManagementManagedDevices.Read.All
INFO
Note that depending upon your use case and workflows, you might only need a subset of these permissions. The table listed below breaks down the permissions required by different use cases. Please enable only the ones required in your setup.
| Use Case | Usage | Permission | URL |
|---|---|---|---|
| Fetch Intune user group membership | config.enableUserGroups GET '/groupsByMac/:mac' GET '/groupsByUserId/:userId' |
GroupMember.Read.All | https://learn.microsoft.com/en-us/graph/api/group-list?view=graph-rest-1.0&tabs=http |
| Real time call to fetch Intune user group membership | GET '/realtimeGroupsByUserId/:userId' GET '/realtimeGroupsByMac/:mac' GET '/realtimeUserGroup/:macOrSanUri' |
Directory.Read.All | https://learn.microsoft.com/en-us/graph/api/user-list-memberof?view=graph-rest-1.0&tabs=http |
| Real time call to fetch Intune user transitive group membership | GET '/realtimeTransitiveGroupsByUserId/:userIdOrSanUri' | User.Read.All | https://learn.microsoft.com/en-us/graph/api/user-list-transitivememberof?view=graph-rest-1.0&tabs=http |
| Real time call to fetch Intune user group membership | GET /realtimeGroupsById/:id | Device.Read.All | https://learn.microsoft.com/en-us/graph/api/device-list-memberof?view=graph-rest-1.0&tabs=http |
| Real time call to fetch Intune device group membership | GET '/realtimeDeviceGroup/:sanUri' GET '/realtimeGroupsByDeviceId/:deviceId' |
Device.Read.All | https://learn.microsoft.com/en-us/graph/api/device-list-memberof?view=graph-rest-1.0&tabs=http |
| Real time call to fetch Intune device transitive group membership | GET '/realtimeTransitiveGroupsById/:id' | Device.Read.All | https://learn.microsoft.com/en-us/graph/api/device-list-transitivememberof?view=graph-rest-1.0&tabs=http |
| Real time call to fetch Intune device transitive group membership | GET '/realtimeTransitiveGroupsByDeviceId/:deviceId' GET '/realtimeTransitiveDeviceGroup/:sanUri' |
Device.Read.All | https://learn.microsoft.com/en-us/graph/api/device-list-transitivememberof?view=graph-rest-1.0&tabs=http |
| Trigger action from ClearPass to Intune | POST '/device/sync/:macOrSanUri' POST '/device/shutDown/:macOrSanUri' POST '/device/wipe/:macOrSanUri' POST '/device/remoteLock/:macOrSanUri' |
DeviceManagementManagedDevices.ReadWrite.All DeviceManagementManagedDevices.PrivilegedOperations.All |
https://learn.microsoft.com/en-us/graph/api/intune-devices-manageddevice-get?view=graph-rest-1.0&tabs=http |
| Trigger action from ClearPass to Intune | POST '/device/update/:macOrSanUri' | DeviceManagementManagedDevices.ReadWrite.All | https://learn.microsoft.com/en-us/graph/api/intune-devices-manageddevice-update?view=graph-rest-1.0&tabs=http |
| Fetch information about a specific device from Intune | GET '/realtimeTransitiveDeviceGroup/:sanUri' GET '/realtimeDeviceGroup/:sanUri' GET '/device/info/:mac' GET '/device/info/id/:managedDeviceIdOrSanUri' |
DeviceManagementManagedDevices.Read.All | https://learn.microsoft.com/en-us/graph/api/intune-devices-manageddevice-get?view=graph-rest-1.0&tabs=http |
| Fetch information about a specific device from Intune using Entra Device ID | GET '/device/info/:mac' GET '/device/info/id/:managedDeviceIdOrSanUri' |
DeviceManagementManagedDevices.Read.All | https://learn.microsoft.com/en-us/graph/api/intune-devices-manageddevice-list?view=graph-rest-1.0 |
| Fetch list of devices periodically | config.enableSyncAll GET '/realtimeManagedDevices' |
DeviceManagementManagedDevices.Read.All | https://learn.microsoft.com/en-us/graph/api/intune-devices-manageddevice-list?view=graph-rest-1.0 |
| Fetch list of devices periodically | GET '/realtimeDevices' | Device.Read.All | https://learn.microsoft.com/en-us/graph/api/device-list?view=graph-rest-1.0&tabs=http |
1.5.5 - VMware Workspace ONE (Airwatch)
Introduction and Overview
With the extension-based integration we receive information associated with the endpoints in real time rather than relying on a poll interval like how we used to integrate with Vmware Workspace ONE earlier using Endpoint Context Servers. Hence, upon device enrollment/unenrollment, Workspace ONE triggers a webhook which will be consumed by a ClearPass service running in the cloud. The extension installed within ClearPass for this integration maintains a persistent connection with this service and immediately writes the updated information in the ClearPass endpoint repository. This integration is an enhancement that leverages an extension. The events for which the real time updates can be sent via webhook are configurable in Workspace ONE. Following are a list of the events we support today.
-
Device enrollment
-
Device unenrolled/ Enterprise wipe
-
Device compromised/ Status changed
-
Device Delete
To summarize, the endpoint repository continues to be used as an Authorization source, but the information is updated in real time hence allowing an administrator to create more accurate policies. Without integration with the extension, ClearPass would only get the latest information based on the polling interval. The default value of this polling interval is 60 minutes. It could be set to a lower value {under guidance from HPE Aruba Networking} depending on the number of endpoints to be fetched and varies based on the environments.
Version History
This integration is implemented through ClearPass Extensions which run independent of the ClearPass platform version. Hence extensions can be updated and released outside of ClearPass release cycles. Updates are done with backwards compatibility in mind and any breaking changes would be called out in this tech note. Extensions are validated against the latest instance of Workspace ONE and unless explicitly noted here, should be compatible with all supported Workspace ONE releases.
What’s new in Workspace ONE v6.6 Extension? – Important Changes
Workspace ONE release v6.6.0 adds support for OAuth 2.0 in addition to the previous API key based approach. Workspace ONE extension now supports using OAuth 2.0 client credentials for API authentication.
Three additional extension configuration attributes have been added to support OAuth: clientId, clientSecret and tokenEndpoint. Details about configuring OAuth credentials both on Workspace ONE and ClearPass extension is documented under the respective configuration sections below.
INFO
Note that the airWatchApiKey and OAuth credentials are both supported. If both user credentials (airWatchUser and Password) and OAuth credentials are given, OAuth credentials would be used.
What’s new in Workspace ONE v6 Extension? – Important Changes
-
Workspace ONE release v6.2.0 supports an additional knob in the extension configuration called “airWatchExtensiveSearch” which if set to true makes use of the /extensivesearch API replacing the default /search API call during the periodic polls. When set to false the default /search API is used for the periodic polls.
Some environments require both wired and wireless mac addresses in the ClearPass endpoint repository for endpoints which use both the NICs and tend to switch from wireless to wired and vice-versa. The expectation is that both the interfaces are authenticated before allowing access to the network. In such cases it is necessary that both the interface mac addresses are available in the ClearPass endpoint repository to be able to check for the attributes when evaluating policies for the endpoint to allow the right access.
Addition of this configuration knob solves this problem however one should be mindful that setting “airWatchExtensiveSearch” to true fetches limited number of attributes to work from for an endpoint and can be a limitation for few environments though the attributes which are missed by enabling this configuration knob are not very widely used. This is currently a limitation on Workspace ONE API’s and once /search is worked upon or any new API is introduced to add both the mac addresses with the most complete information returned as attributes then we will implement it on our side which will eliminate the need to choose from enabling or disabling airWatchExtensiveSearch.
A copy of attributes fetched when “airWatchExtensiveSearch” is set to true and a copy of attributes fetched when “airWatchExtensiveSearch” is set to false is given in Appendix D.
INFO
Extension upgrade from the ClearPass Guest UI retains the configuration for minor version upgrades. However, it does not incorporate any new configuration fields added to the new version. Therefore, new fields like “airWatchExtensiveSearch”: true, will need to be added manually in the config.
-
With the release of Workspace ONE v6.1.0 we now support authenticated webhooks hitting ClearPass from a customer’s tenant. This eliminates the risk of any unauthorized webhook event being processed by ClearPass. Workspace ONE now supports sending authenticated webhook events by introducing a username and password field in the event notification section. This means that every webhook event sent by Workspace ONE is hashed using these configured credentials and ClearPass would be able to decrypt the webhook events when it has the same credentials configured in the extension as shown below.
Any webhook event which does not include the authentication header from Workspace ONE will not be processed by ClearPass if the extension is configured with a username and password. ClearPass would also not process any events from Workspace One when there is a mismatch in the configured username and password on Workspace ONE and ClearPass extension.
The following are the two config knobs that needs to be added in the extension (not available in the default config setting) to support authenticated webhook events from Workspace ONE.
“skyhookAuthorizationUsername”:
“skyhookAuthorizationPassword”:
Sample extension configuration with the new skyhook credential attributes:
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“skyhookTenant”: “”,
“skyhookAuthorizationUsername”: “”,
“skyhookAuthorizationPassword”: “********”,
“dbAccessToken”: “********”,
“airWatchHost”: “”,
“airWatchUser”: “”,
“airWatchPassword”: “********”,
“airWatchApiKey”: “********”,
“clientId”: “abacxxxxxxxxxxxxxxxxxxxxx”,
“clientSecret”: “********”,
“tokenEndpoint”: “https://na.uemauth.workspaceone.com/connect/token",
“airWatchExtensiveSearch”: false,
“enrollmentRetries”: 3,
“enrollmentWaitTimer”: 5,
“toggleEndpointStatus”: false,
“enableOutOfComplianceDisconnect”: false,
“enableOutOfComplianceReconnect”: false,
“enableCompromisedDisconnect”: false,
“enableCompromisedReconnect”: false,
“enableEndpointCache”: false,
“endpointCacheTimeSeconds”: 300,
“syncAllOnStart”: false,
“enableSyncAll”: false,
“syncAllSchedule”: “*/15 * * * *”,
“syncUpdatedOnly”: true,
“syncPageSize”: 50,
“includeSecurityInfo”: false,
“attributePrefix”: “”,
“bypassProxy”: false,
“enableStats”: false,
“statsUsername”: “”,
“statsPassword”: “********”
“skyhookAuthorizationUsername”: “testuser”,
“skyhookAuthorizationPassword”: “********"
}
-
To address “Android 12 Day Zero Support with Microsoft Endpoint Manager“ like hurdles and be prepared for client vendors restricting MDMs from reading the MAC address from the clients and any upcoming compliance requirements to use certificate-based authentication and expose endpoint information only based on some MDM specific attributes unlike MAC address and serial numbers, we have also added the support to able to query endpoint information from Workspace ONE using the Device UDID attribute.
This is achieved by adding a real time HTTP AuthZ source which reads the Device UDID attribute from the certificate passed during the EAP-TLS authentication and fetches the endpoint attributes from Workspace ONE in real time. For endpoints which don’t reveal their MAC addresses the extension would not be able to sync those endpoints as they wouldn’t have a valid MAC address to add in the endpoint repository. Hence, using certificate-based authentication with Device UDID as the certificate CN name is the workaround for devices which does reveal their MAC addresses.
With the real time HTTP AuthZ source added to the ClearPass service addresses this caveat and we can fetch the attributes from Workspace ONE to be able to evaluate them in the ClearPass enforcement policies and Role Mappings. We will see some more details and sample configuration later in this document.
Pictorial View of the Integration
The diagram below shows a pictorial overview of the components and how they interact with each other.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Configuration Steps
There are primarily 3 steps involved in getting this integration configured.
-
Register and request for a Skyhook tenant
-
Configuration of VMware Workspace ONE for Integration
-
Installation and Configuration of the Workspace ONE extension using the GUI in ClearPass.
Register for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
Kindly copy the skyhookTenant, dbAccessToken and the Target URL in a text file. This will be used for configuration of the extension in ClearPass Policy Manager as well as configuring the tenant details on Workspace ONE UEM.
Configuring Workspace ONE for ClearPass Integration
INFO
Setup and configuration of Workspace ONE UEM is beyond the scope of this guide. Here we specify the steps necessary to configure the integration.
Below are the configuration steps to follow.
Getting API Credentials
Login to the Workspace ONE UEM tenant, using your administrator credentials.
Create a new administrator account for this integration.
Navigate to Accounts > Administrator > List View > Add > Add Admin.
Specify the mandatory fields below and create a user. It is not recommended to use the default admin account for this integration for security reasons.
When creating this user, one can specify the role associated with the user. Use “Device Manager” role or any custom role that gives device information access via the REST API.
The credentials of the account created can be used as “airwatchUser” and “airwatchPassword” in the ClearPass extension configuration.
Getting REST API key
Go to “Groups & Settings” > All Settings.
Navigate to System > Advanced > API > REST API.
To add a new API service.
-
Select “Override” as the Current Setting.
-
Set “Enable API Access” to “Enabled**”**.
-
Click on +ADD box to add a new service account. This should generate the API Key.
-
Set the Service name to something that can be identified later like “ClearPass Extension**”**.
-
Set the Account Type to “Admin**”**.
-
Copy the API Key. This will be used as “airwatchApiKey” for the ClearPass extension configuration.
-
-
Ensure you Save your changes.
Configuring OAuth 2.0
Extension version 6.6.0 introduces support for OAuth 2.0 for API authentication. First we need to create an admin role that provides read access to the API client.
On Workspace ONE, navigate to Accounts > Administrators > Admin Roles > Add Role
Enable “read” access to the following:
API > REST Device Management > Compliance Device Management > Device Details Device Management > Devices List View Groups
Next, to create OAuth 2.0 credentials, navigate to Groups&Settings > Configurations > OAuth Client Management > Add and register a new OAuth client referencing the Role that was created previously
Upon saving the this, the OAuth Client ID and secret would be displayed. Store them somewhere safe since the credentials cannot be viewed again later.
These credentials now can be used within the extension configuration as described in the extension configuration section.
Also make a note of the base URL for UEM token service for each environment as shown below. This is also required in the extension configuration.
Configuring Event Notifications
Go to “Groups & Settings” > All Settings.
Navigate to System > Advanced > API > Event Notifications.
Click on + ADD RULE to add the events that the ClearPass skyhook needs to be notified for.
The Event Notification window helps to specify the Target Name and the Target URL. The Target URL contains the skyhook tenant that was granted to you at the time of the request in “Step I: Register and Request for a Skyhook Tenant ID**”**. The email received should consist of the Target URL to be used.
The Username and Password field could be left blank. However, for secure and authenticated webhook events from Workspace ONE to ClearPass a username and password should be configured at both ends (ClearPass and Workspace ONE). Username and password at both sides should be same so that events hashed using the username and password on Workspace ONE can be decrypted by the ClearPass extension.
Select the Format as JSON.
INFO
The attempt to “TEST CONNECTION” will be unsuccessful in this scenario.
Finally, scroll down under the “Events” section and specify the events for which we require a real time update from Workspace ONE.
Currently ClearPass has added support for the following events.
-
Device Enrollment
-
Device Unenrolled Enterprise Wipe
-
Device Wipe
-
Device Compromised Status Change
-
Device Compliance Status Change
-
Device Delete
-
Device Attribute Change - Ownership
These are essentially the events which are leveraged within ClearPass Policy Manager to define policies and hence requires a real time update for accurate policy enforcement.
Once the required events are Enabled, Save the changes.
Workspace ONE Extension Configuration
The default configuration used for the extension is below
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“skyhookTenant”: “”,
“skyhookAuthorizationUsername”: “”,
“skyhookAuthorizationPassword”: “********”,
“dbAccessToken”: “********”,
“airWatchHost”: “”,
“airWatchUser”: “”,
“airWatchPassword”: “********”,
“airWatchApiKey”: “********”,
“clientId”: “abacxxxxxxxxxxxxxxxxxxxxx”,
“clientSecret”: “********”,
“tokenEndpoint”: “https://na.uemauth.workspaceone.com/connect/token",
“airWatchExtensiveSearch”: false,
“enrollmentRetries”: 3,
“enrollmentWaitTimer”: 5,
“toggleEndpointStatus”: false,
“enableOutOfComplianceDisconnect”: false,
“enableOutOfComplianceReconnect”: false,
“enableCompromisedDisconnect”: false,
“enableCompromisedReconnect”: false,
“enableEndpointCache”: false,
“endpointCacheTimeSeconds”: 300,
“syncAllOnStart”: false,
“enableSyncAll”: false,
“syncAllSchedule”: “*/15 * * * *”,
“syncUpdatedOnly”: true,
“syncPageSize”: 50,
“includeSecurityInfo”: false,
“attributePrefix”: “”,
“bypassProxy”: false,
“enableStats”: false,
“statsUsername”: “”,
“statsPassword”: “********”
Each of the attributes are explained in the table below in detail.
Workspace ONE specific extension configuration attributes
| Configuration attribute | Description | Default Values |
|---|---|---|
| includeSecurityInfo | Not supported as of 6.0.2. Planned for later releases. | NA |
| skyhookTenant | The Skyhook tenant ID received in the registration email. | Null |
| dbAccessToken | The access token for Skyhook received in the registration email. | Null |
| airWatchHost | The URL/FQDN for Workspace ONE instance | Null |
| airWatchUser | The Workspace ONE account username who has access to the device information using the APIs. | Null |
airWatchPassword
|
The Workspace ONE account password for the user who has access to the device information using the APIs. | Null |
| airWatchApiKey | Allows access to Workspace ONE REST APIs. | Null |
| clientId | OAuth Client ID | Null |
| clientSecret | OAuth Client Secret | Null |
| tokenEndpoint | Value of this field is derived from the UEM token service base URL as {base-url}/connect/token | Null |
| airWatchExtensiveSearch | Fetches both wired and wireless mac address of an endpoint if set to true | false |
enrollmentRetries
|
During the enrollment process, if there is no MAC Address found, retry X number of times to wait for a MAC Address. | 3 |
| enrollmentWaitTimer | The delay between retries when attempting to get a MAC Address. | 5 |
| toggleEndpointStatus | When a device is unenrolled, if set to true, the endpoints status will be set to "Unknown". | false |
| enableOutOfComplianceDisconnect | When true and “Compliance Status Changed” event is received with state “non-compliant” active session disconnect is issued to the endpoint if exists in ClearPass | false |
| enableOutOfComplianceReconnect | When true and “Compliance Status Changed” event is received with state “Complaint” active session disconnect is issued to the endpoint if exists in ClearPass | false |
| attributePrefix | Add prefix to endpoint attributes to be able to identify attributes synced from two parallel extension instances. | Null |
| enableCompromisedDisconnect | When true and “Compromised Status Changed” event is received with state “false” active session disconnect is issued to the endpoint if exists in ClearPass | false |
| enableCompromisedReconnect | When true and “Compromised Status Changed” event is received with state “true” active session disconnect is issued to the endpoint if exists in ClearPass | false |
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
A copy of the VMware Workspace ONE Extension with the desired configuration is shown below, this has to be modified for your deployment. Include the skyhookTenant, dbAccessToken, airwatchHost, airwatchApiKey, airwatchUser, airwatchPassword that will be specific to your environment.
Change or include any other values based on the description of each in the above table
Select Restart and click on Save Changes to restart the extension.
After the configuration and the restart of the extension, click on Show Logs
The above log states that the extension has established a successful connection to skyhook and ready to ingest events from Workspace ONE in real time.
Sample Events
In this section we look at some sample events. The logs have been enabled in DEBUG mode for details.
Device Registration
As soon as a device enrolls with Workspace ONE, it triggers a webhook which is consumed by ClearPass using extensions. In this scenario the Event Type triggered is ‘Enrollment Complete’.
Once the extension gets the device ID using webhook, it will trigger an API call into Workspace ONE to get all details associated with the device since the webhook triggered does not send all the details. These details are then copied into the endpoint database in ClearPass.
[2022-08-08T10:10:39.355] [INFO] WorkspaceONE - New event received -N8ww1-fB5v8oNlvVKKP.
[2022-08-08T10:10:39.381] [DEBUG] WorkspaceONE - Event Details: {“body”:{“EventId”:170,"EventType”:“Enrollment Complete”,“DeviceId”:37971,“DeviceFriendlyName”:“Android_BND-AL10_866676030046304”,“EnrollmentEmailAddress”:“bikki.gupta@nacsecurity.com”,“EnrollmentUserName”:“bikki”,“EventTime”:“2022-08-08T10:11:22.7859476Z”,“EnrollmentStatus”:“Enrolled”,“CompromisedStatus”:””,“CompromisedTimeStamp”:“2022-08-08T10:11:24.5384903Z”,“ComplianceStatus”:“PendingComplianceCheck”,“PhoneNumber”:"",“Udid”:“6780aead7ae0df2c298c6dd8da3a9dc3796894d59f”,“SerialNumber”:“P2L4C17B14003317”,“MACAddress”:“1044008DB104”,“DeviceIMEI”:“866676030046304”,“EnrollmentUserId”:84707,“AssetNumber”:“6780aead7ae0df2c298c6dd8da3a9dc3796894d59f”,“Platform”:“Android”,“OperatingSystem”:“9.0.0”,“Ownership”:“EmployeeOwned”,“SIMMCC”:"",“CurrentMCC”:"",“OrganizationGroupName”:“HPE Aruba Networking”,“DeviceUUID”:“90b60c2b-5e1b-4646-b5fc-6c27a8d03469”,“EnrollmentUserUUID”:“7d9222d6-0fa1-44e6-b205-8d9415f111a6”}
Compliance Status Change
This event is triggered immediately after a device is enrolled and performs its first compliance check. It is also triggered if Workspace One detects a change in the compliance status of the device. Again, the webhook sends us the Device ID which is used by the extension to trigger an API call on Workspace ONE and get more information about the device. Once the device lookup is completed, the extension writes the attributes into the ClearPass endpoint repository.
[2022-08-08T10:16:23.912] [INFO] WorkspaceONE - New event received -N8wxL7kBfy8abbqcy0F.
[2022-08-08T10:16:23.940] [DEBUG] WorkspaceONE - Event Details: {“body”:{“EventId”:184,“EventType”:“Compliance Status Changed”,“DeviceId”:37971,“DeviceFriendlyName”:“Android_BND-AL10_866676030046304”,“EnrollmentEmailAddress”:“bikki.gupta@nacsecurity.com”,“EnrollmentUserName”:“bikki”,“EventTime”:“2022-08-08T10:17:08.4541214Z”,“EnrollmentStatus”:“Enrolled”,“CompromisedStatus”:"",“CompromisedTimeStamp”:“2022-08-08T10:17:08.9987884Z”,“ComplianceStatus”:“NonCompliant”,“PhoneNumber”:"",“Udid”:“6780aead7ae0df2c298c6dd8da3a9dc3796894d59f”,“SerialNumber”:“P2L4C17B14003317”,“MACAddress”:“1044008DB104”,“DeviceIMEI”:“866676030046304”,“EnrollmentUserId”:84707,“AssetNumber”:“6780aead7ae0df2c298c6dd8da3a9dc3796894d59f”,“Platform”:“Android”,“OperatingSystem”:“9.0.0”,“Ownership”:“EmployeeOwned”,“SIMMCC”:"",“CurrentMCC”:"",“OrganizationGroupName”:“HPE Aruba Networking”,“DeviceUUID”:“90b60c2b-5e1b-4646-b5fc-6c27a8d03469”,“EnrollmentUserUUID”:“7d9222d6-0fa1-44e6-b205-8d9415f111a6”}
Once the compliance check on the device is finished, the endpoint table on ClearPass gets updated with the device information as shown below
MDM Unenroll
Once the Device Management profile is deleted from the managed endpoint, it would trigger a webhook for the event type captured below.
[2022-08-08T10:46:19.457] [INFO] WorkspaceONE - New event received -N8x3BW3pJCnSFA2VfAV.
[2022-08-08T10:46:19.483] [DEBUG] WorkspaceONE - Event Details: {“body”:{“EventId”:39,"EventType":“Break MDM Confirmed”,“DeviceId”:37971,“DeviceFriendlyName”:“Android_BND-AL10_866676030046304”,“EnrollmentEmailAddress”:"",“EnrollmentUserName”:"",“EventTime”:“2022-08-08T10:47:05.8870115Z”,“EnrollmentStatus”:“Unenrolled”,“CompromisedStatus”:"",“CompromisedTimeStamp”:“2022-08-08T10:47:06.7020299Z”,“ComplianceStatus”:“NotAvailable”,“PhoneNumber”:"",“Udid”:“6780aead7ae0df2c298c6dd8da3a9dc3796894d59f”,“SerialNumber”:“P2L4C17B14003317”,“MACAddress”:“1044008DB104”,“DeviceIMEI”:“866676030046304”,“EnrollmentUserId”:0,“AssetNumber”:“6780aead7ae0df2c298c6dd8da3a9dc3796894d59f”,“Platform”:“Android”,“OperatingSystem”:“9.0.0”,“Ownership”:“EmployeeOwned”,“SIMMCC”:"",“CurrentMCC”:"",“OrganizationGroupName”:“HPE Aruba Networking”,“DeviceUUID”:“90b60c2b-5e1b-4646-b5fc-6c27a8d03469”,“EnrollmentUserUUID”:""}
This results in change of the attribute ‘MDM Enabled’ to ‘false’. ‘Let’s look at the attributes changed for the endpoint in the endpoint database.
The above attributes can be used in the ClearPass Policy Manager to ensure devices with “MDM Enabled = false” are either quarantined, or forced into a captive portal role or denied access.
Device Deletion
In this scenario, a device that was added previously by polling was deleted from Workspace ONE. This triggered a “Delete Device Requested” event.
[2022-08-08T10:39:54.674] [INFO] WorkspaceONE - New event received -N8x1iZIl4iM6fukq4PM.
[2022-08-08T10:39:54.702] [DEBUG] WorkspaceONE - Event Details: {“body”:{“EventId”:662,“EventType”:“Delete Device Requested”,“DeviceId”:37899,“DeviceFriendlyName”:“BGHOME”,“EnrollmentEmailAddress”:“bikki.gupta@nacsecurity.com”,“EnrollmentUserName”:“bikki”,“EventTime”:“2022-08-08T10:40:39.2698451Z”,“EnrollmentStatus”:“Unknown”,“CompromisedStatus”:null,“CompromisedTimeStamp”:“0001-01-01T00:00:00”,“ComplianceStatus”:null,“PhoneNumber”:null,“Udid”:“8D667CAA15ACCD48B785A104031DE3A0”,“SerialNumber”:“M4N0CX12R927169”,“MACAddress”:null,“DeviceIMEI”:null,“EnrollmentUserId”:0,“AssetNumber”:"",“Platform”:null,“OperatingSystem”:null,“Ownership”:null,“SIMMCC”:null,“CurrentMCC”:null,“OrganizationGroupName”:null,“DeviceUUID”:"",“EnrollmentUserUUID”:""},“headers”:{“x-aw-event-version”:“1”,“X-Clearpass-SourceIp”:“44.231.1.105”}}
This again results in change of the attribute “MDM Enabled” to false. Starting with V2 of the WorskspaceOne Extension a device deletion will also toggle the Known/Unknown status of the endpoint, the allows for ClearPass housekeeping to remove devices from the EndpointDb. This is an optional configuration switch.
A sample Enforcement Policy that can be used is shown here for reference. This may completely vary based upon the requirements of the customer.
Real Time Authorization Lookup
As discussed in the “What’s new in Workspace ONE v6 Extension” section of the document we can leverage the HTTP AuthZ source to fetch endpoint attributes from Workspace ONE using the extension in real time. Due to restrictions on the client side where the MAC address is not exposed to the MDM and the extension is not able to sync these endpoints to the endpoint repository, this is an alternate way to fetch the endpoint attributes which are used in the enforcement policy to assign the right roles as per the MDM assigned attributes to the endpoints.
However, this method is not just limited to one use case. As discussed earlier if there are any compliance requirements from MDM in the future to use certificate-based authentication and expose endpoint information only based on some MDM specific attributes (unlike MAC address and serial numbers) then we can also use this method to fetch attributes from Workspace ONE using the Device UDID attribute. This attribute can be injected in the CN field of the certificate using the certificate request templates in Workspace ONE. The extension supports querying endpoints to Workspace ONE using either MAC address or the Device UDID attribute.
Step I: Certificate template configuration
Configuring the Workspace ONE certificate template to use Device UDID in CN name field of the certificate when requesting certificate to the SCEP server.
Go to Group & Settings > All Settings > Enterprise Integration > Certificate Authorities and click Add.
Choose the applicable Authority type and fill in rest of all the mandatory fields and click Save. In this example we have used ClearPass Onboard CA as the SCEP server so the selection for Authority Type in this case is “Generic SCEP. For details on Certificate Authorities and Request templates refer ‘Certificate Authority Integrations’ in VMware Workspace ONE UEM Product Documentation.
Next, go to Group & Settings > All Settings > Enterprise Integration > Certificate Authorities> Request Templates and click Add.
Set the Certificate Authority from the drop down created in the last step. Set the Subject Name to be CN={DeviceUid} as shown below and fill in the rest of the mandatory fields and click on Save.
Step II: Enabling SCEP server in ClearPass Onboard CA.
INFO
This step is optional and is required only if ClearPass is used as a SCEP server for enrolling clients
For enabling SCEP server on the Onboard CA Login to the Onboard module from ClearPass Login Page. Go to Onboard > Certificate Authority > Create a new certificate Authority or edit an existing one if you would like to use an existing Certificate Authority.
Under the SCEP Server select the “Enable access to the SCEP server” check box. Type a SCEP Secret and click on Save Changes.
The shown SCEP URL will need to be entered in the ‘SCEP URL’ field and SCEP Secret in the ‘Static Challenge’ field with challenge type set to Static while adding the Certificate Authority in Workspace ONE if ClearPass Onboard CA is used as the SCEP server.
For more details on Onboard CA Authorities and enabling SCEP refer the ClearPass documentation.
Step III: Adding HTTP AuthZ source in ClearPass
Go to Configuration > Authentication > Sources and Click Add.
Give a name to the Auth source, Select ‘HTTP’ from Type dropdown and click Next.
This will advance to the Primary Tab which requires connection details. Here an internal POST is made to the extension. The extension then calls Workspace ONE APIs to fetch the attributes associated with the endpoint.
The Base URL is http://<Extension IP>/. The extension IP can be seen by going to the Guest module under Administration > Aruba Integrations > Extensions.
Enter the Workspace ONE extension IP address in the Base URL field and click Next.
Under the attributes tab, Click on Add more Filters.
Enter the Filter Name and Filter Query as shown in the below figure. We had earlier configured the Workspace ONE certificate request template to use Device UDID in the CN field of the certificate. This query will read the Device UDID attribute from CN field whenever a client presents the EAP-TLS certificate during authentication.
You can choose to add the attributes to be used for AuthZ as needed. Here we have used the WorkspaceONE Compliance, Enrollment Status and Compromised attributes to be fetched as our AuthZ attributes.
Save and Click Next. You will now see a summary page of the configured AuthZ source, Click on Save.
Add this AuthZ source in the service where Workspace ONE managed endpoints authenticate using EAP-TLS method.
INFO
This will make real time API queries for every endpoint authenticating on this service. It is not necessary to use the same service for endpoints which the extension has synced to the endpoint repository and for endpoints which could not be synced due limitations discussed around endpoints not exposing mac address e.g android devices. The way to segregate which clients need a real time lookup for AuthZ and which do not will vary for different deployments.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – Sample attributes from VMware Worskspace One
When airWatchExtensiveSearch is set to true:
| "Source" | "WorkspaceONE", |
|---|---|
| "WorkspaceONE UDID" | "8D667CAA15ACCD48B785A104031DE3A0", |
| "WorkspaceONE UUID" | "ea6019a9-f592-41f9-8340-24c796fd02a6", |
| "WorkspaceONE Owner" | "bikki", |
| "WorkspaceONE Device ID" | "40848", |
| "WorkspaceONE Compliance" | "NotAvailable", |
| "WorkspaceONE Compromised" | "false", |
| "WorkspaceONE Last Update" | "2023-04-27 14 |
| "WorkspaceONE MDM Enabled" | "true", |
| "WorkspaceONE Last Check In" | "2023-04-27 14 |
| "WorkspaceONE Serial Number" | "M4N0CX12R927169", |
| "WorkspaceONE MDM Identifier" | "8D667CAA15ACCD48B785A104031DE3A0", |
| "WorkspaceONE Enrollment Status" | "Enrolled", |
| "WorkspaceONE Device Friendly Name" | "B07D64852C5D-BG", |
| "WorkspaceONE Enrollment User Name" | "bikki" |
When airWatchExtensiveSearch is set to false:
| "Source" | "WorkspaceONE", |
|---|---|
| "WorkspaceONE UDID" | "8D667CAA15ACCD48B785A104031DE3A0", |
| "WorkspaceONE UUID" | "ea6019a9-f592-41f9-8340-24c796fd02a6", |
| "WorkspaceONE Model" | "VivoBook_ASUSLaptop X571GT_F571GT", |
| "WorkspaceONE Owner" | "bikki", |
| "WorkspaceONE Group ID" | "9835", |
| "WorkspaceONE Platform" | "WinRT", |
| "WorkspaceONE Device ID" | "40848", |
| "WorkspaceONE Ownership" | "Undefined", |
| "WorkspaceONE Compliance" | "Compliant", |
| "WorkspaceONE Group Name" | "HPE Aruba Networking", |
| "WorkspaceONE Is Roaming" | "false", |
| "WorkspaceONE Compromised" | "true", |
| "WorkspaceONE Last Update" | "2023-04-27 14 |
| "WorkspaceONE MAC Address" | "Bxxxxx5D", |
| "WorkspaceONE MDM Enabled" | "true", |
| "WorkspaceONE Last Check In" | "2023-04-27 14 |
| "WorkspaceONE Serial Number" | "M4N0CX12R927169", |
| "WorkspaceONE MDM Identifier" | "8D667CAA15ACCD48B785A104031DE3A0", |
| "WorkspaceONE Operating System" | "10.0.22621", |
| "WorkspaceONE Enrollment Status" | "Enrolled", |
| "WorkspaceONE Is Network Tethered" | "false", |
| "WorkspaceONE Device Friendly Name" | "B07D64852C5D-BG", |
| "WorkspaceONE Enrollment User Name" | "bikki", |
| "WorkspaceONE Is Device DND Enabled" | "false", |
| "WorkspaceONE Is Cloud Backup Enabled" | "false", |
| "WorkspaceONE Enrollment Email Address" | bikki.gupta@hpe.com, |
| "WorkspaceONE Is Device Locator Enabled" | "false", |
| "WorkspaceONE Is Activation Lock Enabled" | "false", |
| "WorkspaceONE System Integrity Protection Enabled" | "false" |
1.5.6 - Ivanti MDM (formerly MobileIron)
Introduction
MobileIron Cloud is now branded as Ivanti Neurons for MDM and MobileIron Core is branded as Ivanti Endpoint Manager Mobile. ClearPass uses a single extension for both cloud and core platforms and hence the extension is named Ivanti MDM (formerly MobileIron On-Prem & Cloud).
Version History
This integration is implemented through ClearPass Extensions which run independent of the ClearPass platform version. Hence extensions can be updated and released outside of ClearPass release cycles.
What’s new in v4 Extension? – Important Changes
Version 4.0 is the new publicly available version, and it will have the following additional functionality:
-
Ivanti MDM extension v4 supports lookup based on Device Identifier or Device GUID, which removes the dependency on internal identifiers, such as serial numbers, which are not consistently accessible. It also eliminates MAC address identifiers, which are problematic because devices can have multiple or randomized MAC addresses.
-
Ivanti MDM extension v4 adheres to the main requirement to use certificate-based authentication (e.g., EAP-TLS) with the new service. In conjunction with this, it is required to include the Device Identifier or Device GUID in the subject alternative name (SAN) of your certificate profiles. Please refer to Onboard Certificate Enrollment for more details on SCEP certificate profile configuration.
-
Ivanti MDM extension v4 is built on a revamped underlying Extension framework which aims to standardize common configuration parameters across multiple extensions.
-
Extension v4 also has updates to branding from MobileIron to IvantiMDM. The default endpoint attribute prefix will also be “IvantiMDM” starting with extension v4. Existing deployments moving from v1 to v4, please follow the guidance given under attributePrefix extension configuration if you wish to continue using MobileIron as attribute prefix.
What’s new in v1 Extension? – Important Changes
Version 1.0 of the extension provides two key features.
-
Added support for MobileIron Cloud. MobileIron Cloud has not been previously supported, this extension adds support for Cloud version R50 and above.
-
Support for Common Platform Services Event Notifications. This provides for a near-real-time notification feed as discussed below, to allow ClearPass to maintain an up-to-date view of the managed devices, without the need to constantly poll. This is supported in MobileIron Cloud starting in R50 and in MobileIron Core starting in 9.5.
Note that ClearPass has supported MobileIron Core for several years, our support for this does not change. This Extension however can complement an existing MobileIron Core deployment or it can possibly replace it if the version of Core in 9.5 or greater and thus supports the Common Platform Services.
API Product |
MI API’s supported | Native ClearPass Polling | Native ClearPass Polling + Extension CPS API [Hybrid deployment] | MobileIron Extension CPS API |
|---|---|---|---|---|
| Pre-Core 9.5 | V1 | Yes | Yes* | No |
| Core 9.5 + | V1 + CPS | Yes | Yes | Yes |
| Cloud R50 + | CPS | No | No | Yes |
INFO
For the Pre-Core 9.5 in Hybrid mode, only the Native ClearPass Polling API V1 are supported, the CPS API’s are not available in the pre 9.5 Core so adding the Extension to add real-time updates is not supported.
As discussed, the Extension has the ability to ingest endpoint attributes (Core 9.5+ & Cloud R50+) and to receive a near real-time [typically circ. 5 seconds] feed of changes within the customer’s MobileIron tenant. There are five use-cases where ClearPass receives a real-time event notification.
-
A New Device Added
-
A Device Retired/Deleted
-
A Device changes state to “out of Compliance”
-
A Device changes state to “in Compliance”
-
A Device is Wiped
When one of the above events occurs, MobileIron places an event notification in a messages queue, all ClearPass nodes that are subscribed for that event, would then receive that message, afterwards, that message is purged from the system.
If no active ClearPass nodes are available to consume the message, the message is published to the messaging server, the message would be retained in the system for a maximum duration of 3 hours before it either gets consumed by a re-connecting ClearPass node or gets deleted out of the system.
In comparison, the legacy approach [still available] is to poll the tenant every hour and ingest all of the endpoint data, then update the delta changes into the EndpointDB. The obvious issue with the legacy approach is that if a device goes out of compliance, ClearPass won’t know of the state change until the next poll. Similarly, if a new device is added, typically the access-policy is that when a SmartDevice accesses the network, ClearPass checks to ensure it’s a known managed device. In the legacy approach access would be denied until the next poll had completed. Utilizing the full polling capabilities in conjunction with the event notifications allows a near real-time local view of all of the managed Endpoints.
Below, we cover installation and configuration of the extension, configuration within MobileIron, and finally ClearPass configuration. Additionally, we document a solution which allows a device to be ‘tagged’ as in or out of compliance. This creates an event notification and allows for testing of the end-to-end workflow.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
After the extension has been installed, proceed to configure Ivanti MDM and ClearPass.
A copy of the default Ivanti MDM Extension is shown above, this will need to be modified for your deployment.
Configuring the Ivanti MDM Extension
It is important to set the configuration within the Extension to meet your needs. The extension can be configured to sync data in multiple ways as well as be used as a “real-time” authorization to Ivanti MDM. As shown on the previous page there are several parameters required to configure this version. Not all switch settings need to be set but some are mandatory. We have divided the parameters into two tables, one for Ivanti MDM Extension-specific configuration parameters and the other for Extension framework configuration parameters that are common across multiple vendor Extensions.
Ivanti MDM specific extension configuration attributes
| Attribute | Description | Values/Examples |
|---|---|---|
| ivantiMDMUrl | URL to access the cloud / core Ivanti MDM instance | https://XXXXX.mobileiron.com |
| ivantiMDMUserName | Username used to make API calls against Ivanti MDM | cppm-api@XXXX.com |
| ivantiMDMPassword | Password corresponding to the API username | XXXXXXXXXXX |
| syncPageSize | The page size used when puling data from Ivanti MDM | 50 |
| enableMqtt | This setting enables processing of MQTT messages from Ivanti MDM | true |
| mqttUrl | URL from which Ivanti MDM would send MQTT updates (Common Platform Services Notification) | ssl://queue-XXXXX.mobileiron.com:8883 |
| mqttUserName | Username which has Common Platform Services Notification enabled | cppm-api@XXXX.com |
| mqttPassword | Password corresponding to mqttUserName | XXXXXXXXXXX |
| toggleEndpointStatus | If a device is Wiped or Retired, toggle the endpoint status from "Known" to "Unknown" | true |
Mandatory fields are: ivantiMDMUrl, ivantiMDMUserName, ivantiMDMPassword
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
INFO
There are changes in syntax for the sync parameters in Ivanti MDM Extension v4 due to updates in the underlying extension framework.
Configuration of syncAllSchedule is covered in more detail in Appendix C at the end of this documentation, this is used to control the frequency of when the sync process runs. syncUpdatedOnly when set to true, will only ingest changes for managed endpoints. syncAllOnStart determines if when the extension is started or restarted should it immediately run the sync process or wait until the syncAllSchedule job is run.
The two values of enableEndpointCache and endpointCacheTimeSeconds are specifically used in conjunction with the extension is used as an Authorization source to retrieve real-time data for a known endpoint. If using the Extension in combination as discussed later with a HTTP authorization source which needs to do lookup based on Ivanti MDM Device ID / GUID as following:
-
GET /?identifier=:identifier
-
GET /?identifier=:deviceGuid&identifierType=GUID
Then these switches will ensure that if the extension is asked to refresh data, it will check the endpointCacheTimeSeconds to decide if the data current held is fresh or stale.
Leave syncPageSize, verifySSLCerts and logLevel at their default else otherwise advised.
An example of an Ivanti MDM extension configuration is below. Include appropriate values for your environment based on the information gathered before, select Restart and click on Save Changes to start the extension.
The configuration item “attributePrefix” controls the prefix that is added to the endpoint attributes fetched from Ivanti MDM and subsequently used in policy conditions. If you already have MobileIron v1 and is looking to update to latest version of the extension, you can configure attributePrefix as “MobileIron” so that extension will continue to use the same prefix as before. If this is a new deployment or if you wish to switch to new attribute prefix, you can leave the attributePrefix empty as shown below so that ClearPass will use “Ivanti MDM” as prefix for endpoint attribute names.
Following the restart, click on “Show Logs”. If contact is made, and access is granted based upon the configuration above with your Ivanti MDM credentials, you should see something similar to shown below:
Ivanti MDM Configuration – Common Platform Services [CPS]
Below we cover the configuration required in the Ivanti MDM environment. To aid the configuration of the extension it helps to collect several items from the Ivanti MDM tenant. Within the configuration, there are two username/password combinations required. They are covered below.
Account Creation
Ivanti MDM-Tenant-Credentials: The first pair
[ivantiMDMUserName/ivantiMDMPassword] is used by the extension to
communicate with the Ivanti MDM instance for calling API’s that allow
the extension to retrieve all the endpoint data that is then populated
into the ClearPass EndpointDB. For the Ivanti MDM-
Tenant-Credentials, it is suggested that an account be created in
Ivanti MDM dedicated for this function. These credentials can be an
Administrator account, but it’s recommended that a new account with the
“Device Registration” role be used. To create the account. Users ->
+Add
Then select the API User and enter username and password to create the user.
Once the user account has been created, select it to view details and ensure the user has ‘Device Registration’ role assigned.
Ivanti MDM-MQTT-Credentials: The second pair [mqttUserName/mqttPassword] is used by the extension to communicate with the Ivanti MDM Common Platform Services. This service sends the real-time-notifications. It is possible to use the same account as above or a separate account. If using the same account, ensure that the Common Platform Services role has been added to the user account. In the Roles tab, click on Actions -> Assign Roles
Next add the role to the user. Note, to add the role Common Platform Services scroll down as highlighted below to locate the role. Select the role, and Next.
Click Done to complete adding the role
Enabling CPS framework
Following the creation of the accounts If the near-real-time event notification is to be used, then there are additional configuration steps required. To configure and enable the CPS Event Notifications follow the below steps. Navigate to the Admin > System > Common Platform Services Notification. Click on Common Platform Services Notification toggle button and enable the service.
If the CPS role has not been added to an existing user, then create a new CPS user and assign CPS role to this new user.
Manually triggering an event
Here are specific instructions showing an example of how use custom attributes and compliance policy to force devices in and out of non-compliant state: This section allows for the creation of an event to test the end-to-end workflow of the system.
A good use case would be to toggle a value of a custom attribute (say, nacCompliant) for devices which have moved out of compliance from true to false and then, use the attribute to take actions on the device. There are multiple ways to force compliance actions on the device to render it non-compliant. Please refer the below steps:
1: Create a compliance action policy: Navigate to Policies on the admin portal menu bar and click on Add
2: Add policy rule/definition to determine the criteria for a device going non-compliant: Click on “Custom Policy” option to create a custom compliance action policy.
Choose a custom policy rule: Enter a policy name and create a criteria query to specify policy rule, E.g. If the device ownership is ‘User Owned’ or the device OS is type ‘Android’ mark it as non-compliant and click Next.
3: Distribute the policy to all devices and click Done
4: Perform state changes on the device to match the criteria, this would mark the device non-compliant, in which case, device_not_compliant events would be triggered e.g., Changing device ownership to ‘User Owned’ and initiate force check-in and device sync.
Change an endpoint attribute to trigger an event notification – part1
Some sample policy rules affecting large enclosure of devices at once might not be recommended.
-
OS is iOS
-
Last check-in is 10 hrs. ago
-
Ownership Type is ‘User Owned’
5: To bring the device back to compliance, either perform reverse device state changes or delete the compliance action policy and initiate force-sync on devices.
ClearPass Policy Manager Configuration
The final part is the configuration on ClearPass Policy Manager. Depending on how you use the integration will ultimately define how you configure the interaction between Ivanti MDM and the ClearPass Extension and Policy Manager.
If you plan on using the extension to interface with Ivanti MDM, then configure the extension and its associated polling. Following this, configuring ClearPass Policy Manager configuration is no different in how you would authenticate and authorize any other device, it’s really about how you use the endpoint database attributes in your authorization policy checks.
If you plan on using the extension to complement the existing Ivanti MDM Endpoint Context Server polling, then overall this is a hybrid deployment. Using the built-in polling to ingest the endpoint details once per day in addition to using the extension to ‘trickle-feed’ changes into the endpoint-database as they happen. This hybrid deployment can remove the need for the lengthy polling; however, we still recommend a poll be run once per day.
When mac randomization is enabled, MAC address based lookups cannot be done against endpoint database. Android OS also stopped sharing MAC Address with MDM solutions like Ivanti MDM. Hence there is a need to fetch device attributes based on a unique identifier other than MAC Address. Ivanti MDM extension v4 has the ability to lookup device information based on either Device Identifier or Device GUID. This is a real time lookup by using the unique device identifier embedded within device certificate. Within the certificate, the identifier can be embedded either as CN or as one of the Subject Alt Name fields like Subject-AltName-URI.
Regardless of which deployment you configure, as noted above the power of the integration is how you use the endpoint data base attributes. Here are a few simple examples.
To add, a little more clarity, if a device is retired from within Ivanti MDM then the endpoint status flag is set accordingly. Within your enforcement policy you need to add a rule {#1} as shown above, where, when the status of the endpoint is set as RETIRED, the enforcement action would be to Deny Access. This can be adjusted to fit your own needs, as an example if you detected a device trying to access the network which has been deleted/retired from the system, you may want to have a workflow that drops the device into a captive portal role which directs the user to contact the helpdesk for assistance.
HTTP Authorization Mode
To complete the configuration to use the Extension as a ‘real-time’ authorization source, configure an HTTP authorization source within ClearPass. With Ivanti MDM as an authorization source to the extension, ClearPass can receive the latest data from the Ivanti MDM platform for devices based on Device Identifier or Device GUID. This is more real-time but consideration needs to be made relative to the number of API calls that would be made.
Click on Next. This will advance to the Primary Tab provide the connection details.
INFO
The Base URL IP address is the IP address of Ivanti MDM extension.
Set the Base URL as http://ip_of_the_extension/ and pay special attention to HTTP not HTTPS, and also the addition of “/” in the path. It is mandated that a Login Username/Password is entered, but it is not used, so this can be set to anything.
Click on “Next”. This will advance you to the Attributes Tab where you need to provide the authorization attributes. Click on “Add More Filters”. Provide a Name for the filter and then a Filter Query. It’s extremely important that the Filter Query is defined correctly. This is the query string that is sent to the Ivanti MDM extension asking for context about the endpoint. The query is indexed off either the Device Identifier or the GUID in the certificate of the authenticating endpoint. For completeness, the Filter Queries are provided here. Depending upon the type of lookup you want to do, select the appropriate filter and copy it carefully.
| Device Identifier lookup | %{Certificate:Subject-CN} |
|---|---|
| Device GUID lookup | %{Certificate:Subject-CN}?identifierType=GUID |
Next build out the definitions of the attributes that will be returned from the Filter Query. These attributes will subsequently be used within our policy-evaluation and ultimately the enforcement policy applied. You can choose whatever attributes you want to be exposed under authorization based upon what you list here. A complete list is available in Appendix A, the first fields in BOLD listed in Appendix A translate to the fields you can enter when configuring the query results, a short example is below.
INFO
If you have configured a custom value for “attributePrefix” in extension configuration, replace “Ivanti MDM” with the custom string in the Name and Alias Name fields shown above.
Once the HTTP authorization source is defined you can use the returned attributes in your policy processing. As an example, lets view the returned attributes from the above from an authentication request in access-tracker.
Below can be see the result of a real-time query from Ivanti MDM based upon the attributes configured in the authorization source above, this data has been returned and is available to the policy at authentication time.
Onboard Certificate Enrollment
Managed devices should also be configured to authenticate securely to the network. EAP-TLS is considered the most secure authentication method available due to mutual authentication using digital certificates. Ivanti MDM configuration profiles help setup fully automated enrollment workflows. ClearPass Onboard CA can be used as certificate issuing authority with provisioning done using Simple Certificate Enrollment Protocol (SCEP). The steps below show how to setup SCEP enrollment against Onboard CA. Note that Onboard CA can be setup either as root or intermediate.
First, we need to enable SCEP enrollment for ClearPass Onboard CA. Navigate to ClearPass Onboard > Certificate Authorities > Click on the CA you want to enable SCEP for > Edit > Check the box to enable SCEP server as shown below.
Select SCEP secret as validation method and add a SCEP shared secret.
After saving the changes, click on the CA again > Trust Chain > Download Bundle to download as a .pem file. We will be uploading this certificate to the SCEP profile in Ivanti MDM later.
On Ivanti MDM, navigate to Configurations and add a new profile:
Search for certificate and select “Identity Certificate” profile:
Configure SCEP profile as shown below:
Once the SCEP profile is setup, you can create a WiFi profile to use the client certificate for EAP-TLS authentication
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – List of all available Ivanti MDM Attributes
Ivanti MDM OS: OSX
Ivanti MDM UDID: DD1A8DDE-DDD2-5041-AC94-6655A6459D98
Ivanti MDM Model: MacBookAir6,2
Ivanti MDM Status: ACTIVE
Ivanti MDM Blocked: true
Ivanti MDM User ID: matt@bbqlabs.net
Ivanti MDM Compliant: false
Ivanti MDM Ownership: Unknown
Ivanti MDM User UUID: 8d1f27a2-6341-48be-97fc-8ff85fa5ef21
Ivanti MDM OS Version: 10.13.5
Ivanti MDM Compromised: false
Ivanti MDM Device GUID: cb806490-360f-4b1b-abc6-13a07aa3c1b2
Ivanti MDM Last Update: 2022-11-02 09:47:58
Ivanti MDM MAC Address: 5c:f9:38:98:7d:2c
Ivanti MDM MDM Enabled: true
Ivanti MDM Quarantined: true
Ivanti MDM Manufacturer: Apple Inc.
Ivanti MDM Last Check In: 2022-10-14 14:59:26
Ivanti MDM Serial Number: C02LM1HMF6T6
Ivanti MDM MDM Identifier: DD1A8DDE-DDD2-5041-AC94-6655A6459D98
Ivanti MDM Registration Date: 2022-10-13 21:39:22
1.5.7 - Mosyle
Introduction and Overview
Mosyle provides two different solutions: Manager and Business. Starting from v2 of the Extension, we’ve added support for Mosyle Business which complements our initial support for Mosyle Manager.
Mosyle Manager was designed exclusively for K-12 schools and districts to incorporate education-focused features and hierarchy, with areas for students, class periods and course information. It also integrates directly with Apple School Manager. In addition, Mosyle Manager will offer Classroom Management capabilities, so teachers can manage student-device interactions within the classroom.
Mosyle Business, on the other hand, was built for enterprise and higher education institutions, and it will have a different hierarchy, as well as integrate with both Apple Business Manager and Apple School Manager. It allows companies to experience the most secure and compliant experience when automating and managing Apple devices to their end-users to be more productive at work.
This integration guide covers the deployment and configuration of ClearPass Policy Manager to interface with Mosyle.
It provides the ability to pull all device details from a customer tenant into ClearPass endpoints database. The contextual data inserted into Policy Manager can then be leveraged to drive granular access policy.
Pictorial View of the Integration
The diagrams below show pictorial overview of the components and how they interact with each other.
The primary workflow in the integration has ClearPass periodically syncing devices from Mosyle to its endpoint database.
There is also an advanced use case where a context server based dynamic lookup can be used to fetch the updated attributes for a device from Mosyle if the entry in endpoint repository is not up to date.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Mosyle Extension Configuration
The default configuration used for Extension is below
{
“logLevel”: “INFO”,
“verifySSLCerts”: true,
“mosyleHost”: “”,
“mosyleEmail”: “”,
“mosylePassword”: “********”,
“accessToken”: “********”,
“isMosyleBusiness”: false,
“osTypes”: [
“ios”,
“mac”,
“tvos”
],
“dataColumns”: [
“deviceudid”,
“wifi_mac_address”,
“ethernet_mac_address”,
“os”,
“device_name”,
“device_model”,
“device_type”,
“model_name”,
“osversion”,
“status”,
“is_supervised”,
“is_deleted”,
“date_checkin”,
“date_info”
],
“enableEndpointCache”: true,
“endpointCacheTimeSeconds”: 300,
“syncUpdatedOnly”: true,
“syncAllOnStart”: true,
“enableSyncAll”: true,
“syncAllSchedule”: “0 2 * * 6”,
“enableStats”: true,
“statsUsername”: “”,
“statsPassword”: ""
}
Each of the attributes are explained in the table below in detail.
Mosyle specific extension configuration attributes
| Configuration | Description | Example/Values |
|---|---|---|
| mosyleHost | Mosyle Host URL. ClearPass automatically chooses between Mosyle Manager and Business URLs depending upon the value of “ isMosyleBusiness” attribute. This field is now optional and can be used to override the default URLs used by ClearPass. |
managerapi.mosyle.com businessapi.mosyle.com |
| mosyleEmail | Email of administrative user in Mosyle Business | Administrator username {added in V3 of the extension} |
| mosylePassword | Password associated with Mosyle email account | Administrator password {added in V3 of the extension} |
| accessToken | Token to access Mosyle API | 000000 |
| isMosyleBusiness | Determines if the Extension is communicating with Mosyle Manager or Mosyle Business and uses the appropriate host URL | true or false {added in V2 of the extension} |
| dataColumns | Specify what information to be synced from Mosyle system. For all, enter “*” | device_name, device_model |
| osTypes | Specify OS types to be fetched from Mosyle system. | ios, mac, tvos |
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
INFO
Starting in V2 of the Extension, support for Mosyle Business was added. This additional support added one new switch in the Extension configuration, isMosyleBusiness, which is a boolean true or false option and very self-explanatory, finally one other very important configuration option, see below.
The selection of whether you are using the Extension to communicate with Mosyle Manager or Mosyle Business will also automatically set the value for attribute mosyleHost. You can also override this value if the URL has changed.
| Configuration Deployment Mode | Value for mosyleHost |
|---|---|
| Mosyle Manager | managerapi.mosyle.com |
| Mosyle Business | businessapi.mosyle.com |
INFO
The V3 extension added additional configuration attributes like syncUpdatedOnly and enableEndpointCache. With syncUpdatedOnly, only the endpoints updated since the last sync are fetched from Mosyle. With enableEndpointCache, authorization queries use the cached endpoint attributes, thus reducing database / API queries and optimizing policy evaluation performance.
V3 extension also added two configuration attributes mosyleEmail and mosylePassword which are used with Mosyle Business for API authentication in addition to the accessToken.
When leveraging the sync capabilities of the Extension to get the device attributes from Mosyle, enable syncAllSchedule. This attribute is leveraged for periodic sync of endpoints from Mosyle.
INFO
When used in conjunction with “syncUpdatedOnly”, you can now configure the sync interval to be more aggressive than the default of once a week. For example, to have the “updated” endpoints sync every 30 minutes, you can use the following cron syntax.
“syncAllSchedule”: “0/30 * * * *”,
The syncAllOnStart attribute can be leveraged as well to sync all devices upon the start or re-start of the extension. Note that first time sync of all the devices could take a long time to complete and can be resource intensive.
A copy of the Mosyle Extension with the desired configuration is shown below, this has to be modified for your deployment. Include accessToken, dataColumns, osTypes, mosyleEmail and mosylePassword that will be specific to your environment.
Change or include any other values based on the description of each in the above table. Select Restart and click on Save Changes to restart the extension.
After the configuration and the restart of the extension, click on Show Logs.
The above log shows that the Extension has synced the endpoint data from Mosyle. The above steps sync endpoint details at the time of starting the Extension and then regular updates are fetched at the interval specified by syncAllSchedule. Please note the IP address of the Extension. This will be used in the next section where we leverage the Mosyle attributes during enforcement. A sample of endpoint attributes fetched are shown below.
Multiple use-cases exist for how the data that is returned from Mosyle can be used in the Policy enforcement. In the example below, we are performing multiple checks:
-
Check if the device’s status is valid. If it is not, redirect it to the captive Portal. Create a helpdesk ticket for remediation.
-
If the device is deleted in Mosyle, create a helpdesk ticket.
-
If the device is not supervised by Mosyle, put it in the Quarantine VLAN.
-
Check when the device last checked-in with Mosyle. If the device has not checked in for certain number of days, flag it and redirect it to the Captive Portal.
Different companies will have different enforcement profiles and policies. The key takeaway here is to leverage the attributes received from Mosyle to drive the policy engine into making different enforcement actions for the device as they authenticate on the network.
Mosyle Real Time Authorization
We can also add the Mosyle extension as an Endpoint Context Server to fetch latest device information if it is not already present in endpoint repository. This is useful when the context has changed in Mosyle and we want to ensure that ClearPass fetches the latest state for authorization.
If using EAP-TLS authentication where client certificates contain the DeviceUDID attribute, we can use a device ID based context server action. The old method of pulling context information from Mosyle using the client MAC Address is still available. EAP-TLS with device ID is the preferred way to fetch device information dynamically. However, for organization that have not yet completed the process of deploying EAP-TLS, client MAC Address based workflow can still be used.
First step is to add Mosyle extension as an Endpoint Context Server as shown below.
Depending upon whether we want to use device ID or calling station ID based lookup, we can define the required Context Server Action under Administration > Dictionaries > Context Server Actions.
Set the HTTP Method to GET. There is no additional configuration required in Header, Content and Attributes tab.
Set the HTTP Method to GET. There is no additional configuration required in Header, Content and Attributes tab.
Mosyle configuration
It is assumed that a working Mosyle environment is leveraged for this extension. The configuration of Mosyle is beyond the scope of this guide.
Available Data Fields
There is a wide range of available information from the Mosyle system. By default, we only pull a subset of the fields, but you can add or change them using the dataColumns configuration value. If you wish to include all fields simply add an asterisk ("*") to the dataColumns list.
If the “is_deleted” field is true we will set the ClearPass Endpoint status to “Unknown”. For all other endpoints the status will be “Known”.
All fields added to endpoints are prefixed with “Mosyle “, for example, “Mosyle is_deleted”.
Below are the available data fields:
deviceudid, total_disk, os, serial_number, device_name, device_model, battery, osversion, date_info, carrier, roaming_enabled, isroaming, imei, meid, available_disk, wifi_mac_address, bluetooth_mac_address, is_supervised, date_app_info, date_last_beat, date_last_push, status, isActivationLockEnabled, isDeviceLocatorServiceEnabled, isDoNotDisturbInEffect, isCloudBackupEnabled, IsNetworkTethered, needosupdate, productkeyupdate, device_type, lostmode_status, is_muted, date_muted, activation_bypass, date_media_info, tags, is_deleted, iTunesStoreAccountHash, iTunesStoreAccountIsActive, date_profiles_info, ethernet_mac_address, model_name, LastCloudBackupDate, SystemIntegrityProtectionEnabled, BuildVersion, LocalHostName, HostName, OSUpdateSettings, ActiveManagedUsers, CurrentConsoleManagedUser, date_printers, AutoSetupAdminAccounts, appleTVid, asset_tag, ManagementStatus, OSUpdateStatus, AvailableOSUpdates, appleTVid, enrollment_type, userid, date_checkin
Bold fields are required and are always returned.
API Token Creation
To obtain the accessToken, if you are using Mosyle Manager, the API Integration is available for only Mosyle Manager Premium accounts. You can access the API Integration by going to My School > API Integration.
API requests require Admin User Credentials for authorization. You can create an Admin user specifically for the API integration under My School > Administrators and limit the user’s permissions to only API access.
If you are using Mosyle Business, there is a self-service option within the UI. Navigate from the GUI to ‘Organization’, then click on ‘API Integration’ as shown below.
then ‘Add new token’ on the top right-hand-side. Input an appropriate name, perhaps ‘clearpass’.
The token will be created {example below}, record this as it will be shown only once and will be need in the extension configuration under accessToken.
INFO
With the latest update to Mosyle Business, an admin username and password is required along with the Access Token to make API calls. “Require User Credentials” is enabled by default for all new API integrations and cannot be disabled.
There is a wide range of available information from the Mosyle system. By default, we only ingest a subset of the fields, but you can add or change them using the dataColumns configuration value. If you wish to include all fields simply add an asterisk (”*”) to the dataColumns list.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.5.8 - SOTI MobiControl
SOTI MobiControl is the Enterprise Mobility Management (EMM) solution that gives you visibility and control over where your business-critical mobile devices are, what they’re doing, how they’re performing and what security or compliance risks they’re facing.
Deploy apps to smartphones. Enroll and provision new tablets in the field. Track the location of rugged devices. Identify and neutralize security risks to the IoT endpoints. Protect critical data stored on mobile devices. Minimize device downtime so field workers stay productive.
This technote covers how to deploy and configure the ClearPass Extension to interface with SOTI MobiControl MDM.
In this technote we will cover the installation and configuration of the extension for integration between MobiControl and ClearPass Policy Manager. The Extension effectively becomes an authorization source to service policies by utilizing the endpoint context synchronized from SOTI MobiControl.
This extension provides the ability to capture all of the mac-address’s on an endpoint and create corresponding entries in the ClearPass endpoint ensuing that if the devices uses a wires/wireless/dongle to authenticate, ClearPass will have the mac-address of the endpoint such that it can validate it.
Finally, in the extension we expose the ability to add any SOTI MobiControl endpoint attribute required to make your policy complete, add the endpoint attribute and the ClearPass Extension will capture that context and add it automatically to the ClearPass Policy Manager Endpoint DB so it can be used in role-mapping or in an Enforcement Policy.
Pictorial View of the Integration
The extension can be configured in to periodically sync device information from SOTI MobiControl.
In this mode ClearPass polls SOTI MobiControl periodically and updates the ClearPass Endpoint database with attributes obtained from SOTI MobiControl. These attributes can be utilized in ClearPass during endpoint Authorization. This mode has a simpler configuration demand, however, the data provided may not be completely up to date at authentication time.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
ClearPass SOTI MobiControl Integration Extension Configuration
After installing the Extension, the default configuration will need to be updated.
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
SOTI MobiControl specific extension attributes
| Configuration attribute | Description | Example/Values |
|---|---|---|
| sotiHostName | This hostname of the SOTI MobiControl. This will be the URL used by ClearPass to communicate with SOTI MobiControl | |
| sotiClientId | The API Client ID from SOTI MobiControl | |
| sotiClientSecret | The API Client Secret from SOTI MobiControl | |
| sotiUserName | The username of the SOTI MobiControl admin account | |
| sotiPassword | The password for the SOTI MobiControl admin account |
SOTI MobiControl Configuration
This extension communicates with your SOTI MobiControl tenant via publicly exposed and documented API’s. The only configuration needed on SOTI MobiControl is to create an API client.
Adding an API Client
To add an API client, you must have administrative access to the Windows server where MobiControl is hosted. If you are a MobiControl cloud customer, please contact SOTI MobiControl support to add an API client. Please refer to https://www.soti.net/mc/help/v15.5/en/adminutility/tools/restapi.html for additional information.
Configure ClearPass Policy Manager
As mentioned previously, the extension supports only a single mode of use, “Sync endpoint data from SOTI MobiControl into the ClearPass EndpointDb.
Periodic Sync Mode: Using stored attributes
The Extension will sync data from SOTI MobiControl based upon a configurable schedule, write this data into the ClearPass EndpointDB, this data is then used in policy as an authorization source.
INFO
Be aware that this data is not ‘real-time’ and the update frequency would depend on the sync schedule configured in the extension
Here’s an example of a ClearPass Role Mapping Policy that utilizes these SOTI MobiControl Endpoint attributes.
Using the SOTI MobiControl Integration Extension information in a ClearPass Service
Here we will provide more detail on how to incorporate information from the SOTI MobiControl Integration Extension in an existing ClearPass service. We’ll add the Endpoint Database to an existing basic Wired 802.1X service that processes authentications from ArubaOS switches. This service checks Active Directory to set roles, then uses those roles in an enforcement policy to send different RADIUS attributes to the switch. The configuration of your existing policies will likely differ, so please use this appendix as a general guide.
Service Authorization
The first step is to add Authorization to our service by checking the Authorization box on the Service tab. Checking this box makes the Authorization tab visible in the service definition.
Note: your existing services may already have this box checked.
Proceed to the Authorization tab and add the Endpoint Database.
We also added the [Time Source] [Local SQL DB] for evaluating dates and times.
Role Mapping Policy
Our Role Mapping Policy originally only contained the first two lines seen below.
We first created the role names in ClearPass by navigating to Configuration > Identity > Roles. We then added the subsequent lines to the role mapping policy to set roles based on the returned values from SOTI MobiControl. Note this is an evaluate-all Role Mapping Policy, so all matching roles will be applied.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – List of returned SOTI MobiControl endpoint attributes
{
“$type”: “DeviceIos”,
“ActivationLockBypassCode”: null,
“ActivationLockBypassStatus”: “NotApplicable”,
“AgentVersion”: null,
“Memory”: {
“$type”: “Memory”,
“AvailableExternalStorage”: null,
“AvailableMemory”: null,
“AvailableSDCardStorage”: null,
“AvailableStorage”: null,
“TotalExternalStorage”: null,
“TotalMemory”: null,
“TotalSDCardStorage”: null,
“TotalStorage”: null
},
“BatteryStatus”: null,
“BluetoothMACAddress”: null,
“BuildVersion”: null,
“CarrierSettingsVersion”: null,
“CellularCarrier”: null,
“CellularTechnology”: “None”,
“CurrentMCC”: null,
“CurrentMNC”: null,
“DataRoamingEnabled”: false,
“DeviceTerms”: {
“$type”: “DeviceTerms”,
“Status”: 3,
“StatusTime”: “2020-07-27T08:22:20.09Z”,
“StatusVersion”: “1”,
“RuleId”: 9,
“RuleName”: “sample”,
“StatusEnum”: “Accepted”
},
“DeviceUserInfo”: null,
“MultiUserDeviceInfo”: null,
“ExchangeBlocked”: false,
“ExchangeStatus”: “Accepted”,
“FirmwareVersion”: null,
“HardwareEncryptionCaps”: 0,
“HardwareEncryption”: “None”,
“ICCID”: null,
“IMEI_MEID_ESN”: null,
“InRoaming”: null,
“Ipv6”: null,
“IsActivationLockEnabled”: null,
“IsAgentCompatible”: true,
“IsAgentless”: true,
“IsDeviceLocatorServiceEnabled”: null,
“IsDoNotDisturbInEffect”: null,
“IsEncrypted”: false,
“IsEnrolled”: true,
“IsITunesStoreAccountActive”: null,
“IsMDMLostModeEnabled”: null,
“IsOSSecure”: true,
“IsPersonalHotspotEnabled”: null,
“IsSupervised”: null,
“ItunesIdHash”: null,
“LastCheckInTime”: null,
“LastAgentConnectTime”: null,
“LastAgentDisconnectTime”: null,
“LastLoggedOnUser”: null,
“LastStatusUpdate”: “2020-07-27T08:22:43.967Z”,
“ManufacturerSerialNumber”: null,
“ModelNumber”: null,
“ModemFirmwareVersion”: null,
“NetworkConnectionType”: “Unknown”,
“PasscodeEnabled”: false,
“PasscodeStatus”: “Unknown”,
“PersonalizedName”: null,
“PhoneNumber”: null,
“ProductName”: null,
“SIMCarrierNetwork”: null,
“SubscriberMCC”: null,
“SubscriberMNC”: null,
“SubscriberNumber”: null,
“UserIdHash”: null,
“VoiceRoamingEnabled”: false,
“ManagementProfileUpdateTime”: “2020-07-27T08:22:26.06Z”,
“ManagementProfileSigningCertificateExpiry”: “2039-07-15T00:00:00Z”,
“MDMClientCertificateHash”: “BB4D692033D2E33BC7FFE72D9370693B3B98CC51”,
“Kind”: “Ios”,
“ComplianceStatus”: true,
“ComplianceItems”: [
{
“$type”: “ComplianceItem”,
“ComplianceType”: “IsSecured”,
“ComplianceValue”: true
},
{
“$type”: “ComplianceItem”,
“ComplianceType”: “IsDeviceAdmin”,
“ComplianceValue”: null
},
{
“$type”: “ComplianceItem”,
“ComplianceType”: “NotWiped”,
“ComplianceValue”: true
},
{
“$type”: “ComplianceItem”,
“ComplianceType”: “IsEnabled”,
“ComplianceValue”: true
},
{
“$type”: “ComplianceItem”,
“ComplianceType”: “IsEnrolled”,
“ComplianceValue”: true
}
],
“DeviceId”: “00008030-001449C23CA3802E”,
“DeviceName”: “00008030-001449C23CA3802E”,
“EnrollmentTime”: “2020-07-27T08:22:20.073Z”,
“Family”: “Apple”,
“HostName”: null,
“IsAgentOnline”: false,
“CustomAttributes”: [],
“MACAddress”: null,
“WifiMAC”: null,
“Manufacturer”: null,
“Mode”: “Active”,
“Model”: null,
“OSVersion”: null,
“Path”: “\\Theja”,
“Platform”: “iOS”,
“ServerName”: null
}
1.6 - Visitor Management / Webhook Processing
ClearPass integrates with a wide range of Visitor Management solutions for automated guest workflows. Combining ClearPass Guest Management along with these solutions can enhance the user experience by providing seamless visitor solution that automates visitor’s Wi-Fi requirements.
A detailed list of third party interoperability can be found here: https://www.arubanetworks.com/support-services/clearpass-interoperability/
1.6.1 - Envoy
Envoy
This guide covers the setup, configuration, and monitoring of the ClearPass extension for Envoy and the configuration of webhook in Envoy for the Integration with HPE Aruba Networking ClearPass. This guide walks through the v2 of this integration. We will also cover the migration steps from v1 to v2.
INFO
The Envoy v2 integration requires Envoy Enterprise edition.
Envoy Visitors is a visitor management platform for a modern front desk which helps streamline visitor Sign-in. When visitors arrive, Envoy makes it easy for them to Sign-in, presents them with relevant forms where they can provide their information, sign documents (NDAs) and optionally notifies the person they are visiting of their arrival using an Email or SMS.
ClearPass is an industry leading Guest Management solution that delivers secure, automated guest access workflows. It’s very useful for an enterprise to combine these two applications to get a seamless visitor management system that automates visitor’s Wi-Fi requirements.
This Extension serves two primary use-cases
-
Creates a guest account upon Visitor Sign In
-
Disables a guest account upon Visitor Sign Out
With Envoy hosted in the cloud and ClearPass sitting primarily on-prem, there are challenges in making these two applications communicate in real time so that a visitor receives guest Wi-Fi credentials from ClearPass as soon as he registers using Envoy Visitors application. Traditionally the apps would communicate using APIs where an application would request information which is usually followed by a response. Hence in order to get real-time information you have to poll or request as often as possible which is not scalable. The answer or the solution is a webhook which does not wait for a request to send information but sends the data as soon as it’s available.
Before we proceed with the flow, we need to understand the concept of webhooks and skyhook.
What is a webhook?
A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately.
What is skyhook?
Skyhook was developed to overcome the inability for cloud-based applications to send events [webhooks] directly into a ClearPass that was typically deployed on the trust side of a corporate firewall. In short, it is a service that runs in AWS. ClearPass nodes running on-prem, use extensions to open a persistent connection into Skyhook to receive the events originally sent from a 3rd party cloud application specific for that customer/tenant.
As an overview, Envoy running in the cloud will send a webhook upon a Visitor Sign in or a Sign out event. This will communicate with skyhook. The ClearPass extension configured and installed will maintain a persistent connection with skyhook awaiting an event (Sign in/ Sign out).
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Configuration Steps
There are primarily 3 steps involved in getting this integration configured.
-
Register and request for a Skyhook tenant
-
Configuration of Envoy for Integration
-
Installation and Configuration of the Envoy Extension using GUI in ClearPass 6.7.X
It is assumed you have SMTP and SMS configured to allow ClearPass Guest to send visitor account details to the Visitor/Guest.
Step I: Register and Request for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
Kindly copy the skyhookTenant and the dbAccessToken in a text file. This will be used for configuration of the extension in ClearPass as well as configuring the tenant details on the Envoy plugin.
Step II: Configuring Envoy for ClearPass Integration
INFO
Setup and configuration of Envoy is beyond the scope of this guide. Here we specify the steps necessary to configure the integration.
Below are the configuration steps to follow.
- Login to Envoy using your credentials on https://dashboard.envoy.com
Select the Location you wish to integrate with ClearPass as highlighted below**.** Navigate to Integrations and “Install” the ClearPass plugin.
- Once the plugin is installed, click on Configure and follow the steps.
For the first step, copy the Envoy Plugin Install Token. This will be used for the extension configuration in ClearPass to perform health checks.
- For the next step, we need to use the skyhookTenant obtained in Step I from the email in Figure 8. Copy this value in the CLEARPASS TENANTNAME section as shown below.
Ensure that the default URL in the section SKYHOOK API HOST matches with https://skyhook.clearpassbeta.com/api/skyhook/envoy. Do not edit the field if it does or unless instructed by TAC.
- Select the SMS Gateway that will be used to send the credentials to a visitor. We should use ClearPass SMS Gateway as an option here.
INFO
Configuration of ClearPass SMS Gateway and it’s template is beyond the scope of this guide.
The other option is to use the Envoy SMS gateway (using Twilio). The SMS gateway used here uses the SMS template shown in the screenshot. This can be modified as per requirements. For this setup, we are going to use the ClearPass SMS Gateway.
- The last step shows the Status Report of the health checks performed by ClearPass extension.
ClearPass extension sends a health check every 5 minutes using the Envoy Plugin Install token for the given tenant. The statistics associated with this health check are shown here. This will only happen after the installation of the Envoy extension which is covered under the section Step III: Envoy Extension Installation and Configuration. Click on Complete Setup
Step III: Envoy Extension Installation and Configuration
After the extension has been installed, review the extension configuration as necessary and adjust as needed. Notice the options to Start, Delete, Reinstall or Show Logs and the option to review and set the extension configuration.
The default configuration used for extension is below
{
“skyhookTenant”: “0f4cxxxx-xxxx-xxxx-xxxx-2e04897691a8”,
“dbAccessToken”: “********”,
“envoyInstallToken”: “********”,
“countryIsoCode”: “US”,
“phoneNumberField”: “Your Phone Number”,
“cppmDefaultExpiryHrs”: 8,
“cppmGuestRoleName”: “[Guest]”,
“cppmGuestRoleId”: 2,
“cppmGuestSmsReceipt”: true,
“cppmGuestEmailReceipt”: true,
“cppmGuestAccessCode”: false,
“dbLogging”: false,
“logLevel”: “INFO”
}
A copy of the Envoy Extension with the desired configuration is shown below, this will need to be modified for your deployment. Include the skyhookTenant, dbAccessToken and envoyInstallToken that will be specific to your environment. Change any other default values if necessary. Select ‘Restart’ and click on Save Changes to restart the extension.
The table below explains each option with the values and examples required for configuration.
Extension configuration options
| Configuration attribute | Description | Example/Values |
|---|---|---|
| skyhookTenant | The Skyhook tenant ID received in the registration email. | c7xxxxx8-b2b6-4125-9741-cxxxxxxxx38a6 |
| dbAccessToken | The access token for Skyhook received in the registration email. | Long Random string like 7INXYr1YUixxxxxv... |
| envoyInstallToken | The install token from Envoy used for Health Checks to ensure a valid communication channel exists. | f2343xxx-xxxx-xxxx-xxxx-2abd3e415a12 |
| CountryIsoCode | The country code to use for phone number formatitting when the number is not specified in the international format. | US, IN |
| phoneNumberField | The sign-in field from Envoy to use for the visitor phone number. | “Your Phone Number” |
| cppmDefaultExpiryHrs | The default number of hours for an account to be active. | 8 |
| cppmGuestRoleName | The role name to be used in ClearPass Guest when creating the account. This value should match with the cppmGuestRoleId | [Contractor], [Guest], [Employee], Custom Role |
| cppmGuestRoleId | This value sets the role id to use when creating guest accounts | 1 - [Contractor], 2 - [Guest], 3 - [Employee], 4 - Custom Role |
| cppmGuestSmsReceipt | Sets the value of auto_send_sms for ClearPass to send the Guest credentials receipt via SMS | true/false |
| cppmGuestEmailReceipt | Sets the value of auto_send_smtp for ClearPass to send the Guest credentials receipt via SMTP | true/false |
| cppmGuestAccessCode | Enables creation of random codes as Guest Username. If not used the defaul email field is used as username. | true/false |
| dbLogging | Enables advanced logging of skyhook db connection | true/false |
| logLevel | Logging level for troubleshooting | "DEBUG", "INFO", "WARN", "ERROR" |
INFO
Set cppmGuestSmsReceipt value to false if leveraging the Envoy SMS Gateway. This would trigger an SMS using Envoy’s SMS Gateway which leverages Twilio in the backend.
After the configuration and the restart of the extension, click on Show Logs. You should see the following.
The above log states that the extension is now ready to process the events for Envoy.
You can change the logLevel to DEBUG under configuration for detailed logs. These are very useful for troubleshooting and should be included before raising a support case if necessary.
Envoy Sign-in flow
The configuration of Envoy Sign-in form is beyond the scope of this guide however there are a couple of interesting features introduced in Envoy v2 extension which requires us to go through this in brief. These features are not available in v1.
An Envoy Sign-in flow can be configured by selecting the location of your choice and then navigating to Visitors > Settings > Sign-in flow. Click on Sign-in fields.
The v2 extension now allows you to use any custom field as a Phone number field. This gives you the flexibility to change the name of the field displayed on the form. It can now be changed for example to “Mobile Number” or “Cellphone Number” or any other custom label. In v1 this was hardcoded and cannot be changed.
This field is then mapped to visitor_phone field in ClearPass Guest using the extension configuration parameter phoneNumberField as described in the “Extension configuration options” in Figure 19. It allows an administrator to effectively rename this field in Envoy and map the value to visitor_phone field in ClearPass Guest which is then used by ClearPass to SMS the credentials.
Envoy v2 extension can also consume information from other custom fields defined in the form. One can also add a custom field in the Sign-in form the input to which will be captured under the Guest account details within ClearPass. For instance, the custom field “Favourite Drink” is added to this form as shown in the figure. This can be added by clicking “Add a New Field” which is highlighted.
This is captured under Guest account details within ClearPass. Go to Guest > Manage Accounts, select a registered account and click on Show Details.
To add further, you can also use this field for the reports within Insight.
Migration Steps from Envoy v1 to Envoy v2
Envoy v1 was available as a ClearPass extension prior to writing this guide. Customers who already have v1 installed are recommended to move to v2 for performance enhancements. The v2 version of the Extension also provides an additional flexibility in defining custom fields as shown in Figure 22.
Following are the migration steps.
-
Request for a new SkyHook Tenant ID for Envoy v2 integration. The steps for the same are specified in the section “Step I: Register and Request for a Skyhook Tenant ID”.
-
Stop the Envoy v1 extension installed on your ClearPass server. Navigate to ClearPass Guest and go to Administration > Extensions. Click on the Envoy Extension to Stop it as shown below.
-
Install the new Envoy plugin for ClearPass Integration. Use the steps in the section “Step II: Configuring Envoy for ClearPass Integration”.
-
Follow the section “Step III: Envoy Extension Installation and Configuration” to install the new Envoy v2 extension.
-
Test the functionality for few days to ensure it works. If yes, the old extension can be deleted. If no, it can be restarted to ensure no service interruption. Contact support for any further assistance with troubleshooting.
Testing/Demo
Now that the components are all configured and ready to use, let’s walk through the experience from the visitor and administrator perspective. In order to do so, the first step for a visitor is to sign in using the Envoy Visitors app running on an iPad at a reception in the customer setup.
Configuring an iPad to assist customers with registration at front desk is beyond the scope of this document. Essentially, one needs to download the Envoy Visitors app from the appstore and register the device to your Envoy account.
Detailed steps are available here https://dashboard.envoy.com/devices/ipads/new
- Visitor walks up to a tablet used for registration. Every company can personalize the branding by using their logos for the registration pages and email. A simple registration Sign-in page configured for our demo is shown below.
Visitor taps to sign in.
- A first-time visitor is asked to fill the form completely with his details as shown below. The visitor is also asked to select the Sponsor, the person he is visiting. The sponsor is notified via an email/SMS of the visitor’s arrival. We have used basic forms here for demo. These forms are customizable and can be created as per customer requirements.
-
The next steps will ask the visitor to click a picture if configured and then make them digitally sign the required forms like NDA etc. There are several options available for the Sign-in flow on Envoy.
-
Once done, you will see a welcome message. This could be a message, image or a video based on the configuration on Envoy. The customization options are a part of the Sign-in flow. This finishes the registration from a visitor perspective.
-
Visitor should receive an email as well as an SMS with his credentials to login to guest Wi-Fi. Following is the snapshot of the email. Notice the account expiry time is set to 8 hours by default.
You can change the Receipt Template (Guest Manager Receipt) under Configuration > Receipts > Templates.
- After the visit, user can Sign out at the registration desk using the same tablet. Type the first 3 letter of the name used during Sign in and select the user.
Now let’s see what happens in the backend from an administrator perspective.
- Login to ClearPass Guest and go to Manage Accounts under Guest.
The new account has been created upon registration. Note the Expiration time, this should match with the Envoy extension configuration setting for cppmDefaultExpiryHrs. By default, it is set to 8 hours. Another thing to note is the Role which is set to [Guest]. This depends on the extension configuration settings for cppmGuestRoleName and cppmGuestRoleId. This could also be set to a custom Role value if required. The configuration for the same is beyond the scope of this guide.
- If you enable DEBUG and Click on Show Logs under Extension, you should see the following details as a part of the Sign in event.
[2018-10-24T08:10:46.907] [INFO] envoy - [Sign In] The following guest signed in: clearpass.test@gmail.com
[2018-10-24T08:10:46.908] [DEBUG] envoy - Sending health check to https://app.envoy.com/platform/clearpass-staging/sign-in-callback?_juuid=8d089232-c25c-4b57-9aa3-xxxxxxxxxxx
[2018-10-24T08:10:46.908] [DEBUG] envoy - {“status”:“sign-in”,“visitor”:“Test User”,“username”:“clearpass.test@gmail.com”,“password”:30922,“tenant”:“3d72456d-fbd1-49cd-aa08- xxxxxxxxxxx “,“extId”:“313deebb-3807-45ee-ace8-f4e908fc83cb”}
[2018-10-24T08:10:47.373] [DEBUG] envoy - handleEnvoyHealthCheck Response: [202] payload: “ACCEPTED”
[2018-10-24T08:10:47.373] [INFO] envoy - Successfully called Envoy healthcheck
[2018-10-24T08:10:47.373] [DEBUG] envoy - Successfully sent healthcheck update to Envoy.
[2018-10-24T08:10:47.649] [DEBUG] envoy - Successfully deleted transaciton from realtime db.
- Upon Sign out, the visitor account will be disabled. This can be validated under Manage Accounts in ClearPass Guest
-
The user’s Wi-Fi session should also get disconnected automatically upon Sign out. This depends on the policy configured for the Guest SSID. This configuration is beyond the scope of this document.
-
You would see a similar Sign out event in the DEBUG logs.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.6.2 - SinePro
Introduction
This guide covers the setup, configuration, and monitoring of the ClearPass extension for Sine Pro and the configuration of a webhook in Sine Pro for the Integration.
Sine Pro is an easy to use cloud-based visitor management platform. When visitors arrive, Sine makes it easy for them to Check-In and Check-Out, presents them with relevant forms where they can provide their information, sign documents (NDAs) and it optionally notifies the person they are visiting of their arrival.
ClearPass is an industry leading Guest Management solution that delivers secure, automated guest access workflows. It’s very useful for an enterprise to combine these two applications to get a seamless visitor management system that automates visitor’s Wi-Fi requirements.
This Extension serves two primary use-cases
-
Guest account creation upon Visitor Check In
-
Guest account deletion upon Visitor Check Out
With Sine hosted in the cloud and ClearPass sitting primarily on-prem, there are challenges in making these two applications communicate in real time so that a visitor gets guest WiFi credentials from ClearPass as soon as he registers using Sine application. Traditionally the apps would communicate using APIs where an application would request information which is usually followed by a response. Hence in order to get real-time information you have to poll or request as often as possible which is not scalable. The answer or the solution is a webhook which does not wait for a request to send information but sends the data as soon as it’s available.
Before we proceed with the flow, we need to understand the concept of webhooks and skyhook.
What is a webhook?
A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately.
What is skyhook?
Skyhook was developed to overcome the inability for Cloud based applications to send events [webhooks] directly into a ClearPass that was typically deployed on the Trust side of a corporate firewall. In short, it is a service that runs in AWS. ClearPass nodes running on-prem, use extensions to open a persistent connection into Skyhook to receive the events originally sent from a 3rd party cloud application specific for that customer/tenant.
As an overview, Sine Pro running in the cloud will send a webhook upon a Visitor check-in (signin_after) or a check-out (signout_after) event. This will communicate with Skyhook. The ClearPass extension configured and installed will maintain a persistent connection with Skyhook awaiting an event (Check In/ Check Out).
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Pictorial View of the Integration
The diagram below shows a pictorial overview of the components and how they interact with each other.
Configuration Steps
There are primarily 3 steps involved in getting this integration configured.
-
Register and request for a Skyhook tenant
-
Configuration of Sine Pro for Integration
-
Installation and Configuration of the Sine Pro extension using GUI in ClearPass 6.7.X
It is assumed you have SMTP and SMS configured to allow ClearPass Guest to send visitor account details to the Visitor/Guest.
Step I: Register and Request for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
Step II: Configuring Sine Pro for ClearPass Integration
INFO
Setup and Configuration of Sine Pro is beyond the scope of this guide. Here we specify the steps necessary to configure the integration.
The “Email Required” field must be enabled in Sine Pro. This can be accessed from Passes > Check-In Requirements under Settings for individual sites. This email field is mapped to the Guest account username created in ClearPass.
Below are the configuration steps to follow:
- Login to Sine Pro using your credentials on https://dashboard.sine.co
Click on Sites. Select a Site and go to Settings. Navigate to Integrations and add (+) a WebHook.
The screen capture above covers the configuration required in the Sine Pro environment. Following are the values required for the configuration.
- URL: This is the Skyhook Posting URL. The SkyHook Tenant is obtained from the sample email as shown in previous step. Replace the <SKYHOOK TENANT> below to create the URL.
https://skyhook.clearpassbeta.com/api/skyhook/sine**/<SKYHOOK TENANT>**
- API Key: This is a shared key for communication between ClearPass and Sine.
INFO
We recommend using a GUID value or a large random value as the key. You can generate a GUID value here: https://www.guidgenerator.com/ OR a random value here: https://www.random.org/bytes/
-
External ID: This can be left blank as it is not used currently. It will automatically pick the default value.
-
Visitor Types: You could choose these based on your requirement however, in current versions of ClearPass all Visitor Types will be mapped to a Guest role on ClearPass by default.
-
Events: “signin_after” is a mandatory event that has to be selected. It is strongly recommended to select both the events “signin_after” and “signout_after” to complete the guest sign in workflow.
-
Status: Ensure the status is enabled.
Step III: Sine Pro Extension Installation and Configuration
The default configuration used for extension is below
{
“skyhookTenant”: “27f80f8aaaea8974d9c7ca43e69xxxxb5xxxx85910”,
“dbAccessToken”: “********”,
“sineApiKey”: “********”,
“cppmDefaultExpiryHrs”: 8,
“cppmGuestRoleName”: “[Guest]”,
“cppmGuestRoleId”: 2,
“cppmGuestSmsReceipt”: true,
“cppmGuestEmailReceipt”: true,
“dbLogging”: false,
“logLevel”: “INFO”
}
A copy of the Sine Pro Extension with the desired configuration is shown below, this will need to be modified for your deployment. Include the skyhookTenant, dbAccessToken and sineApiKey that will be specific to your environment. Change any other default values if necessary. Select ‘Restart’ and click on Save Changes to restart the extension.
The table on the next page explains each option with the values and examples required for configuration.
Extension Configuration options
| Configuration attribute | Description | Example/Values |
|---|---|---|
| skyhookTenant | The Skyhook tenant ID received in the registration email. | 27f80f8aaaea8974d9c7ca43e69xxxxb5xxxx85910 |
| dbAccessToken | The access token for Skyhook received in the registration email. | Long Random string like 7INXYr1YUixxxxxv... |
| sineApiKey | The API key configured in the sine integrations configuration. | 4a348197-cc57-4cf7-a339-5a4c3f76b2b0 |
| cppmDefaultExpiryHrs | The default number of hours for an account to be active. | 8 |
| cppmGuestRoleName | The role name to be used in ClearPass Guest when creating the account. This value should match with the cppmGuestRoleId | [Guest], [Contractor], [Employee], Custom Role |
| cppmGuestRoleId | This value sets the role id to use when creating guest accounts | 1 - [Guest], 2 - [Contractor], 3 - [Employee], 4 - Custom Role |
| cppmGuestSmsReceipt | Sets the value of auto_send_sms for ClearPass to send the Guest credentials receipt via SMS | true/false |
| cppmGuestEmailReceipt | Sets the value of auto_send_smtp for ClearPass to send the Guest credentials receipt via SMTP | true/false |
| dbLogging | Enables advanced logging of skyhook db connection | true/false |
| logLevel | Logging level for troubleshooting | "DEBUG", "INFO", "WARN", "ERROR" |
After the configuration and the restart of the extension, click on Show Logs. You should see the following.
The above log shows the License Agreement and also states that the extension is now ready to process events for Sine Pro.
You can change the logLevel to DEBUG under configuration for detailed logs. These are very useful for troubleshooting and should be included before raising a support case if necessary.
Migration Steps from Sine Pro v1 to Sine Pro v2
Sine Pro v1 was available as a ClearPass extension prior to writing this guide. Customers who already have v1 installed are recommended to move to v2 for performance enhancements.
INFO
Note the Sine Pro v1 is denoted as version 0.3 in ClearPass Extension UI.
Following are the migration steps.
-
Request for a new SkyHook Tenant ID for Sine Pro v2 integration. The steps for the same are specified in the section “Step I: Register and Request for a Skyhook Tenant ID”.
-
Disable the WebHook created for v1 Integration. Do not delete this. The idea is to keep the v1 integration in a disabled state so that we can move back to v1, if the v2 migration fails.
You can also rename this to WebHook-v1 or WebHook-OLD to avoid confusion.
-
The next step is to create another WebHook for v2 integration. Follow the steps in the section “Step II: Configuring Sine Pro for ClearPass Integration”.
-
Stop the Sine Pro v0.3 extension installed on your ClearPass server. Navigate to ClearPass Guest and go to Administration > Extensions. Click on the Sine Extension to Stop it as shown below.
-
Follow the section “Step III: Sine Pro Extension Installation and Configuration” to install the new Sine Pro v2 extension.
-
Test the functionality for few days to ensure it works. If yes, the old extension and the WebHook can be deleted. If no, they can be re-enabled to ensure no service interruption. Contact HPE Aruba Networking support for any further assistance with troubleshooting.
Testing/Demo
Now that the components are all configured and ready to use, let’s walk through the experience from the user and administrator perspective. In order to do so, the first step for a visitor is to register using the Sine Pro app running on an iPad at a reception in the customer setup.
Configuring an iPad or any other device to assist customers with registration at front desk is beyond the scope of this document. Essentially, you download the SinePoint Pro app from the appstore and use the registered account to login with this device to your Sine Pro tenant. Detailed steps are available on Sine’s website here
https://www.sine.co/sinepointsetup/
- Visitor walks up to a tablet used for Registration. Every company can have a different skin for the Registration page. A simple Registration Check-In page configured for our demo is shown below.
Visitor clicks Check-In.
- A first-time visitor is asked to fill all the forms with his details as shown below. A site location in Sine is recognized using the Google Maps. This will default the country code to that region. For example, 0414 will automatically be converted to +61414 for sites in Australia. Visitors from outside the region can manually enter the country code when checking-in.
We have used basic forms here for demo. These forms are customizable and can be created as per customer requirements. As you can see below, the email field should be available in the Check-In form. This field is mapped to the username of the Guest account created in ClearPass.
-
The next steps will ask the visitor to click a picture if configured and then make them digitally sign the required forms like NDA etc.
-
As a final step, the application asks the visitor to select the host. A notification about the visitor’s arrival will be sent to this host via SMS, email and/or push notification, as configured within Sine Pro.
-
Once done, you will see a successful check-In. This finishes the registration from the user perspective.
- User should receive an email as well as an SMS with his credentials. Following is the snapshot of the email. Notice the account expiry time is set to 8 hours by default.
You can change the Receipt Template (Guest Manager Receipt) under Configuration > Receipts > Templates.
- After the visit, user can Check Out at the registration desk using the same Tablet. Type you email, mobile or you can also scan the QR code to check-out. Click Next.
Now let’s see what happens in the backend from an administrator perspective.
- Login to ClearPass Guest and go to Manage Accounts under Guest.
The new account has been created upon registration. Note the Expiration time, this should match with the Sine Pro extension configuration setting for cppmDefaultExpiryHrs. By default, it is set to 8 hours. Another thing to note is the Role which is set to [Guest]. This depends on the extension configuration settings for cppmGuestRoleName and cppmGuestRoleId. This could also be set to a custom Role value if required. The configuration for the same is beyond the scope of this guide.
- If you enable DEBUG and Click on Show Logs under Extension, you should see the following details as a part of the Check In event.
[2018-08-14T15:08:18.168] [DEBUG] sine - New event received (43ef9b54-e4b1-4f56-b8c0-690db430e96a).
[2018-08-14T15:08:18.178] [DEBUG] sine - The Sine API Key is a match. Processing message…
[2018-08-14T15:08:18.178] [DEBUG] sine - [Sign In] Looking up guest “peter@webworks.com” in CPPM.
Attmepting to call https://172.17.0.1/api/guest/username/peter@webworks.com with token of Bearer aabbcc13d3a5bfab48e3890d3937046f1aaabbcc
[2018-08-14T15:08:18.482] [DEBUG] sine - [Sign In] Creating guest “peter@webworks.com” in CPPM.
Attmepting to call https://172.17.0.1/api/guest with token of Bearer 0df7cf13d3a5bfab48e3890d3937046f1a35659d
[2018-08-14T15:08:19.136] [INFO] sine - [Sign In] The following guest signed in: Peter Parker (peter@webworks.com)
[2018-08-14T15:08:19.136] [DEBUG] sine - Removing event from skyhook (43ef9b54-e4b1-4f56-b8c0-690db430e96a)…
[2018-08-14T15:08:19.405] [DEBUG] sine - Event removed (43ef9b54-e4b1-4f56-b8c0-690db430e96a).
- Upon Check Out, the User account will be disabled, see this under Manage Accounts in ClearPass Guest
-
The user’s WiFi session should also get disconnected automatically upon Check Out. This depends on the Policy configured for the Guest SSID. This configuration is beyond the scope of this document.
-
You would see a similar Check Out event in the DEBUG logs.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.6.3 - Teem LobbyConnect
Introduction
This TechNote covers the setup, configuration, and monitoring of the ClearPass extension for Teem LobbyConnect and the configuration of the ClearPass plugin in Teem.
This Extension serves two primary use-cases
-
Guest account creation upon Visitor Check In
-
Guest account deletion upon Visitor Check Out
LobbyConnect(LCx) is a visitor management module of Teem’s cloud-based platform. When visitors arrive, LCx presents them with relevant forms where they can provide their information, sign documents (NDAs) and it optionally notifies the person they are visiting of their arrival.
ClearPass is an industry leading Guest Management solution that delivers secure, automated guest access workflows. It’s very useful for an enterprise to combine these two applications to get a seamless visitor management system that automates visitor’s Wifi requirements.
With LCx hosted in the cloud and ClearPass sitting primarily on-prem, there are challenges in making these two applications communicate in real time so that a visitor gets guest WiFi credentials from ClearPass as soon as he registers on Teem’s LCx application. Traditionally the apps would communicate using APIs where an application would request information which is usually followed by a response. Hence in order to get real-time information you have to poll or request as often as possible which is not scalable. The answer or the solution is a webhook which does not wait for a request to send information but sends the data as soon as it’s available.
Before we proceed with the flow, we need to understand the concept of webhooks and skyhook.
What is a webhook?
A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately.
What is skyhook?
Skyhook was developed to overcome the inability for Cloud based applications to send events [webhooks] directly into a ClearPass that was typically deployed on the Trust side of a corporate firewall. In short, it is a service that runs in AWS. ClearPass nodes running on-prem, use extensions to open a persistent connection into Skyhook to receive the events originally sent from a 3rd party cloud application specific for that customer/tenant.
As an overview, Teem LCx running in the cloud will send a webhook upon a Visitor CheckIn or a CheckOut event. This will communicate with Skyhook. The ClearPass extension configured and installed will maintain a persistent connection with Skyhook awaiting an event (Check In/ Check Out).
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Pictorial View of the Integration
The diagram below shows a pictorial overview of the components and how
they interact with each other.
Configuration Steps
There are primarily 3 steps involved in getting this Integration configured.
Step I: Register and request for a Skyhook tenant.
Step II: Configuration of Teem LobbyConnect for Integration.
Step III: Configuration of the Teem Extension.
Its assumed you have SMTP and SMS configured to allow ClearPass Guest to send account data to the Visitor/Guest.
Step I: Register and Request for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
Step II: Configuring Teem LobbyConnect for ClearPass Integration
INFO
For the ClearPass Plugin to be available under 3rd Party Apps on Teem, please contact your Teem Account Manager. This is currently enabled upon request.
Below we cover the configuration required in the Teem environment. To aid the configuration of the extension it helps to collect a number of items from the email received above.
INFO
Setup and Configuration of Teem LobbyConnect is beyond the scope of this guide. Here we specify the steps necessary to configure ClearPass Plugin within the Teem LobbyConnect application.
You would require the following details on Teem for the config
-
Skyhook Webhook Posting URL
-
Teem Secret
-
ClearPass Expiration Time: Account expiration time for the guest checked in
-
SMS Gateway configured on ClearPass (optional)
-
SMTP server configured on ClearPass (optional)
Below are the configuration steps to follow:
-
Login to Teem using your credentials on www.teem.com
-
Click on Manage > Apps & Integration > 3rd Party Apps. Search for ClearPass by Aruba and click on Activate. You should see the following.
ClearPass Plugin within the Teem App
INFO
Ensure you select the correct Aruba plugin. Teem already integrates with Aruba Beacons and Sensors. Ensure you activate the ClearPass Plugin under User Management.
- Once activated Click on Settings and use the details collected above
ClearPass Plugin Configuration Settings
ClearPass URL: The format of this URL would be similar to https://skyhook.clearpassbeta.com/api/skyhook/teem/<skyhook tenant>
Example: https://skyhook.clearpassbeta.com/api/skyhook/teem/3f5913f5-b4b0-4e38-8d53-b7425baabbcc
Secret: A shared secret that needs to be configured later in the ClearPass extension and must match what is configured here.
ClearPass Expiration Time: Directly controls the period of time the Visitor account can remain active in ClearPass Guest based upon the account creation time.
Send ClearPass SMS: Setting it to yes invokes ClearPass to send credentials for Guest login via SMS with the SMS Gateway configured on ClearPass.
Send ClearPass Email: Setting it to yes invokes ClearPass to send credentials for Guest login via Email with the SMTP Server configured on ClearPass.
Step III: Teem Extension Configuration
The default configuration used for extension is below
{
"logLevel": "INFO",
"verifySSLCerts": true,
"teemSecret": "",
"randomPasswordLength": 6,
"skyhookTenant": "",
"dbAccessToken": ""
}
Extension Configuration options
| Configuration attribute | Description | Example/Values |
|---|---|---|
| logLevel | The logging level the extensions should use. | "DEBUG", "INFO", "WARN", "ERROR" |
| verifySSLCerts | Should the extension validate SSL certificates. | true/false |
| teemSecret | The secret configured previously in LCx ClearPass plugin. | SecretValueHere |
| randomPasswordLength | The length of the random password to generate for new Guest/Visitor accounts. | 6 |
| skyhookTenant | The Skyhook tenant ID. | 965abd48-zzzz-aaaa-8164-xxxxxxxxxx |
| dbAccessToken | The access token for Skyhook. | LongRandomAccessTokenString |
Configure the teemSecret, skyhookTenant and dbAccessToken
and restart the extension.
A copy of the default Teem LobbyConnect Extension is shown above, this
will need to be modified for your deployment. Include the
teemSecret, skyhookTenant and dbAccessToken that will be
specific to your environment. This needs to be requested per customer
which is explained later in the document.
Select ‘Restart’ and click on Save Changes to restart the
extension. Following the restart, click on Show Logs. You should see
the following:
You can change the logLevel to DEBUG for detailed logs and
troubleshooting or include the same before raising a TAC case if
necessary.
Testing/Demo
Now that the components are all configured and ready to use, let’s walk through the experience from the user and administrator perspective. In order to do so, the first step for a visitor is to register using the LobbyConnect app running on an iPad or other smartdevice in the customer setup.
Configuring an iPad or any other device to assist customers with registration at front desk is beyond the scope of this document. Essentially, you download the LobbyConnect app from the appstore and use the activation code to register this device with your TEEM LobbyConnect tenant. Add a device for the Location in Teem using the Activation Code. Detailed steps are available here:
I. Visitor walks up to a tablet used for Registration
II. Visitor enters his details as shown below. It is important to enter
the cell phone number with the country code, e.g. in the US prefix a
‘+1’ before your cell number, for India it is ‘+91’ and so on.
III. The next screen will ask for the details of the host or sponsor. A
notification about the visitor’s arrival will be sent to this host
via an email or SMS as configured within LobbyConnect.
IV. You may or may not be asked to take a picture. This depends on the setup used in Teem. This finishes the registration from the user perspective.
V. User should receive an email as well as an SMS with his credentials.
Following is the snapshot of the email.
INFO
You can change the Receipt Template (Guest Manager Receipt) under Configuration > Receipts > Templates.
VI. After the visit, user can Check Out at the registration desk using
the same Tablet. Type and Select your name. Click Next.
Now let’s see what happens in the backend from an administrator perspective.
I. Login to ClearPass Guest and go to Manage Accounts under Guest.
The new account has been created upon registration. Note the Expiration
time, this should match with the setting configured in the ClearPass
Plugin in Teem. In this example, it is set to 4 hours.
II. If you enable DEBUG and Click on Show Logs under Extension, you should see the following details as a part of the Check In event.
[2018-03-07T11:54:55.651] [DEBUG] teem - Event Details:
[2018-03-07T11:54:55.651] [DEBUG] teem - {
"auto_send_sms": true,
"last_name": "Bhatt",
"enabled": true,
"sponsor_name": null,
"first_name": "Arpit",
"sponsor_email": null,
"visitor_company": "Aruba",
"create_time": "2018-03-07T06:24:54.770198+00:00",
"dynamic_expire_time": 240,
"visitor_phone": "1911911911",
"auto_send_email": true,
"role_name": null,
"email": "arpit.bhatt@hpe.com",
"expire_timezone": "Asia/Kolkata"
}
[2018-03-07T11:54:55.651] [DEBUG] teem - {
"X-EventBoard-Event": "lobbyconnect-checkin-clearpass",
"X-EventBoard-ID": "afd0f9f9-db49-5f8a-8b91-71b4b4498faa",
"X-EventBoard-Signature": "9395711f8fe96319c36372093f80206f"
}
III. A similar log entry cab seen in the Teem app as well. Go to
Manage > Apps & Integrations > 3rd Party Apps. Click on
Settings and then select the Logs tab as shown below
IV. Upon Check Out, the User account will have been disabled, see this
under Manage Accounts in ClearPass Guest.
V. The user’s WiFi session should also get disconnected automatically upon Check Out. This depends on the Policy configured for the Guest SSID. This configuration is beyond the scope of this document.
VI. You would see a Check Out event in the DEBUG logs.
Appendix A – Additional Diagnostics & Support
Extension logs and debugging
If there is a need to access the logs from inside the extension, turn on
log collection from the API Explorer. Referencing the configuration
previously used, adjust the "logLevel" to "DEBUG". In the
new 6.7 GUI change the config and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Alternatively, the config can be changed from the API Explorer. Remember after changing the logging level, the extension will need to be restarted for this change to take effect.
Here are a few examples of ’normal’ logs under DEBUG
[2018-03-07T12:46:05.538] [DEBUG] teem - Using CPPM API Url: https://172.17.0.1/api
[2018-03-07T12:46:05.538] [INFO] teem - Connecting to skyhook database...
[2018-03-07T12:46:05.538] [DEBUG] teem - Enabling skyhook advanced logging.
[2018-03-07T12:46:05.542] [DEBUG] teem - p:0: Browser went online.
[2018-03-07T12:46:05.547] [DEBUG] teem - p:0: Authenticating using credential: YYYYYYYYYYYYYYYYYYYYYYYYYYYY.eyJleHAiOjE1NTAwODAwMzEsInYiOjAsImQiOnsidWlkIjoiYzUwN2U2NGQtZjBhMS00NjQ3LWI0YjMtYWNlODQwNjA1YTM0IiwiZW1haWwiOiJ3aWxsLnNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-FudCI6ImEwYjdkZjQ2LTcxZWEtNDE1O11111111111111111111111111111111111-iOjE1MTg1NDQwMzF9.ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
[2018-03-07T12:46:05.551] [DEBUG] teem - p:0: Listen called for /teem/XXXXXXXX-71ea-YYYY-YYYY-ZZZZZZZZZZZZZ default
[2018-03-07T12:46:05.554] [DEBUG] teem - p:0: Making a connection attempt
[2018-03-07T12:46:05.554] [DEBUG] teem - c:0:0: Connection created
[2018-03-07T12:46:05.556] [DEBUG] teem - c:0:0:0 Websocket connecting to wss://aruba-skyhook.firebaseio.com/.ws?v=5
[2018-03-07T12:46:06.684] [DEBUG] teem - c:0:0:0 Websocket connected.
[2018-03-07T12:46:06.692] [DEBUG] teem - c:0:0: Realtime connection established.
[2018-03-07T12:46:06.692] [DEBUG] teem - p:0: connection ready
[2018-03-07T12:46:06.693] [DEBUG] teem - p:0: reportStats {"c":{"sdk.js.2-4-2":1}}
[2018-03-07T12:46:06.693] [DEBUG] teem - p:0: {"r":1,"a":"s","b":{"c":{"sdk.js.2-4-2":1}}}
[2018-03-07T12:46:06.695] [DEBUG] teem - p:0: {"r":2,"a":"auth","b":{"cred":"YYYYYYYYYYYYYYYYYYYYYYYYYYYY.eyJleHAiOjE1NTAwODAwMzEsInYiOjAsImQiOnsidWlkIjoiYzUwN2U2NGQtZjBhMS00NjQ3LWI0YjMtYWNlODQwNjA1YTM0IiwiZW1haWwiOiJ3aWxsLnNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-FudCI6ImEwYjdkZjQ2LTcxZWEtNDE1O11111111111111111111111111111111111-iOjE1MTg1NDQwMzF9.ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"}}
[2018-03-07T12:46:06.696] [DEBUG] teem - p:0: Listen on /teem/a0b7df46-71ea-4159-afd5-231001ab5922 for default
[2018-03-07T12:46:06.696] [DEBUG] teem - p:0: {"r":3,"a":"q","b":{"p":"/teem/ XXXXXXXX-71ea-YYYY-YYYY-ZZZZZZZZZZZZZ ","h":""}}
[2018-03-07T12:46:06.959] [DEBUG] teem - p:0: from server: {"r":1,"b":{"s":"ok","d":""}}
[2018-03-07T12:46:06.960] [DEBUG] teem - c:0:0: Primary connection is healthy.
[2018-03-07T12:46:06.960] [DEBUG] teem - p:0: from server: {"r":2,"b":{"s":"ok","d":{"auth":{"email":"will.smith@teem.com","tenant":" XXXXXXXX-71ea-YYYY-YYYY-ZZZZZZZZZZZZZ ","token":{"email":"w.s@t.com","tenant":" XXXXXXXX-71ea-YYYY-YYYY-ZZZZZZZZZZZZZ ","exp":1550080031,"app":"teem","iat":1518544031,"sub":"c507e64d-f0a1-4647-b4b3-ace840605a34","aud":"aruba-skyhook","auth_time":1518544031,"iss":"https://securetoken.google.com/aruba-skyhook"},"uid":"abc123abc123-XxXx-YyYy-ZzZz-abc123abc123","app":"teem"},"expires":1550080031}}}
[2018-03-07T12:46:06.962] [INFO] teem - Logged in to skyhook. Waiting for events...
[2018-03-07T12:46:06.962] [DEBUG] teem - p:0: from server: {"r":3,"b":{"s":"ok","d":{}}}
[2018-03-07T12:46:06.962] [DEBUG] teem - p:0: listen response {"s":"ok","d":{}}
Errors observed during configuration
- Configuration error
[2018-03-07T11:41:29.940] [ERROR] teem - Error: Received message that failed hash validation, Skipping.
at processEvent (/src/app.js:292:38)
at /src/app.js:364:9
at /src/node_modules/firebase/lib/firebase-node.js:203:375
at ec (/src/node_modules/firebase/lib/firebase-node.js:52:165)
at ac (/src/node_modules/firebase/lib/firebase-node.js:31:216)
at bc (/src/node_modules/firebase/lib/firebase-node.js:30:1259)
at Ji.h.Ib (/src/node_modules/firebase/lib/firebase-node.js:220:287)
at Rh.h.Jd (/src/node_modules/firebase/lib/firebase-node.js:186:251)
at Fh.Jd (/src/node_modules/firebase/lib/firebase-node.js:176:364)
at wh.Jg (/src/node_modules/firebase/lib/firebase-node.js:174:280)
Issue: Unable to process the message as it fails hash validation. The configuration template used for extensions is sensitive. Ensure there are no human errors. Leading space in the Shared Secret used was the issue.\
Resolution: Have a coffee and avoid human errors
Accessing extension logs within ClearPass ‘Collect Logs’
In addition to the logging of messages that be examined in the extension as shown above, it’s possible to configure the extension to log messages so that they can be collected and examined via the Policy Manager ‘Collect Logs’ system function. This is extremely useful for Aruba TAC.
If there is a requirement for HPE Networking Aruba TAC to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. The ClearPass extension can write its logs such that they are available and can be collected with all other system diagnostics information when the ‘Collect Logs’ function is run. Remember that by default, the logLevel is set to INFO but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set. Any of the levels will display the information for the selected state and lower. For example, if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the Logs have been collected and exported from the system, expand
the GZ file and locate the extension logs in the following location
‘PolicyManagerLogs->extension’ as shown below.
1.6.4 - Skyhook Generic Processor
Introduction and Overview
This TechNote covers how to deploy and configure the ClearPass ‘Skyhook Generic Processor’ Extension that provides a simple method for customers to push data from a cloud app to an on-prem ClearPass using a webhook style interface. For example, a use-case workflow may require a cloud enabled app to create Guest accounts, Devices or Endpoints within the ClearPass Guest framework.
You may think of it as optimizing several existing manual actions within an existing Help/Service Desk workflow that authorizes Guest accounts, Devices or Endpoints and then the operator has to access the ClearPass Guest Portal to manually create the Guest account, Device or Endpoint. Using this Extension, the workflow can now be simplified by automatically triggering the creation of a Guest account, Device or Endpoint by sending data in a webhook directly from the cloud app. This eliminates the requirement to login to the ClearPass Guest Portal to manually create the account, device or endpoint.
A real world example for this may be taking the input from a Cloud-based Ticketing system workflow and automatically creating the Guest account right from the cloud app, eliminating the second manual step for the Help/Service Desk to login and create the account within ClearPass – for example, ServiceNow or any other cloud app that can send data in a webhook.
The idea here is that this Integration opens up the possibilities of creativity to link cloud-apps with ClearPass as any attributes that are part of the (Guest, Device and Endpoint) REST API can be leveraged.
With apps hosted in the cloud and ClearPass sitting primarily on-prem, there are challenges in making these two applications communicate in real time so the desired output from the cloud app triggers an action and response within ClearPass. Traditionally the apps would communicate using APIs where an application would request information which is usually followed by a response. In order to get real-time information, the app would have to continuously poll or request the data, however that would not be a scalable solution. The solution for this is to use a webhook as it does not wait for a request to send information but rather sends the data as soon as it’s available.
Before we proceed with the flow, we need to understand the concepts of webhooks and Skyhook.
What is a webhook?
A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately.
What is Skyhook?
Skyhook was developed to overcome the inability for cloud-based applications to send events [webhooks] directly into a ClearPass system that is typically deployed on the trust side of a corporate firewall. In short, it is a service that runs in the Cloud, developed and managed by HPE Aruba Networking. ClearPass nodes running on-prem, use Extensions to open a persistent connection into Skyhook to receive the events originally sent from a 3rd party cloud application specific for that customer/tenant.
The cloud-based app will send a webhook to trigger a Guest, Device or Endpoint event and it will be consumed by Skyhook. The installed ClearPass ‘Skyhook Generic Processor’ Extension will maintain a persistent connection with Skyhook and process the cloud apps events in real-time.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Pictorial View of the Integration
The diagram below shows a pictorial overview of the components and how
they interact with each other.
Configuration Steps
The following steps are required to get this integration working:
-
Register and request a Skyhook Tenant ID
-
Install and configure the Skyhook Generic Processor Extension
INFO
Ensure you have SMTP and SMS configured to allow ClearPass Guest to send visitor account details to the Visitor/Guest.
Step 1: Register and Request for a Skyhook Tenant ID
Skyhook Tenant ID’s can be registered in the skyhook self-service portal by accessing the following link https://clearpass.arubanetworks.com/webhooks/skyhook and instructions on using the skyhook self-service portal is available here: https://arubanetworking.hpe.com/techdocs/NAC/clearpass/integrations/clearpass-extension/skyhook-self-service-portal/
- Copy the skyhookTenant and the dbAccessToken to a text file. This will be used for configuration of the extension in ClearPass.
Skyhook Generic Processor Extension Configuration
The ClearPass Skyhook Generic Processor Extension communicates with your Skyhook tenant via REST API calls. The extension establishes and maintains a persistent connection to Skyhook where it continuously ingests data received into Skyhook from your cloud-enabled application. The extension configuration and supported data types are shown below.
For your convenience, a copy of the default Extension configuration.
Default Configuration
{
"logLevel": "INFO",
"verifySSLCerts": true,
"dbAccessToken": "********",
"skyhookTenant": "",
"useHeaderPreSharedKey": false,
"headerPreSharedKeyName": "X-Skyhook-PSK",
"headerPreSharedKeyValue": "",
"guestRandomPasswordLength": 5,
"guestDefaultRoleId": 2,
"guestSendRegistrationSms": false,
"guestSendRegistrationEmail": false,
"guestDefaultAccountExpireHrs": 2,
"deviceDefaultRoleId": 2,
"deviceDefaultAccountExpireHrs": 2,
"enableStats": false
}
ClearPass Skyhook Generic Processor Extension Configuration
After installing the Extension, the default configuration will need to be updated.
At a minimum, the “dbAccessToken” and “skyhookTenant” need to be changed with values received in your registration email.
Below is an explanation of all of the configuration value pairs. The logLevel and verifySSLCerts should be left as their default settings unless advised by ClearPass TAC or your SE/Partner. Once you configure these parameters, you can start your extension. Any subsequent reconfiguration requires a restart of the extension.
Table 1: Skyhook Processor Extension-specific configuration parameters
| Attribute | Description | Values/Examples |
|---|---|---|
| dbAccessToken | The Skyhook access token. | Null |
| skyhookTenant | The Skyhook tenant id. | Null |
| useHeaderPreSharedKey | When processing events, should a header pre-shared key be required and validated. When true, the headerPreSharedKeyName and headerPreSharedKeyValue must be populated or all requests will fail validation. | true/false |
| headerPreSharedKeyName | The header pre-shared key name. This is the name of an HTTP header sent with the request that contains the pre-shared key value. Default value is "X-Skyhook-PSK". | "X-Skyhook-PSK" |
| headerPreSharedKeyValue | The pre-shared validation key. | ****************** |
| guestRandomPasswordLength | When no password is sent with a new guest account, what should the default password length be? | 5 |
| guestDefaultRoleId | The Role ID to be used for new guest accounts. | 2 (Guest) |
| guestSendRegistrationSms | Should SMS messages be sent for new guest registrations? | true/false |
| guestSendRegistrationEmail | Should email messages be sent for new guest registrations? | true/false |
| guestDefaultAccountExpireHrs | The default expire duration of new guest accounts. This can be overridden by including an expire_time value. | 2 hours |
| deviceDefaultRoleId | The Role ID to be used for new device accounts. | 2 (Guest) |
| deviceDefaultAccountExpireHrs | The default expire duration of new device accounts. This can be overridden by including an expire_time value. | 2 hours |
Supported Skyhook Datatypes
For each data type there are 3 possible actions, "update", "replace", or "delete".
INFO
For all actions guests require a username field, devices require a mac field and endpoints require a specific structure including mac_address and status.
Action Details
| Action | Description |
|---|---|
| update | Creates the object if it doesn’t exist, otherwise updates the existing object information. |
| replace | Creates the object if it doesn’t exist, otherwise replaces the existing object. |
| delete | Deletes the specified matching item. |
Data Types
Guests
| Type | Sample Data | Details |
|---|---|---|
| Guests |
{
"action": "update",
"guest": {
"username": "Guest.User@hpe.com",
"email": "Guest.User@hpe.com",
"expire_time": 1596240000,
"enabled": true,
"visitor_company": "",
"visitor_name": "",
"visitor_phone": ""
}
}
|
curl --location --request POST 'https://skyhook.clearpassbeta.com/api/skyhook/processor/{tenantId}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Skyhook-PSK: {PSK Value}' \
--data-raw '{
"action": "update",
"guest": {
"username": "Guest.User@hpe.com",
"email": "Guest.User@hpe.com",
"expire_time": 1596240000,
"enabled": true,
"visitor_company": "",
"visitor_name": "",
"visitor_phone": ""
}
}'
|
INFO
Any attributes that are part of the Guest REST API can be included in the “guest” object detail..
Devices
| Type | Sample Data | Details |
|---|---|---|
| Devices |
{
"action": "update",
"device": {
"mac": "01-02-03-04-05-06",
"email": "Guest.User@hpe.com",
"expire_time": 158708348,
"enabled": true,
"visitor_company": "",
"visitor_name": "",
"visitor_phone": ""
}
}
|
curl --location --request POST 'https://skyhook.clearpassbeta.com/api/skyhook/processor/{tenantId}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Skyhook-PSK: {PSK Value}' \
--data-raw '{
"action": "update",
"device": {
"mac": "01-02-03-04-05-06",
"email": "Guest.User@hpe.com",
"expire_time": 158708348,
"enabled": true,
"visitor_company": "",
"visitor_name": "",
"visitor_phone": ""
}
}'
|
INFO
Any attributes that are part of the Device REST API can be included in the “device” object detail.
Endpoints
| Type | Sample Data | Details |
|---|---|---|
| Endpoints |
{
"action": "update",
"endpoint": {
"mac_address": "01-02-03-04-05-06",
"status": "Known or Unknown",
"attributes": {
"Source": "",
"My Custom Attribute": "Attribute Value"
}
}
}
|
curl --location --request POST 'https://skyhook.clearpassbeta.com/api/skyhook/processor/{tenantId}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Skyhook-PSK: {PSK Value}' \
--data-raw '{
"action": "update",
"endpoint": {
"mac_address": "01-02-03-04-05-06",
"status": "Known or Unknown",
"attributes": {
"Source": "",
"My Custom Attribute": "Attribute Value"
}
}
}'
|
INFO
Any attributes that are part of the Endpoint REST API can be included in the “endpoint” and “attribute” object details.
How to test the Integration using cURL
This Tech Note was written to illustrate how a Generic cloud-based application could create or manipulate Guest accounts, Devices or Endpoints. Most apps would provide the capability to send or POST data in a webhook json payload and within this guide we use cURL to send the data.
The following example uses a widely deployed command line tool found in many operating systems call cURL. More details on the cURL client can be found on the following website http://curl.haxx.se/
The following three use-cases will demonstrate how you can update, replace or delete Guest accounts, Devices and Endpoints.
Creating a Guest Account
For your convenience, copy the following text to paste into your terminal or into Git Bash terminal in Windows.
curl --location --request POST 'https://skyhook.clearpassbeta.com/api/skyhook/processor/{Insert-your-tenantId}' \ --header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Skyhook-PSK: {PSK Value}' \
--data-raw '{
"action": "update",
"guest": {
"username": "guest.user@hpe.com",
"email": "guest.user@hpe.com",
"expire_time": 1596240000,
"enabled": true,
"visitor_company": "HPE Aruba Networking",
"visitor_name": "Guest User",
"visitor_phone": "5556789"
}
}'
INFO
Try changing the “action” value pair from “update” to either “replace” or “delete” and verify the results in ClearPass
Verifying the Cloud-based Applications creation of Guest Accounts
To examine the result of the webhook sent by your cloud-app, go to ClearPass Guest and navigate to ‘Guest’ ** ‘Manage Accounts’ and you will see the account was created. Verify by clicking on “Show Details” as shown below.
Creating a MAC Device
For your convenience, copy the following text to paste into your terminal or into Git Bash terminal in Windows.
curl --location --request POST 'https://skyhook.clearpassbeta.com/api/skyhook/processor/{Insert-your-tenantId}' \ --header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Skyhook-PSK: {}' \
--data-raw '{
"action": "update",
"device": {
"mac": "F4-2E-7F-C6-56-0C",
"sponsor_name": "admin",
"expire_time": 0,
"enabled": true,
"visitor_company": "HPE Aruba Networking",
"visitor_name": "AP515 - CSE Lab"
}
}'
INFO
Try changing the “action” value pair from “update” to either “replace” or “delete” and verify the results in ClearPass
Verifying the Cloud-based Applications creation of a MAC Device
To examine the result of the webhook sent by your cloud-app, go to ClearPass Guest and navigate to ‘Devices’ ** ‘Manage Devices’ and you will see that it was created. Verify by clicking on “Show Details” as shown below.
Creating an Endpoint
For your convenience, copy the following text to paste into your terminal or into Git Bash terminal in Windows.
curl --location --request POST 'https://skyhook.clearpassbeta.com/api/skyhook/processor/{Insert-your-tenantId}' \ --header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Skyhook-PSK: {}' \
--data-raw '{
"action": "update",
"endpoint": {
"mac_address": "01-02-03-04-05-06",
"status": "Known",
"attributes": {
"Source": "Scotts-Cloud-App-Testing",
"My Custom Attribute":"MyCustomAttributeValue"
}
}
}'
INFO
Try changing the “action” value pair from “update” to either “replace” or “delete” and verify the results in ClearPass
Verifying the Cloud-based Applications creation of an Endpoint
To examine the result of the webhook sent by your cloud-app, go to ClearPass Policy Manager and navigate to ‘Configuration’ ** ‘Identity’ ** ‘Endpoints’ and you will see that it was created – you can find it quickly with the MAC Address Filter. Verify by clicking on the “MAC Address” to see the general Endpoint status and ‘Attributes’ as shown below.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.7 - Multi Factor Authentication
Integration with Identity Management solutions allow ClearPass to use multiple factors as part of authentication workflow thus increasing the security profile of the solution.
A detailed list of third party interoperability can be found here: https://www.arubanetworks.com/support-services/clearpass-interoperability/
1.7.1 - PingID MFA
This technote covers the setup, configuration, and monitoring of the ClearPass extension for multi factor authentication with Ping Identity. Without the extension, MFA workflow required ClearPass to proxy the request to Ping Federate which would then validate the source using a RADIUS authentication request before sending request to Ping Identity to trigger push notification. This integration aims to simplify the workflow with the extension making an API call directly to Ping Identity. Thus, removing the dependence on Ping Federate. This integration can be used to enable MFA for TACACS device logins and captive portal workflows.
Pictorial view of the Integration
The diagram below shows a pictorial overview of the components and how they interact with each other. There are mainly two way the integration works:
The first use case is to trigger a push notification for the user assuming that there is a push enabled device enrolled by the user
The second use case is to trigger a push notification to a specific device. Here the extension first uses API calls to fetch details of all devices enrolled by the user and then checks if there is a device which is either marked as primary or at least enabled with push notification and selects the best device to send push notification to.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
Importing PingID Properties File
First step in the integration is to download pingid.properties file from PingOne Admin portal. The properties file contains the encryption key, token, authenticator URL and idp URL. Depending upon the use case, properties file should be generated with appropriate permissions.
For customers who are looking for the first use case which is to trigger push notification assuming that a push enabled device has been enrolled, only a limited subset of permissions to perform authentication is required. This is preferred in cases where organizations do not want to provide full administrator privileges to the extension.
For customers who are looking for the second use case where push notification is triggered to a specific device, full administrator permissions are needed to fetch user and device details.
Generate a properties file with the appropriate permissions (either authenticate only or administrator) from PingOne admin portal from Setup > Ping ID > Client Integration as described in the following knowledge article:
Once the pingid.properties file has been downloaded, upload the same to ClearPass Guest > Configuration > Content Manager > Private Files > Upload New Content as shown below:
Extension Configuration Parameters
| Attribute | Description | Default Values |
|---|---|---|
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
| skipLookup | Skip lookup to send push notification to any enrolled device or enable lookup to send push notification to a specific push enabled device | true |
After the extension has been installed, proceed to configure ClearPass.
ClearPass Policy Manager Configuration
The final part is the configuration on ClearPass Policy Manager. We need to configure an HTTP authorization source within ClearPass to use the Extension as a ‘real-time’ authorization source.
Click on Next. This will advance to the Primary Tab to provide the connection details.
INFO
The Base URL IP address is the IP address of PingID MFA extension
Set the Base URL as http://ip_of_the_extension/ and pay special attention to HTTP not HTTPS, and the addition of “/” in the path. It is mandated that a Login Username/Password is entered, but it is not used, so this can be set to anything.
Click on “Next”. This will advance you to the Attributes Tab where you need to provide the authorization attributes. Click on “Add More Filters”. Provide a Name for the filter and then a Filter Query. It’s extremely important that the Filter Query is defined correctly. This is the query string that is sent to the Ping ID MFA extension to trigger the push notification. The query is indexed off the username in authentication request. Query also contains the app name attribute which is displayed on the client device while push notification is triggered. Customize the app name in the URL to something that is relevant for your organization. The query also includes authentication status so that push notification is only triggered for successful authentications.
?username=%{Authentication:Username}&app=CPPM%20Admin%20Login&auth_status=%{Authentication:Status}
Next, build out the definitions of the attributes that will be returned from the Filter Query. These attributes can subsequently be used within our policy-evaluation and ultimately the enforcement policy applied. “success” evaluates to true in case of a successful MFA and is used as key to allow/deny/restrict access.
Once the HTTP authorization source is defined, you can use the returned attributes in your policy rules as shown below:
Below we can see the result of a push authorization from Ping Identity and the attributes returned. This data is available to be used in the policy as part of authorization.
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.8 - Asset Management
1.8.1 - Service Now CMDB
Introduction and Overview
The ServiceNow v3 extension is a full featured extension enabling the pushing of ClearPass endpoints to ServiceNow CMDB as well as the pulling of devices from ServiceNow into ClearPass. This extension requires a ServiceNow application to be installed for custom APIs and data mapping. This Integration guide covers how to deploy and configure the ClearPass extension to interface with ServiceNow Configuration Management Database. In this guide we will cover the complete installation, configuration and integration between the extension and ClearPass Policy Manager.
Extension Version Updates
| ServiceNow Extension Version | ClearPass App on ServiceNow Store Version | ServiceNow Release Certification | Date | Notes |
|---|---|---|---|---|
| 2.1.1 | 2.0.1 | Tokyo | May 2023 | Updated Endpoint Sync Filtering Mechanisms (refer to details in subsection under Configuration) |
| 3.1.3 | 2.2.0 | Tokyo Utah Vancouver | Oct 2023 | New Endpoint Sync Filtering Mechanisms (refer to details in subsection under Configuration) |
| 3.2.9 | 2.2.1 | Tokyo Utah Vancouver Washington Xanadu Yokohama Zurich Australia | Sep 2025 | Updated to push additional attributes from insight DB to Service Now |
INFO
The ServiceNow Extension works in conjunction with the ClearPass app on ServiceNow Store. The version numbers listed in the table correspond to how they need to be paired up.
What’s new in Service Now Extension v3.2.9
Until now the extension could push 3 attributes CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name from ClearPass insight database to Service Now CMDB. With v3.2.9, the extension is now able to push additional attributes from insight db to CMDB. Care has been taken to ensure backwards compatibility with existing deployments using endpoint push workflow.
INFO
ServiceNow ClearPass App store version 2.2.1 is recommended with extension version 3.2.9 since it has all the latest updates and fixes.
Sample of insight attributes made available in v3.2.9:
| mac | 11ab33ae55d6 |
| ip | 192.168.0.10 |
| ipv6 | null |
| user | bruce |
| domain | tmelab |
| roles | {"Domain Computers",Faculty,"Front Desk","Intune Compliant",[Employee],"[User Authenticated]"} |
| spt | QUARANTINE |
| aruba_user_role | quarantine |
| aruba_user_vlan | 100 |
| device_category | SmartDevice |
| device_family | Apple |
| device_name | Apple iPhone |
| is_conflict | false |
| other_category | Unknown |
| other_family | Unknown |
| other_name | Unknown |
| is_online | false |
| updated_at | 2024-10-09T14:07:13+05:30 |
What’s new in Service Now Extension v3.2.2
Starting with ServiceNow extension version 3.2.2, communication with Service Now is able to use OAuth. Version 3.1.3 and earlier only supported basic auth. Adding support for OAuth gives us additional security with the integration in terms of password exposure.
INFO
This release does not change the ServiceNow release certification and the ServiceNow ClearPass App store version. Therefore, the recommended ServiceNow ClearPass App version remains 2.2.0 with extension version 3.2.2.
With OAuth support, there are two additional fields in the extension configuration namely ClientId and ClientSecret.
“serviceNowUser”: “”,
“serviceNowPassword”: “********”,
“clientId”: “********”,
“clientSecret”: “********”,
The ClientId and ClientSecret fields are set to work in conjunction with the existing serviceNowUser and serviceNowPassword fields. ServiceNow does not support only clientID and clientSecret based authentication, the username and password fields are still mandatory while the clientID and clientSecret fields to support OAuth are optional. However, it is recommended to enable OAuth by configuring the clientID and clientSecret fields from ServiceNow > System OAuth > Application Registries
Note: It is recommended to first update the ClearPass App on ServiceNow Store to version 2.2.0 and then update the ServiceNow Extension on ClearPass to version 3.2.2.
Pictorial View of the Integration
Use Cases
ClearPass Policy Manager integrates with ServiceNow in multiple ways:
-
Use Case 1: Bulk import of all devices information from ServiceNow CMDB to ClearPass Policy Manager leveraging flexible polling definition based on cron based scheduling.
-
Use Case 2: Push individual endpoint attributes and insight attributes from ClearPass Policy Manager and map them in ServiceNow as and when they authenticate
-
Use Case 3: Push individual endpoint attributes and insight attributes from ClearPass Policy Manager and map them in ServiceNow based on a queueing mechanism. This is similar to the previous use case but adds batching to help with performance.
-
Use Case 4: Bulk export of all endpoints (including endpoint attributes and insight attributes) from ClearPass Policy Manager to ServiceNow.
-
Use Case 5: Perform a real-time lookup of the device attributes which can be leveraged for Authorization.
The above use cases are covered as part of this integration and are documented in this integration guide.
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
ServiceNow Configuration Requirements
Before the ClearPass application can be installed in ServiceNow, the following configuration changes are required.
-
The plugin “Configuration Management For Scoped Apps (CMDB)” (com.snc.cmdb.scoped) must be enabled.
-
The CI Identifier rule for MAC Address only lookups must be enabled. CI Identifiers > Hardware Rule > Network Adapter [cmdb_ci_network_adapter] (mac_address) and enable the mac_address only rule.
-
You must add “ClearPass” to the discovery source choice list. Navigate to Choice Lists and add a “ClearPass” record.
INFO
The ClearPass ServiceNow extension configuration necessitates that you set and/or collect a number of items based upon the configuration of your CMDB. Deployment and Configuration of ServiceNow CMDB is beyond the scope of this document, we only cover the necessary components required to enable the basic integration.
Configuring ClearPass Extension and ClearPass Policy Manager
Depending upon the use case and the workflows being implemented, there are different configuration items that must be setup. Here we are going to list out each possilbe workflow and the configuration needed for each both on the extension and on Policy Manager.
ServiceNow Extension Configuration Parameter
These are the SNOW Configuration Parameters within the extension
| Configuration Parameter | Description | Example/Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | "INFO" |
| verifySSLCerts | Should SSL certificates be validated when communicating with Service Now. | true or false |
| serviceNowUri | The host and port (if other than 443) of your ServiceNow instance. | ven00000.service-now.com |
| serviceNowUser | The user name you would like the extension to use for accessing ServiceNow. | |
| serviceNowPassword | The password of the user for accessing ServiceNow. | |
| clientId | ClientID from OAuth Client in ServiceNow System OAuth > Application registries. | |
| clientSecret | ClientSecret from OAuth Client in ServiceNow System OAuth > Application registries. | |
| serviceNowOperationalStatus | Ability to filter endpoints based on Operational Status | Refer to Endpoint Sync Filtering Mechanisms section after table |
| serviceNowInstallStatus | Ability to filter endpoints based on Install Status | Refer to Endpoint Sync Filtering Mechanisms section after table |
| serviceNowSysClassAllow | Ability to filter endpoints based on Allowlist of cmdb_ci tables | Refer to Endpoint Sync Filtering Mechanisms section after table |
| serviceNowSysClassDeny | Ability to filter endpoints based on Denylist of cmdb_ci tables | Refer to Endpoint Sync Filtering Mechanisms section after table |
| macAddressSeparator | The MAC Address separator used in ServiceNow. The default value is a hyphen "-". ClearPass stores MAC Addresses with no separator, so if no seperator is specified MAC Addresses will be sent to ServiceNow as they are seen in ClearPass, something that could result in duplicates. | - |
| enableEndpointCache | Enable or disable the endpoint caching process. When enabled endpoints when looked up using the MAC Address lookup APIs will cache the ServiceNow results in the endpoint database. Information will only be refreshed by this process after the Cache Time is elapsed. | true or false |
| endpointCacheTimeSeconds | The time in seconds for endpoint lookup API to use cached endpoint data from ServiceNow. | 300 |
| enableQueue | Enable or disable the endpoint processing queue for pushing endpoints to ServiceNow. When enabled, you can add MAC Addresses to the processing queue using the queue related API endpoints. | true or false |
| queueSchedule | The schedule used for the queue processor. This is a CRON based schedule. | */30 * * * * * |
| queueRequireIdentity | Should identity information be required to send data to ServiceNow. If set to true, a mac address processed by the queue processor will only be sent to ServiceNow if the mac address is found in the identity endpoint database. | true or false |
| queueRequireInsight | Should insights information be required to send data to ServiceNow. If set to true, a mac address processed by the queue processor will only be sent to ServiceNow if the mac address is found in the insight endpoint database. | true or false |
| queueRetryCount | The queue retry count is the number of times a mac address will be looked up to attempt to get information to send to ServiceNow. This queue will take effect if there is not information in ClearPass for the MAC Address or if one of the queues require rules comes into play. | 3 |
| cmdbDiscoverySourceName | The CMDB Discovery source that is used when sending data to the CMDB. This must be added to Service Now. Add a choice list option for cmdb_ci -> discovery_source named "ClearPass" | “ClearPass” |
| cmdbDefaultTarget | The default table target mapping if no mappings can be found in the cmdbTargetMap configuration. | cmdb_ci_netgear |
| cmdbTargetMap | This map describes how CMDB table mappings are identified. For example, a CPPM endpoint, profiled as a "Computer", will map to the CMDB cmdb_ci_computer table. This base matching is done using the device category, optional device family mappings can also be used to further refine the mapping. A default set of mappings is provided. |
[ { "deviceCategory": "Computer", "target": "cmdb_ci_computer" }, { "deviceCategory": "Server", "target": "cmdb_ci_server", "deviceFamilies": [{ "deviceFamily": "win", "target": "cmdb_ci_win_server" }, { "deviceFamily": "unix", "target": "cmdb_ci_unix_server" }, { "deviceFamily": "vmware", "target": "cmdb_ci_vm_vmware" }] }, { "deviceCategory": ["SmartDevice", "Network Camera", "Access Points"], "target": "cmdb_ci_netgear" }, { "deviceCategory": "Printer", "target": "cmdb_ci_printer" }, { "deviceCategory": "Switch", "target": "cmdb_ci_switch" } ] |
| cmdbAttributeMap | This is a list of endpoint or insight attributes to send to ServiceNow and what
fields they should be mapped to in the CMDB. Each entry is a key/value
pair. The key is the CPPM attribute name, the value is the ServiceNow
CMDB table column name. Only unreferenced columns from ServiceNow can be used here. The names in the list should match up to
endpoint attributes. When a matching attribute is found it will be
pushed to ServiceNow. When available, the insights information of Device
Category, Device Family and Device Name are available using the names
CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name or by using the actual attribute name in insight database (starting with v3.2.9).
Only unreferenced fields in cmdb tables can be used to push raw values. |
{ "Description": "short_description" } |
| enableSyncAll | Enable or disable pulling all endpoints from ServiceNow. | true or false |
| syncAllSchedule | The ServiceNow pull schedule. This is a CRON based schedule. | 0 3 * * * |
| syncPageSize | The number of ServiceNow cmdb items to pull with each request. You can adjust this based on the number of cmdb items you have, the performance of your ClearPass system, and the performance of your network. | 100 |
| syncUpdatedOnly | True or false to only pull cmdb_ci records that have been updated since the last update. | true or false |
| syncAllOnStart | Sync all endpoints from ServiceNow when the extension starts or restarts | true or false |
| enableEndpointPush | Enable or disable pushing all identity endpoints from ClearPass to ServiceNow. | true or false |
| endpointPushSchedule | The endpoint push schedule. This is a CRON based schedule. | 0 3 * * * |
| endpointPushPageSize | The number of ClearPass endpoints to pull with each request. You may want to adjust this based on the number of endpoint attributes your endpoints contain. | 100 |
| endpointPushRequireInsight | Should insight information be required to send an endpoint to ServiceNow. | true or false |
| asyncOperationLimit | The number of asynchronous operations to run at one time. This controls how many individual internal workers are running at any given time for any one process. For example, if this is set to 10, and the queue processor and pull processors are running at the same time, this setting will limit each process to processing at most 10 items at a time, so in the mentions situation there would be 20 works pushing and pulling information. You can adjust this value based on your ClearPass load. The lower the value the longer it will take for items to be processed. |
3 |
| bypassProxy | Bypasses the configured system proxy | true or false |
| enableStats | Option to enable extension statistics | true or false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
TIP
Pay special attention to the values in the extension configuration. Where a configuration attribute is a Boolean value {true/false}, it must not be enclosed with literals.
Enter the ServiceNow tenant details such as serviceNowUri, serviceNowUser, serviceNowPassword into the extension configuration. Depending upon the use case, adjust the other configuration switches as necessary, pay attention to attributes related to push/pull queues and schedules.
INFO
Sample ServiceNow CMDB Extension is shown below, this will need to be modified based on the use cases being implemented.
In the next section we discuss the configuration values and how to use them and where to collect the configuration items that are required.
Use Case 1: Bulk Endpoint Sync from CMDB to ClearPass
The custom API built in the ClearPass Integration App is designed to work in conjunction with the ServiceNow Extension to pull a set of attributes from devices in ServiceNow CMDB and map them into the ClearPass Endpoints DB.
These are the extension configuration parameters that impact endpoint sync from Service Now CMDB:
| Configuration Parameter | Description | Example/Values |
|---|---|---|
| enableSyncAll | Enable or disable pulling all endpoints from ServiceNow. | true or false |
| syncAllSchedule | The ServiceNow pull schedule. This is a CRON based schedule. | 0 3 * * * |
| syncPageSize | The number of ServiceNow cmdb items to pull with each request. You can adjust this based on the number of cmdb items you have, the performance of your ClearPass system, and the performance of your network. | 100 |
| syncUpdatedOnly | True or false to only pull cmdb_ci records that have been updated since the last update. | true or false |
| syncAllOnStart | Sync all endpoints from ServiceNow when the extension starts or restarts | true or false |
| serviceNowOperationalStatus | Ability to filter endpoints based on Operational Status | Refer to Endpoint Sync Filtering Mechanisms section after table |
| serviceNowInstallStatus | Ability to filter endpoints based on Install Status | Refer to Endpoint Sync Filtering Mechanisms section after table |
| serviceNowSysClassAllow | Ability to filter endpoints based on Allowlist of cmdb_ci tables | Refer to Endpoint Sync Filtering Mechanisms section after table |
| serviceNowSysClassDeny | Ability to filter endpoints based on Denylist of cmdb_ci tables | Refer to Endpoint Sync Filtering Mechanisms section after table |
Utilize enableSyncAll, enabling this will turn on the ingest polling, ensure that in conjunction with syncAllSchedule (cron based scheduling) ingest works, all data is written to endpoint, if the endpoint does not previously exist, its created and the endpoint attributes are added. Ensure the scheduling engine works, test to ensure it can be scheduled as expected, E.g. one-hour repeat runs, daily repeat etc. also to be tested in this use case.
Utilize the syncPageSize to ensure we adjust the size of the returned body, start with 100 records and try perhaps 20.
Utilize the syncUpdatedOnly to only have the ingest process pull updated delta changes, for this you’ll need to make changes to endpoints in the CMDB tenant and check only those records with changed records/attributes are retrieved, (based upon the last update).
When pulling a MAC address (or multiple MAC addresses) for an endpoint, it is based on network adapter configuration item “cmdb_ci_network_adapter”. A default filter based on Operational Status is applied in which only MAC addresses with “Operational Status = Operational” are pulled in. This continues to be the default mode of operation.
The ServiceNow Extension v2.1.1 expanded to two filters that can be applied, and there is also more flexibility in how these filters are applied. The two filters that can be applied are based on Operational Status and Install Status as seen in the default configuration:
“serviceNowOperationalStatus”: “1”,
“serviceNowInstallStatus”: “”,
A value of “1” for Operational Status is equivalent to Operational. An empty value for Install Status means this filter is not applied.
Another option is to apply filter based on Install Status only rather than Operational Status. In this case, the configuration is changed to the following:
“serviceNowOperationalStatus”: “”,
“serviceNowInstallStatus”: “1”,
Here a value of “1” for Install Status is equivalent to Installed. An empty value for Operational Status means this filter is not applied.
For reference, the following tables list the possible values for Operational Status and Install Status.
Operational Status
| Selection | Value |
|---|---|
| Operational | 1 |
| Non-Operational | 2 |
| Repair in Progress | 3 |
| DR Standby | 4 |
| Ready | 5 |
| Retired | 6 |
Install Status
| Selection | Value |
|---|---|
| Installed | 1 |
| On Order | 2 |
| In Maintenance | 3 |
| Pending Install | 4 |
| Pending Repair | 5 |
| In Stock | 6 |
| Retired | 7 |
| Stolen | 8 |
| Absent | 100 |
For the case where no filter needs to be applied and all MAC addresses are to be pulled in, the configuration is changed to the following with empty values:
“serviceNowOperationalStatus”: “”,
“serviceNowInstallStatus”: “”,
The ServiceNow Extension v3.1.3 expands even further with two new filters that can be applied. In order to optimize the syncing of large databases, now either an Allowlist or Denylist can be configured to filter which “cmdb_ci” tables will be included or excluded during the endpoint sync process.
INFO
Only one of these filters (either Allowlist or Denylist) can be applied. Do not apply both filters simultaneously.
By default, the configuration starts with empty values for both the Allowlist and Denylist:
“serviceNowSysClassAllow”: “”,
“serviceNowSysClassDeny”: “”,
Here is an example of an Allowlist that can be applied to only include “cmdb_ci” tables that contain MAC addresses (the end customer to determine the “cmdb_ci” tables to be included pertaining to their environment):
“serviceNowSysClassAllow”: “cmdb_ci_computer_list,cmdb_ci_printer_list,cmdb_ci_ip_phone_list,cmdb_ci_ups_list”,
Here is an example of a Denylist that can be applied to exclude “cmdb_ci” tables that do not contain MAC addresses (the end customer to determine the “cmdb_ci” tables to be excluded pertaining to their environment):
“serviceNowSysClassDeny”: “dscy_route_next_hop,cmdb_ci_ups_alarm”,
Use Case 2: Push endpoint to CMDB after authentication
This triggers a MAC Address’s information to be pushed to ServiceNow using the Identity and Insights information in ClearPass.
Only the identity attributes mapped in the cmdbAttributeMap configuration are sent to ServiceNow. If available, the insights data of device_category, device_family, and device_name are internally mapped to the properties CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name and sent to ServiceNow. Starting with extension v3.2.9, there are other insight attributes also available as listed in the section “What’s new in Service Now Extension v3.2.9”
INFO
cmdbAttributeMap is a list of endpoint or insight attributes to send to ServiceNow and what fields they should be mapped to in the CMDB. Each entry is a key/value pair. The key is the CPPM attribute name, the value is the ServiceNow CMDB table column name. Only unreferenced columns from ServiceNow can be used here. The names in the list should match up to the attributes listed under Configuration > Identity > Endpoints > Click on an endpoint > Attributes tab. When a matching attribute is found it will be pushed to ServiceNow. When available, the insights information of Device Category, Device Family and Device Name are available using the names CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name or by using the actual attribute name in insight database (starting with v3.2.9).
A context server action can be used to push an endpoint from ClearPass to ServiceNow CMDB database. To trigger the push, enable the attribute “enableEndpointPush”: true in extension configuration. Any attribute from endpoint repository and a set of attributes from insight db can be pushed to cmdb. cmdbTargetMap and cmdbAttributeMap defines to which tables and fields the attributes are pushed to and should be configured appropriately.
“endpointPushRequireInsight”: true should be enabled if you wish to push insight attributes for the endpoint to CMDB.
Steps to configure this context server based endpoint push:
-
Define Endpoint Context Server
-
Add Context Server Action
-
Create an Enforcement Profile to trigger the action
So first configure a basic Context-Server pointing to the Extension IP-Address, pay specific attention to the Server Base URl of http://Extension_IP_address .
Note that it is not https, after this configure the individual context server action as shown below. in our working example 172.17.0.7 is the IP-address of the Service Now extension, your IP will likely differ.
The next step involves using the Context Server Action in the Enforcement Profile as below. The Enforcement Profile to push an endpoint to ServiceNow is shown below:
Use Case 3: Push endpoints from ClearPass to ServiceNow via push-queue
Using push queue helps to batch the pushes from ClearPass to ServiceNow. Enable cmdbAttributeMap to add additional endpoint context to be sent to SNOW. When available, extension sends Device Category, Device Family and Device Name, but cmdbAttributeMap allows you to send additional endpoint attributes. Perhaps you want to send MDM or some EDR attributes. List them in the array like this [ “Owner Email”, “OS Version” ], ensure they are mapped however via the SNOW Identification and Reconciliation engine (I&R) and that the proper mappings are made in the Aruba SNOW Application.
INFO
cmdbAttributeMap is a list of endpoint or insight attributes to send to ServiceNow and what fields they should be mapped to in the CMDB. Each entry is a key/value pair. The key is the CPPM attribute name, the value is the ServiceNow CMDB table column name. Only unreferenced columns from ServiceNow can be used here. The names in the list should match up to the attributes listed under Configuration > Identity > Endpoints > Click on an endpoint > Attributes tab. When a matching attribute is found it will be pushed to ServiceNow. When available, the insights information of Device Category, Device Family and Device Name are available using the names CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name or by using the actual attribute name in insight database (starting with v3.2.9).
Enable enableQueue to start using the queuing mechanism, then utilize the queueSchedule to validate scheduling and repetitive scheduling functions. When queueRequireIdentity is enabled, only mac addresses present in Endpoint DB are sent to CMDB. Enable queueRequireInsight to ensure endpoint exists in InsightDb and to send attributes from InsightDB.
Steps to configure this context server based endpoint push using queuing mechanism:
-
Define Endpoint Context Server
-
Add Context Server Action
-
Create an Enforcement Profile to trigger the action
So first configure a basic Context-Server pointing to the Extension IP-Address, pay specific attention to the Server Base URl of http://Extension_IP_address .
Note that it is not https, after this configure the individual context server action as shown below. in our working example 172.17.0.7 is the IP-address of the Service Now extension, your IP will likely differ.
The next step involves using the Context Server Action in the Enforcement Profile as below. The Enforcement Profile to push an endpoint to ServiceNow is shown below:
Use Case 4: Sync endpoint database from ClearPass into ServiceNow
Utilize enableEndpointPush to sync all of the CPPM endpoints into ServiceNow CMDB with the frequency of the sync based on endpointPushSchedule. Optionally, configure endpointPushPageSize for endpoint being pushed into ServiceNow.
In our example below we’ve set the schedule to run every 2-hours, sync all endpoint when the extension starts/restarts and cache the results for 30 minutes. Adjust these config items as necessary for your environment.
“enableEndpointPush”: true,
**“enableEndpointPushSchedule”: * /2 * * ,
“endpointPushPageSize”: 100,
“endpointPushRequireInsight”: false
INFO
cmdbAttributeMap is a list of endpoint or insight attributes to send to ServiceNow and what fields they should be mapped to in the CMDB. Each entry is a key/value pair. The key is the CPPM attribute name, the value is the ServiceNow CMDB table column name. Only unreferenced columns from ServiceNow can be used here. The names in the list should match up to the attributes listed under Configuration > Identity > Endpoints > Click on an endpoint > Attributes tab. When a matching attribute is found it will be pushed to ServiceNow. When available, the insights information of Device Category, Device Family and Device Name are available using the names CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name or by using the actual attribute name in insight database (starting with v3.2.9).
Refer to Appendix C for more details about configuring the cron based scheduling for enableEndpointPushSchedule
Use Case 5: Perform real time authorization lookup against Service Now CMDB
Service Now CMDB can be added as an auth source in ClearPass to perform a real time authorization call. The attributes fetched as part of this real time lookup can be used within the service policies. Making a get request to the extension with a MAC Address in the URL will return the details for the CMDB device in ServiceNow. If enableEndpointCache is true, the data may be cached for the duration of endpointCacheTimeMinutes.
The attribute “Found In SNOW” should always be returned by the API and will be true or false.
From ServiceNow, the cmdb_ci parent table as well as the asset, location, owned_by, cpu_manufacturer, assigned_to, company and department information will be returned and prefixed with the cmdb_ci reference field name followed by the column name (e.g. asset.display_name is the data from joined cmdb_ci.asset).
Steps to add CMDB as authorization source:
Navigate to Configuration > Authentication > Sources to create a new auth source of the type HTTP
Once the auth source has been created, it can be added to the service and referenced in policy conditions.
WARNING
Do not add this auth source under the “Authentication” tab in service configuration. This source is meant for authZ only. Incorrect mapping can cause the RADIUS service to stop in some versions of ClearPass.
Additional context server action options
Service Now extension supports these additional context server action options to trigger raw API calls to Service Now. The payload must be specified as part of context server action in json format. There is no validation for these context server actions and data is sent as is. These can be useful if you want to push some attributes that are not part of endpoint db or insight db but is part of the computed attributes of the authentication request.
| URL | Description | Example Data |
|---|---|---|
| POST /push | This process triggers a device send to ServiceNow using the data specified in the request body. The request body should be a JSON object containing at least a MAC Address. This process does not use internal endpoint lookup information and only sends the information supplied. The properties mac, ip, device_category, device_family, device_name are internally mapped to the properties CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name when being sent to ServiceNow. The other properties included in the object should match to the attributeMAP configuration. |
{ "mac": "000f7c0d5cd0", " ip": "", "device_category": "Network Camera", " device_family": "", "device_name": "", "Owner": "user@hpe.com", "OS Version": "Unknown", ... } |
| POST /identifyreconcile | This endpoint will send the body to the ServiceNow identifyreconcile API. This simply relays the information posted to it, giving the user full control over what the I&R engine does. More information can be found here, https://docs.servicenow.com/bundle/paris-application-development/page/integrate/inbound-rest/concept/c_IdentifyReconcileAPI.html |
{ "items": [ { "className": "cmdb_ci_computer", "internal_id":"comp", "values": { "mac_address": "01-01-01-01-01-01", "name": "Computer 2", "os": "Windows", "os_version": "10", "short_description": "Test Device" }, "lookup": [ { "className": "cmdb_ci_network_adapter", "values": { "mac_address": "01-01-01-01-01-01", "install_status": 1 } } ] } ] } |
| POST /queue | Adds the specified MAC Address to the processing queue to be sent to ServiceNow. This queue process runs based on the queueSchedule and will look up the endpoint’s identity and insight information. Only the identity attributes mapped in the attributesToSend configuration are sent to ServiceNow. If available, the insights data of device_category, device_family, and device_name are internally mapped to the properties CPPM-Device-Category, CPPM-Device-Family, and CPPM-Device-Name and sent to ServiceNow. This setting uses the queueRequireIdentity and queueRequireInsight options to determine if certain sets of information are required for sending to ServiceNow. If either of these options is set to true, the corresponding set of data must be available in ClearPass for the data to be sent to ServiceNow. |
{ "mac": "000f7c0d5cd0" } |
| GET /resetPullLastUpdate | Resets the last updated date saved by the ServiceNow pull process when the serviceNowPullUpdatedOnly configuration option is true. |
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
Appendix E – Sample data from ServiceNow
Following is the sample list of the default attributes fetched from ServiceNow using the default policy.
{ "source": "SNOW", "network.skip_sync": "0", "network.operational_status": "1", "network.sys_updated_on": "2019-04-06 00:17:51", "network.first_discovered": "2019-04-03 23:45:17", "network.sys_created_on": "2019-04-03 23:45:17", "network.dhcp_enabled": "0", "network.install_status": "1", "network.name": "NetworkAdapter@10.2.100.218", "network.subcategory": "Network", "network.virtual": "0", "network.last_discovered": "2019-04-06 00:17:51", "network.can_print": "0", "network.sys_class_name": "cmdb_ci_network_adapter", "network.sys_id": "b00ea29adb207f4061840bb6f496194a", "network.netmask": "255.255.255.0", "network.mac_address": "00-0f-7c-0d-5c-d0", "network.monitor": "0", "network.ip_address": "10.2.100.218", "network.cost_cc": "USD", "network.unverified": "0", "network.category": "Hardware", "network.fault_count": "0", "cmdb_ci.can_switch": "0", "cmdb_ci.skip_sync": "0", "cmdb_ci.operational_status": "1", "cmdb_ci.device_type": "Network Camera", "cmdb_ci.sys_updated_on": "2019-04-06 00:17:51", "cmdb_ci.discovery_source": "ClearPass", "cmdb_ci.first_discovered": "2019-04-03 23:45:17", "cmdb_ci.sys_created_on": "2019-04-03 23:45:17", "cmdb_ci.can_partitionvlans": "0", "cmdb_ci.hardware_status": "installed", "cmdb_ci.install_status": "1", "cmdb_ci.subcategory": "Network", "cmdb_ci.last_discovered": "2019-04-06 00:17:51", "cmdb_ci.can_print": "0", "cmdb_ci.sys_class_name": "cmdb_ci_netgear", "cmdb_ci.can_hub": "0", "cmdb_ci.cpu_count": "1", "cmdb_ci.sys_id": "fc0ea25adb207f4061840bb6f4961923", "cmdb_ci.mac_address": "00-0f-7c-0d-5c-d0", "cmdb_ci.can_route": "0", "cmdb_ci.monitor": "0", "cmdb_ci.ip_address": "10.2.100.218", "cmdb_ci.cost_cc": "USD", "cmdb_ci.unverified": "0", "asset.skip_sync": "0", "asset.residual": "0", "asset.sys_updated_on": "2019-04-03 23:45:17", "asset.sys_created_on": "2019-04-03 23:45:17", "asset.depreciated_amount": "0", "asset.pre_allocated": "0", "asset.display_name": "Unknown", "asset.install_status": "1", "asset.sys_class_name": "alm_hardware", "asset.sys_id": "f40ea25adb207f4061840bb6f4961924", "asset.resale_price": "0", "asset.cost": "0", "asset.quantity": "1", "asset.active_to": "0", "asset.salvage_value": "0", "cmdb_ci.category": "Hardware", "cmdb_ci.fault_count": "0", "SNOW Last Update": "2019-04-06T00:18:57.201Z", "Found In SNOW": true } |
|---|
1.9 - ClearPass Extension
1.9.1 - Common Appendices for Extensions
Appendix A – Troubleshooting and Support
Here we list some basic troubleshooting steps. If you need any help beyond this, please reach out to HPE Aruba Networking Support.
Check API Access Application Control restrictions
If you’ve previously hardened your ClearPass deployment with Application Access Controls, it’s possible that the Extension will not work. Reviewing the Extension Log might show something like the following after immediately starting the Extension. This likely indicates the ClearPass Application API’s are in place.
Example of Extension authorization failure due to Policy Manager Application Control:
[2020-03-16T15:42:21.083] [INFO] Intune - Server listening on port 80.
[2020-03-16T15:42:21.243] [DEBUG] Intune - Request “GET ‘https://172.17.0.1/api/server/version’” took 51.91ms.
[2020-03-16T15:42:21.245] [DEBUG] Intune - <!DOCTYPE html><html>
<head>
<title>
Error 403 (Forbidden)
</title>
<script language=“javascript”>
function reloadPage() {
var locHref = window.location.protocol + “//” + window.location.hostname;
window.location.href = locHref;
}
</script>
To resolve this issue, add the IP address of the Extension to the list of nodes permitted to access the API by navigating to Administration > Server Manager > Server Configuration {choose your node} > Network
INFO
For this reason its good practice to fix the IP address of the extension at installation time such that it doesn’t change over time and break the application controls.
Checking on the Extension Service
The ClearPass Extensions are supported by a system service which must be running.
Restarting this service will affect all deployed and running extensions.
To check on the state of the Extension Service, or to restart the service, go to Administration > Server Manager > Server Configuration > [SERVER] > Service Control. By default this service is automatically started.
Extensions and web proxy / firewall whitelisting
If ClearPass Policy Manager has been configured with a proxy, it’s still possible that domain whitelists are required, the same for some datacenter firewall to allow the installation of Extensions. Some enterprise customers maintain a whitelist of domain that are allowed to transit the proxy/firewall. The underlying docker configuration process uses standard docker registry access to pull images (hosted in docker hub). In general, the following hosts are used:
INFO
-
extensions.clearpassbeta.com
-
registry-1.docker.io
-
index.docker.io
-
auth.docker.io
-
production.cloudflare.docker.com
This is all also geo dependent to some degree and based on various AWS services, so AWS redirects and geo location services will vary. Finally, this all runs via standard HTTPS (port 443).
Extension Logs/Enable Debugging
If you have a requirement to access and view the logs from the Extension, you can turn on different logging levels from the Extension GUI. Adjust the logLevel to ‘DEBUG’ and restart the extension as shown below.
Logs can then be viewed from the ‘Show Logs’.
Remember after changing the logging level, as with any extension configuration change the extension will need to be restarted for this change to take effect.
Accessing the extension logs using ‘Collect Logs’ system function
In addition to viewing the logs as shown above, logs can also be collected and examined via the Policy Manager Collect Logs system function (Administration > Server Manager > Server Configuration > [Select SERVER] > Collect Logs). This is extremely useful should you have a need to call for technical assistance.
If the support team needs to investigate a system issue, one of the items they regularly ask for is the system logs to aid with their diagnostic investigation. By default the “logLevel” is set to INFO, but TRACE, DEBUG, INFO, WARN, ERROR, FATAL can also be set as required. Any of the levels will display the information for the selected state and lower; if INFO is selected, it will show messages for INFO, WARN, ERROR, FATAL.
After the logs have been collected, downloaded and expanded, you can locate the extension logs in the following location in the folder structure PolicyManagerLogs > extension > your-extension-id as shown below. Note the file-name is the same as the running instance ID of the extension.
Monitoring extension statistics
There is a way to monitor extension’s critical resource statistics with the configurable parameter added as part of the extension’s configuration. To enable extension statistics set the “enableStats” parameter to true. Remember a restart of the extension is need to activate the change anytime the config is modified.
To navigate to statistics page, click Show Details.
This will show statistics similar to the following:
Monitoring authorization performance
Since we are authorizing against an external system, it could be relevant to monitor the performance of these transactions as you setup and deploy. If you suspect there is a performance issue, ClearPass provides a way to monitor the authorization processing time. The graph below shows an example of this data, navigate to Monitoring > Live Monitor > System Monitor [click on ClearPass Tab, then select [Authorization]….
Appendix B – Considerations for Installing in a Cluster
Extensions are not synced between ClearPass cluster members, and thus must be installed on each member separately.
Some Extensions can run in two modes: Periodic Sync Mode and Authorization Source Mode.
Periodic Sync Mode
If you are configuring the extension to poll external system periodically and utilize the resulting ClearPass Endpoint database during endpoint Authorization, then you only need to install the extension on one cluster member, often the publisher.
You may wish to install the extension on a second cluster member as a backup, but remember that both extensions will individually be updating the endpoint database. You may want to stagger the updates between the two extensions, for example, Subscriber1 updates at the top of the hour and Subscriber2 updates at 30 minutes after the hour.
Also, in this mode there is no need to explicitly enter an IP address during installation. The defaults will suffice and ClearPass will select an IP in the range specified in the server configuration.
HTTP Authorization Source Mode
In this mode we configure an HTTP Auth source that results in a HTTPS call to external system during endpoint authorization. In this deployment model the extension must be installed on every cluster node that process authentications. Also in this scenario every cluster member’s extension must be set to the exact same IP address during installation time, as the HTTP Auth source configuration is propagated globally across all cluster members.
For example, if the extension IP range is 172.17.0.0/16, we would set the extension to 172.17.0.5 on every cluster member during installation of the extension.
While we normally want to avoid duplicate IP addresses in a network, this is not a concern with ClearPass extensions. Each ClearPass node communicates internally only with its own extension, and this traffic is not routed outside of ClearPass.
Subscriber nodes support the same ability as publishers to install an Extension from the Extension store.
Appendix C – endpoint sync schedule settings
The syncSchedule and similar scheduling parameters sets how often ClearPass executes certain actions like syncing or pushing endpoints. This setting is based on a slightly modified version of the CRON job scheduler found in Unix-like operating systems. It can be used to schedule jobs to run periodically at fixed times, dates or intervals.
A ‘cron’ is a job scheduler. Any scheduled task is called a ‘cron job’. The syntax for a cron job schedule is as follows:
In our use of the cron scheduler, we’ve dropped the use of the last instruction ≤command to execute> and use only the time/date functions, see below for a number of examples of scheduling a sync process.
-
Schedule a sync to run at 2am daily:- 0 2 * * *
-
Schedule a sync to run twice a day at 5am and 5pm:- 0 5,17 * * *
-
Schedule a sync to run on every Sunday at 5pm:- 0 17 * * sun
-
Schedule a sync to run every 30 minutes:- */30 * * * *
-
Schedule a sync to run at 5pm on selected days:- 0 17 * * sun,fri
You can see from the above that the scheduling process is extremely flexible, alternatively https://crontab.guru/ is a great page for learning more about CRON scheduling.
Appendix D – Extension performance optimizations
Extensions are a critical part of ClearPass deployments today and with the increased dependency on extension interactions that involve periodic polling or real-time lookups, here are some of the best practice recommendations around optimizing overall performance when using extensions:
-
If the extension is used to periodically poll external systems and populate endpoint repository, ensure that it is not installed in all the nodes in the cluster. Ideally these type of extensions should only be installed on the publisher node since only publisher node can add endpoint entries to the database. For redundancy, it can be installed on another additional node but it is recommended to stagger the polling interval so that both do not attempt to poll and update endpoint database at the same time.
Example: 0 * * * *, This cron job runs at minute 0 of every hour (e.g., 00:00, 01:00, 02:00, etc.).
30 * * * *, This cron job runs at minute 30 of every hour (e.g., 00:30, 01:30, 02:30, etc.). -
If the extension is used for looking up attributes from external systems in real time during authentication, it should be installed in all the nodes handling authentication. Note that the context server config is replicated from the publisher. When using extension for real time lookup, ensure that the extension has the same IP address in all the cluster nodes.
-
If the extension is expected to do both real-time lookup and periodic polling, ensure that polling is enabled only on the publisher while the extension in subscribers can have the polling disabled by setting the “enableSyncAll” attribute to false.
"enableSyncAll": false,
WARNING
Having the extension installed on all the cluster nodes with enableSyncAll set to true would cause each cluster node to independently poll the external system and update endpoint repository. This could impact the performance of ClearPass. Hence it is strongly recommended to enable endpoint sync only on the extension installed on the publisher and on another cluster node for redundancy.
-
Some 3rd party systems support fetching delta updates vs fetching all of the device information every polling cycle. The extensions that support fetching delta updates are: Workspace ONE Crowdstrike Falcon Microsoft Intune Mosyle SentinelOne Service Now
For these extensions, the syncUpdatedOnly attribute should be set to true in extension config so that the number of DB updates in ClearPass is minimized
"syncUpdatedOnly": true,For extensions that do not support syncUpdatedOnly, ensure that the sync interval is not aggressive. We recommend syncing at most twice a day and that too during off peak hours whenever a full sync is performed.
-
Some 3rd party systems can be very noisy in terms of attribute updates. There could be certain attributes that keep changing every sync interval like “Free Memory in Bytes”, “Last Check in Time” etc. There is no value in updating endpoints when such trivial attributes change for the device. Hence it is recommended to use “ignoreEndpointDifferences” attribute in extension configuration to ignore change in attributes that you do not care about in terms of ClearPass policies.
You can review the Audit Viewer in ClearPass under Monitoring > Audit Viewer to see what attributes are being updated for endpoints to check if there are unnecessary updates.
Sample for JAMF extension:
"ignoreEndpointDifferences": "Last Update, Report Date UTC, Last Contact Time UTC, Last Inventory Update UTC, Last Reported IP, IP Address",Default for Microsoft Intune extension:
"ignoreEndpointDifferences": "Last Sync Date Time, Free Storage Space in Bytes", -
To further optimize the number of endpoints being updated in ClearPass, you can specify which attributes are being used in the ClearPass policies so that only changes to those attributes would trigger an update to the endpoint. This is done by listing out the specific attributes under endpointAttributes in extension configuration.
Sample for JAMF extension:
"endpointAttributes": "Group names, MDM Enabled, Managed, Remote Managed, Supervised, Serial Number", -
Setup extension to restart unless it was intentionally stopped. A restart policy can be defined in extension configuration to ensure that the extension starts up automatically after server reboots and such. Restart policy of “unless-stopped” would ensure the extension always starts up unless it was manually stopped.
“restartPolicy”: “no” — The extension will not be automatically restarted after the server is restarted.
“restartPolicy”: “always” — The extension will always be restarted after the server is restarted.
“restartPolicy”: “unless-stopped” — The extension will be restarted unless it was stopped prior to the server restart, in which case it will maintain that state.
“restartPolicy”: “on-failure:N” — If the extension fails to restart, the value for “N” specifies the number of times the extension should try to restart. If you do not provide a value for “N”, the default value will be “0”.
The “restartPolicy” parameter is not present by default in extension configurations. When it is not present, if the system is restarted a default policy is applied to the extension to maintain the state it was in before the restart. If the “restartPolicy” parameter is added to the configuration but later removed, the extension will then revert to the default restart policy.
1.9.2 - Common Extension Attributes
Common extension attributes
Extension framework configuration parameters (common configuration)
| Attribute | Description | Default Values |
|---|---|---|
| logLevel | Logging level for troubleshooting | “INFO” |
| verifySSLCerts | Should SSL certificates be validated when communicating with external context sources | true |
| enableEndpointCache | Cache endpoint attributes to optimize authorization queries, avoid repeated DB queries and reduce API calls to external context sources | true |
| endpointCacheTimeSeconds | The duration in seconds to cache the endpoint attributes | 300 |
| syncUpdatedOnly | If this option is set to true, only the endpoints updated after the previous sync would be fetched from the context source. Note that this option only works for the third-party context sources that have APIs to support this functionality. If this option is set to false, all endpoints are fetched at every sync interval. |
true |
| syncAllOnStart | If this option is set to true, when the extension starts, the system will attempt to sync all endpoints in the external context source to ClearPass. Note that if you have a large number device context to be fetched, it would take a long time for the initial sync to complete. When used along with syncUpdatedOnly, the subsequent syncs should be faster. |
true |
| enableSyncAll | Enable periodic sync of all endpoints | true |
| syncAllSchedule | The schedule for when the Sync All Endpoints process should run. Note: This uses CRON type scheduling. |
0 2 * * 6 |
| enableStats | Enable display of extension statistics | false |
| statsUsername | Create a username to access the extension statistics page | Give any username you want to use |
| statsPassword | Create a password to access the extension statistics page | Give any password you want to use |
| bypassProxy | Bypass the web proxy configured on ClearPass Policy Manager | false |
1.9.3 - Installing Extensions
Software Requirements
The minimum software version required for CPPM is 6.11.0 . At the time of writing, version 6.11.10 is available as the long supported release and 6.12.4 is available as the short supported release. CPPM runs on hardware appliances with pre-installed software or as a Virtual Machine under the following hypervisors. Hypervisors that run on a client computer such as VMware Player are not supported.
-
VMware vSphere Hypervisor (ESXi) 7.0 U3c and 8.0
-
Windows Server 2019 with Hyper‑V and Windows Server 2022 with Hyper‑V.
-
KVM on CentOS Stream 8, CentOS Stream 9, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS.
ClearPass Installation and Deployment Guide
This document assumes your ClearPass environment is already configured and operational. If you require assistance with basic deployment, refer to the following deployment guide:
https://arubanetworking.hpe.com/techdocs/ClearPass/6.11/Installation-Guide/Default.htm
ClearPass Extensions
The integration between ClearPass Policy Manager and external systems is driven through a ClearPass capability known as Extensions, a sub-component of the ClearPass Exchange Integration framework. ClearPass Extensions are micro-services running on top of the base ClearPass platform. These micro-services enable HPE Aruba Networking to deliver new features outside of the main software release cycle and facilitate a faster time to market for specific features and integrations. Configuration and control of ClearPass Extensions is accomplished through the ClearPass Guest GUI, as covered later in this document.
Installing Extension
ClearPass Extensions are easy to install from the ClearPass Extensions Store. In a cluster, ClearPass Extensions can be installed on a subscriber independently of the publisher. Multiple copies of the same extension can be installed if needed as well.
INFO
Internet access is required for ClearPass Policy Manager to install the ClearPass Extensions from the Extension Store. Starting with ClearPass 6.12, extensions can be can be installed offline as well. Offline ClearPass Extension images are available on HPE networking support portal.
Access to the extension store
Access the Extension Store to download and install ClearPass extensions. The Extension store utilizes the same HPE Passport account credentials used to validate support entitlement in the Software Updates Por- tal. This is configured under Administration > Agents and Software Updates > Software Updates as shown below. Ensure that valid HPE Passport credentials have been entered in these fields to enable Ex- tension download capabilities.
Installing the Extension from Store
Extensions are installed from the extension page in ClearPass Guest, as shown below. Access it from Guest > Administration > Extensions
From here, click on ‘Install Extension’, and the search box below appears.
Enter “Intune” and click on ‘Search’, see the example below.
INFO
Here we are using Intune as an example. The installation steps are the same for all the extensions. For your deployment, please search for the appropriate extension like Jamf, Mosyle, Crowdstrike, etc.
All currently available extensions are listed in the page: https://www.arubanetworks.com/techdocs/NAC/clearpass/integrations/clearpass-extension/extensions-list/
Click on the extension name and then click “Install.”
In the “Install Extension” dialog box, set the IP address if necessary, as described in section “Extensions and IP address configuration support” below. Do not check the box to start the extension at this time. Click the “Install” button.
In this example, we’ve not entered an IP address for the extension to use, if there is intent to use the extension as an authorization source set this value and ensure its set the same on all nodes where the Extension is deployed.
The extension will download and appear in a “Stopped” state. Notice the options to Start, Delete, Reinstall, Show Logs, and view Configuration. Click on “Configuration” to view settings.
After the extension has been installed, proceed to configure the extension
A copy of the default Extension configuration is shown above, this will need to be modified for your deployment.
INFO
Password and sensitive configuration items are obfuscated when presented in both the Extension GUI or in the Explorer configuration.
WARNING
The configuration attributes are case sensitive. It is recommended to refer the default configuration sample while editing your configuration.
Extensions and web proxy support
Extensions support communications with 3rd parties via a web proxy. This adds incremental proxy functionality. If a proxy is defined in ClearPass Policy Manager, then an extension will inherit that configuration. See later in the document on how to disable the proxy inherited configuration.
INFO
Note that the Policy Manger web proxy configuration is ONLY read by the extension at installation time. If the web proxy configuration is changed in Policy Manager, then the extension must be re-installed so the new settings are re-read and bonded to the extension.
Extensions and IP address configuration support
ClearPass uses a non-externally routed IP address range to communicate with the Extension. The default is 172.17.0.0/16. You may configure a different range, if desired. This is especially useful when deploying extensions across nodes within a cluster where there is the requirement for a fixed consistent IP address for the extension across the cluster.
Changing the “Extensions Network Address” range is only necessary if either the ClearPass MGMT or DATA interface are using an IP address in the extension default range of 172.17.x.x/12, or if ClearPass needs to communicate with some external device in that range.
To Configure the base Extension IP subnet within Policy Manager navigate to Administration > Server Manager > Server Configuration [chose your node] Service Parameters [ClearPass system service].
INFO
The subnet defined here for the extension framework must fall within the following subnet range 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 as defined by RFC1918. For best results, set the network address range to a subnet that does not exist in your enterprise, and restart the extension service for this change to take effect.
Never set the DATA or MGMT IP address to use an address that matches the Extension Network
INFO
Note that changing the extension base IP address will require the extension service to be restarted.
1.9.4 - List of active ClearPass Extensions
List of Active ClearPass Extensions
| Aruba ClearPass Universal Authentication Proxy |
| BlackBerry UEM |
| Carbon Black EDR |
| Certificate Enrollment Manager CEM |
| CrowdStrike Falcon |
| Cylance Authorization Source |
| Envoy |
| Google Secure LDAP Connector |
| goreception-cppm |
| HTTP AuthZ Proxy |
| BigFix |
| Intune SCEP |
| Jamf Pro Jamf School (formerly ZuluDesk) |
| Lightspeed Systems Relay |
| McAfee ePO |
| Meraki Integration |
| Microsoft Intune |
| MobileIron UEM |
| Mosyle |
| Microsoft Defender ATP |
| OPSWAT MetaAccess Authorization Source |
| Palo Alto Networks GlobalProtect |
| PingID MFA |
| privacyIDEA Authentication |
| rapid7-nexpose |
| Rapid7 InsightVM |
| SentinelOne |
| ServiceNow |
| Sine ClearPass Integration |
| Skyhook Processor |
| Sophos Central |
| SOTI MobiControl |
| Splunk HEC Connector |
| Symantec Endpoint Protection Manager |
| Tanium |
| Teem LobbyConnect |
| Tenable.sc |
| Trend Micro Apex Central |
| VMware Workspace ONE |
1.9.5 - Skyhook Introduction
Skyhook Framework
Skyhooks was developed to overcome the inability for Cloud based applications to send events [webhooks] directly into a ClearPass that was typically deployed on the Trust side of a corporate firewall. In short the service runs in AWS, ClearPass nodes running on-prem use extensions to open a persistent connection into Skyhooks to receive the events originally sent from a 3rd party cloud application specific for that customer/tenant, we’ll go into greater depth of the components. Recently the Skyhooks framework has been re-developed to ensure that security is at the heart of the framework and any concern around PII/GDPR are addressed. At this time we have over 100+ active customers utilizing this service. The new service we are moving to is internally referred to Skyhookv2, as part of the move from the original Skyhook service, the extensions currently in use will need to be re-factored to incorporate changes in the framework supporting data encryption for data-in-motion and data-at-rest.
So, what exactly is a webhook? A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately. Unlike typical APIs where you would need to poll for data very frequently in order to get it real-time. A number of the integrations we have can benefit greatly from a real-time view of other systems or certain workflows mean that without a real-time framework the integration is basically broken.
Here are two popular use-cases we have been developing recently.
-
Cloud based Guest/Visitor Integrations such as Envoy/SINE and soon TEEM Lobby-Connect rely on a real0-time iteration such that as events are created on the 3rd Party Guest, a webhook event is triggered to ensure the Cloud guest account is reciprocally created inside ClearPass Guest to allow the Guest to signing to the local guest WiFi.
-
Another workflow that benefits greatly from a webhook framework is MDM integrations. Historically CPPM has polled hourly by default, [some customer poll longer due to the size of their tenant DB], and retrieves endpoint data, ingests this data, parses it and ultimately writes this to the EndpointDb in CPPM. A number of the attributes we have are extremely relevant to the device and how the device should be treated when it access or is on the corporate network. i.e. If a user deploys a blacklisted application or they jailbreak/root the device, its appropriate to quarantine this device on the network. However if we allow a device on the network then the user installs the blacklisted application, CPPM does not know this device is now our of Corporate Security Policy, the MDM vendor know but historically has no way to let CPPM know. Having the MDM system send us a CPPM webhook notification allows us to have a real-time view on the current posture of a device and appropriate respond. The other huge benefits to this process allows a customer to effectively not POLL, as mentioned above the polling can take hours to complete for some of our largest MDM customers, utilizing webhooks to ’trickle-feed’ events through, m such as new-davie or device-retired again allows CPPM to maintain a real-time view of the tenants managed devices.
Also thats the overview and a couple of common use-cases, but what makes Skyhooks tick? So the starting point for this is the service which the 3rd party cloud applications send their webhooks to, this is a service in AWS called a lambda serverless compute, I think of it as a “service as a function”.
From AWS website:
“AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running.*
With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app.”
So, thats Part1, your webhook message hits this service, then this data is written into a DB called Firebase, a product built by Google. at this stage data is stored & encrypted per application/customer. Part2 The extension that site on-prem running on ClearPass has a persistent connection to this DataBase and effectively retrieves the data per application/customer. There are per application/customer db keys that are used to encrypt the data in FireBase, these keys must be configured in the extension to allow it access, retrieve and decode the data.
1.9.6 - Skyhook Self Service Portal
Skyhook Self Service Portal
The skyhook self service portal can be used to create new skyhook tenants and renew expiring dbAccessTokens for extensions that use our skyhook service. Customers can access the portal on this link https://clearpass.arubanetworks.com/webhooks/skyhook and can login using their HPE passport credentials.
This portal allows administrators to create skyhook tenants for various integrations that support webhook notifications. Upon registering for a skyhook tenant you are provided with a ‘Tenant ID’ that can be used in the “skyhookTenant” field and a DB token that goes in the “dbAccessToken” field of the extension configuration. Once a tenant is registered, the dbAccessToken for the tenant is valid for a year. For an uninterrupted service, customers are required to renew their DB token by logging in to the portal and following the renewal steps. All registered skyhook tenants are mapped under the HPE Passport used to login to the self service portal.
The portal gives a list of all registered tenants including the App name (Integration e.g Jamf, Envoy etc), the expiration date and time until expiration to let administrators choose when they want to renew the DB token as per their convenience.
Using the Skyhook Self Service Portal
Creating a new Skyhook Tenant
-
Go to https://clearpass.arubanetworks.com/webhooks/skyhook and click on ‘Login with HPE SSO’ option.
-
Enter your HPE passport credentials to login.
INFO
The HPE passport credentials used to login to the skyhook self service portal should be associated with a tenant that has a valid support license on their HPE Aruba Networking ClearPass Policy Manager. If there are no ClearPass Policy Manager appliances with valid support licenses registered under the HPE passport credentials used to login then the below error is displayed despite the credentials are valid
- The landing page displays the skyhook tenants registered with the HPE Passport credentials under the ‘Your Tenants’ page.
INFO
Note that the old tenants created using the legacy manual method will not show up in the self service portal. As an initial onboarding step, a new tenant has to be created. This creates a new new tenant ID and DB Access Token. The tenant ID needs to be updated both within the extension configuration and also in the 3rd party application sending notifications to skyhook. The DB Access Token needs to be updated within the extension configuration.
- To create a new tenant Click on ‘Register Tenant’.
INFO
Note that the portal reaches out to the domain “skyhook.clearpassbeta.com” for creating new tenant. The domain and the URL should be allow listed through any endpoint security or SSE solutions installed on the device you are accessing the portal from and also through firewalls that the traffic is traversing through.
https://skyhook.clearpassbeta.com/api/register/<name-of-extension>
-
Choose the integration name as needed from the ‘App’ dropdown, Enter a suitable label and click on ‘Register’.
-
The tenant and the DB token is displayed. Ensure to copy / download the details as the token is displayed only once. Once done, click ‘OK’ to return to the ‘Your Tenants’ page.
-
Once you have the SkyhookTenant and the dbAccessToken, You can continue with the further ClearPass Extension configuration as per the steps decribed in the integration guide for the extension you are installing. Existing integrations which were using legacy manually provisioned tenant ID, would have to ensure that the tenant ID is updated on the third-party application with the new one from self-service portal.
INFO
When configuring Webhook HTTP Servers in the third-party application, please use the following Target URL:
https://skyhook.arubasecurity.net/api/skyhook/{{extension-id}}/{{skyhook-tenant-id}}
Where:
{{extension-id}} can be any of the following depending upon which application you are sending webhooks from
jamf / envoy / sine / processor (for Generic Skyhook Processor) / meraki / teem / airwatch (for VMware Workspace ONE)
{{skyhook-tenant-id}} would be the new tenant ID created from the self-service portal
Example: https://skyhook.arubasecurity.net/api/skyhook/jamf/ab45xxxx-bcd4-cd45-ef34-abcde11xxxxx
TIP
For Envoy integration, ensure that the tenant ID is updated separately for each location to ensure each location is using the new tenant ID to send the notifications
Renewing the DB token
-
Select the Tenant that needs DB token renewal. You can use the Search box to search for Tenants based on their Tenant name or Label on the upper left corner of the page.
-
Click on the ‘Renew’ option under the ‘Actions’ column to proceed with the renewal of the DB token.
-
The tenant and the DB token is displayed. Ensure to copy / download the details as the token is displayed only once. Once done click ‘OK’ to return to the ‘Your Tenants’ page.
INFO
Once the dbAccessToken is renewed, Ensure that you update the dbAccessToken field in the extension configuration immediately to avoid longer service outages as renewing the dbAccessToken disables the existing token.
1.9.7 - Skyhook Token Refresh
Updating Skyhook Token
Navigate to ClearPass Guest > Administration > Extensions > Click on the extension for which you want to update the skyhook token > Configuration
Replace the dbAccessToken value, ensure to check the box “Restart extension after updating configuration” and click “Save Changes”
Once the extension is running, check the extension logs to confirm that connection to skyhook is working fine.
INFO
The dbAccessToken only needs to be updated on the extension configuration. You do not have to update the dbAccessToken on the third party system.
2 - Platform
HPE Aruba Networking ClearPass Policy Manager (CPPM) provides robust network access control with granular role-based policies for authentication, authorization, continuous monitoring and enforcement. Its highly interoperability feature helps customers to leverage their investment in earlier security products.
This section includes technical documentation about deploying ClearPass, best practice recommentations and configuration tips
2.1 - ClearPass Clustering Design Guidelines
Introduction
This TechNote describes the design guidelines that are applicable to large-scale deployments of the ClearPass product.
The intent is to provide documentation about what can and cannot be done with the publisher/subscriber clustering model implemented in ClearPass. These constraints will enable proposed designs to be checked for feasibility and compliance with recommended practices. Where it is practical, best practices will be documented, although not every conceivable use case or deployment can be covered here.
Audience
The reader is assumed to be familiar with the ClearPass family of products, including Policy Manager, Insight, Guest and Onboard. Basic knowledge of IP networks and wide-area networking is also assumed.
Notes on this Version of this Document
V1 – October 2014
This document has been released early to be shared with the field. Within this document is a host of valuable information covering the design/deployment/management of a clustered ClearPass network and the important components such as Insight that need special consideration. We are already actively gathering more related and relevant information and plan to release an updated version of this document at some time in the future.
Clustering Overview
Within this section we discuss the process of the initial design of a cluster.
ClearPass can be deployed either as a dedicated hardware appliance or a Virtual Machine. It is available in different specifications with appliances that can support anywhere from 1000 concurrent sessions to upto 100,000 concurrent sessions.
For more information about the different appliance / virtual machine capabilities, please review the ClearPass scaling and ordering guide.
When demand exceeds the capacity of a single instance or we have a requirement to have a High Availability deployment we have the option of logically join multiple instances together to process the workload from the network. You can logically join physical and virtual instances and also join dissimilar sized ClearPass instances, however careful planning must be taken especially if you plan to utilize the failover capabilities within the clustering feature.
WAN Considerations L2/L3
Where a ClearPass cluster is deployed and ‘typical’ WAN technologies separate the nodes e.g. MPLS with low-speed (sub 10Mbps) and high-latency (>50ms RTT) then additional consideration regarding the deployment must be considered and discussed with the customer as outlined and discussed later in this document in Provide Sufficient Bandwidth Between Publisher/Subscribers.
Campus Considerations L2/L3
No specific consideration is typically required when clustering in a Campus/LAN environment, though the placement of ClearPass nodes SHOULD typically be close to the user population but not that critical. If the Campus network connecting building and faculty is based around a MAN/VPLS then there are no special considerations around bandwidth/latency and the main consideration here is then only the ClearPass configuration and clustering for High Availability.
ClearPass Databases
A single ClearPass server makes use of several different databases:
The configuration database contains most of the editable entries that can be seen in the GUI. This includes, but is not limited to:
-
Administrative user accounts
-
Local user accounts
-
Service definitions
-
Role definitions
-
Enforcement policies and profiles
-
Network access devices
-
Guest accounts
-
Onboard certificates
-
Most of the configuration shown within Guest and Onboard
The log database contains activity logs generated by typical usage of the system. This includes information shown in Access Tracker and the Event Viewer.
The Insight database records historical information generated by the Netevents framework, and is used to generate reports.
Publisher/Subscriber Model
ClearPass uses a publisher/subscriber model to provide a multiple-box clustering capability.
Another term for this model is “hub and spoke”, where the “hub” corresponds to the publisher, and the “spokes” correspond to the subscribers.
INFO
The publisher node has full read/write access to the configuration database. All configuration changes MUST be made on the publisher. The publisher sends configuration changes to each subscriber.
INFO
The subscriber maintain a local copy of the configuration database and each have read-only access to a local copy of the configuration database. A background replication process handles the task of updating the configuration database based on the configuration changes received from the publisher.
Because the subscriber has read-only access, a message will be displayed to an administrator logging in to that server, indicating that read-only access is available and that they should log into the publisher for full access.
What Is Replicated?
INFO
Multiple items exist within a ClearPass node/cluster that must be shared to ensure successful operation of the cluster. Only the configuration database is replicated. Note that the Log and Insight databases are not replicated across the cluster.
However, certain items are node specific and these must be configured separately for each node, this can be achieved directly on the Publisher or individually on the node. The node specific attribute can be summarized as the configuration under the below highlighted sections.
Finally three other items that are node specific, Log Configuration, Local Shared Folders and Server Certificates (RADIUS and HTTPS) need to be individually configured.
What Is A Large-Scale Deployment?
Large-scale deployments are defined as those that would require the publisher node to be dedicated to servicing the subscriber nodes, i.e. the Publisher is not directly processing authentication requests.
INFO
This is the case when the volume of configuration changes generated by all subscribers in the cluster impacts the publisher node. This limits the publisher node’s capacity to handle other tasks and implies that it must become a dedicated node.
TIP
Design Guidance: The dedicated Publisher should be a CP-HW-25K appliance or a CP-VM-25K that matches the minimum spec for the VM. The VM specification can be found here.
Configuration changes that SHOULD be considered in the context of a large-scale deployment include:
-
Creating, modifying or deleting a guest account
-
Issuing or revoking an Onboard certificate
-
Modifying Policy Manager configuration (adding a network access device, defining a new service, updating an enforcement profile, etc.)
-
Adding new endpoints (including automatically created endpoints) in Policy Manager
-
Modifications made to guest account or endpoint records with a Policy Manager post-authentication profile
Note that not every clustering scenario is a large-scale deployment. ClearPass clustering may also be performed for other reasons, for example to distribute several ClearPass nodes geographically for policy reasons, or to have an off-site disaster recovery system.
Clustering Example 1
Authenticating corporate users with Guest access. A cluster of CP-HW-5K’s has two nodes (US East Coast and US West Coast). US-West is the publisher, and US-East is the subscriber. Each node handles the authentication traffic for 2,000 corporate endpoints. Each node also registers 100 guests per day. There are few configuration updates in the network.
This fictitious customer example would not be considered a large-scale deployment:
-
The additional load on the publisher due to clustering can be estimated at 100 guest accounts created per day.
-
The authentication traffic on the subscriber node does not impose any additional load on the publisher and the new endpoints registered (in the order of 100 per day, assuming new guests each day) does also not add any significant load.
-
This workload on the publisher is small and represents a fraction of its capacity.
In this example, each node could be used as the backup for the other node. In the event of a node failure, the other node could handle the authentication requirements of all 4,000 endpoints plus 200 guest registrations per day.
Clustering Example 2
Authenticating conference center users. A cluster has three CP-HW-25K’s nodes in the same time-zone. Located in San Jose (Publisher), San Diego (Subscriber) and Seattle (Subscriber). Each node can registers up to 15,000 guests per day, often in short bursts. There is constant authentication traffic through the day from the onsite employees and guest. On some days, a node may be idle, but there are days where all nodes are busy.
This would be considered a large-scale deployment:
-
In our example the maximum potential load on the publisher due to the Guest account creation process can be estimated at 45,000 guest accounts being created per hour (peak rate), that equates to 12.5 account creations per sec, a max of 15 accounts per sec.
-
This is a significant load on the publisher.
In this example, a separate dedicated publisher node would be recommended: a hardware appliance Publisher, CP-HW-25K, could theoretically handle up to 54,000 guest accounts being created per hour (15 per sec), but with bursts of Guest traffic being unpredictable during the ‘hot hour’ and with the corresponding replication of these accounts to each of the subscriber nodes we consider this to be an example of a deployment warranting a dedicated Publisher.
So even though in theory the Publisher could process and create these Guest accounts, this amount of work in the hot-hour is not really feasible in addition to any other background network authentication/replication etc. the Publisher is excepted to perform.
Network Traffic Flows
The table below lists the network ports that must be opened between the Pub and the Sub’s
| Protocol | Port | Notes |
|---|---|---|
| UDP | 123 | NTP – time synchronization |
| TCP | 80 | HTTP – internal proxy |
| TCP | 443 | HTTPS – internal proxy and node-to-node communications |
| TCP | 5432 | Postgresql – database replication |
| TCP | 5433 | Postgresql – Accessing insight and log database |
| TCP | 7432 | Cluster Diagnostics |
INFO
All protocol/port combinations listed above should be bidirectional and should be open between any two nodes in the cluster. The reason for this is that any subscriber node can be promoted to the publisher node, which implies a fully connected network is necessary.
To see the complete list of ports required across a ClearPass cluster to ensure all processes beyond just the clustering process work correctly please review the document here.
Cluster-wide replication
Beyond the data that is replicated by the Multi-Master Cache (which is actually zone specific), data in the configuration database is replicated cluster wide. Data that is NOT replicated includes…… note that we discuss ZONES later in this document.
-
Access Tracker Logs
-
Session Log
-
Accounting Data
-
Event Viewer Data
-
System Monitor
Handling Authentication Requests
The typical use case for Policy Manager is to process authentication requests using the policy framework. The policy framework is a selection of services that work to process but is not limited to and determine:- authentication, authorization, posture, enforcement, role etc. of the endpoint/end-user.
In this use case, authentication typically involves a read-only operation as far as the configuration database is concerned: a cluster node receives an authentication request, determines the appropriate policies to apply, and responds appropriately. This does not require a configuration change, and can therefore be scaled across the entire cluster.
INFO
Authentication is performed from the node itself to the configured identity store, whether local (as sync’ed by the Publisher i.e. a Guest account) or external like MSFT AD.
Logs relevant to each authentication request are recorded separately on each node, using that node’s log database. Centralized reporting is handled by generating a Netevent from the node, which is sent to all Insight nodes and recorded in the Insight database.
Optimizing Authentication processing for a MSFT AD domain
When attaching a ClearPass node to an Active-Directory (AD) domain, (note that each ClearPass node must be separately attached/enrolled) this is the node that we send the Auth request to. In ClearPass 6.3 we added add some logic to control the processing of where ClearPass sends the authentication request to when the primary-node you initially connect to fails. This is achieved via the configuration of AD Password Servers. If NO Password Servers are configured then the processing of where the Auth requests are sent is indeterminate after the primary node fails.
To better understand the processing of which server in the network could be used to process these request look at the below nslookup example. This shows you the servers in the network that can process the ClearPass AD authentication requests. Knowing this you can have a discussion with the customer to discuss where these server are located and whether or not you want to add an deterministic process to which servers are used first.
danny-jump:Downloads djump$ nslookup
> set type=srv
> _ldap._tcp.dc._msdcs.hpe.com
;; Truncated, retrying in TCP mode.
Server: 10.1.10.10
Address: 10.1.10.10#53
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 hqdc03.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 blr-dc-1.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 sjc-dc-05.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 sjc-dc-09.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 dcv1dc01.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 chn-dc-01.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 sjc-dc-10.hpe.com.
_ldap._tcp.dc._msdcs.hpe.com service = 0 100 389 hqdc04.hpe.com..
_Etc. Etc. Etc. Etc…………
INFO
Making the processing
deterministic can be achieved in the ClearPass CLI with the following
command…. ad passwd-server set -s <server 1> <server 2> <server 3>
To see a list of the current configured servers.. ad passwd-server list -n
To load balance across DCs, different ClearPass nodes in the cluster can be joined to different domain controllers.
Internal API for Dynamic Content Creation (Guest/Onboard)
Most deployments will make relatively few policy changes after initial deployment is complete. This is well suited to the publisher/subscriber model, as the policy configuration is replicated to each subscriber in real-time. However, interactive use of the system to create guest accounts or provision devices with Onboard poses a different challenge. These use cases require configuration changes to be effective (Example: reset guest account password).
Because of the publisher/subscriber model, configuration changes can only be performed on the publisher. However, in a complex deployment it may be necessary to direct guests and BYOD enrollment requests to a subscriber node.
INFO
Some functions such as a sponsor creating a guest account, they MUST login to the publisher. Same goes for MACtrac – it must be done on the publisher.
As an example, below we tried to change the password for a guest user on a Subscriber, notice specifically the ‘Read Only Access’ message and the ‘Update Account ‘ is greyed out and not available to be used.
So, putting this in context of a ClearPass High Availability cluster: If I want employees to login and create guest accounts, (and I need that in an High Availability setup) I must setup the standby publisher, plus, where appropriate use a VIP to ensure in the event of the failure the VIP is always available on the clustered-publisher (active or standby)., so the re-directs from the controllers always go to an available IP address (the VIP).
In the scenario where the standby-publisher is separated by a L3 WAN boundary, the use of the VIP address between the active and standby publisher is not an option. We recommend this in an environment where the active/standby nodes are deployed within the same broadcast L2 network to simplify the availability of the active Publisher’s reachable IP address.
The process that has been implemented in Guest and Onboard utilizes an internal communications channel between the nodes to process any necessary requests that involve database modification. This works as follows:
-
Subscriber node receives a request for a database modification, or for an operation that could potentially lead to a database modification (e.g. guest_register.php)
-
The request is processed and internally channeled to the current publisher node
-
Publisher receives the request and handles it (performs the database modification or generates the appropriate dynamic content)
-
The response is returned to the subscriber node
-
Subscriber node returns the response to the client
With this solution, it appears as if the change is taking place on the subscriber (all URLs will appear to be pointing at the subscriber), but the change takes place on the publisher.
Onboard Certificates and OCSP
A device that is provisioned using Onboard will receive a client certificate that contains the device’s credentials for accessing the network via EAP-TLS.
One use case supported in ClearPass is for an administrator to revoke a device’s client cert and deny it access to the network. This is implemented with the Online Certificate Status Protocol (OCSP), which provides a real-time status check on a particular cert’s validity.
In a large publisher/subscriber deployment, consideration needs to be given to how these OCSP checks should be handled, as there may be a significant number of authentications that use a client certificate, and each authentication attempt will require a separate OCSP status check.
The available OCSP options in Onboard are configured under (ClearPass 6.3 +) Onboard » Certificate Authorities, prior to ClearPass 6.3 it was configured under Onboard » Initial Setup Certificate Authorities then the “Authority Info Access” option may be set to:
-
Do not include OCSP Responder URL – default option; does not encode any OCSP URL into the generated client certificate
-
Include OCSP Responder URL – includes an OCSP URL in the client certificate, where the URL is determined from the IP address of the issuing server (in the Onboard case this will be the publisher)
-
Specify an OCSP Responder URL – includes an OCSP URL in the client certificate, but allows the URL to be specified manually
INFO
To avoid overloading the publisher with OCSP requests, the “Include OCSP Responder URL” option must not be selected.
Exception to this is when ClearPass has been configured with more than one Onboard CA, this MUST be used since each CA will have a different OCSP URL. You cannot hard code the URL across the board in this scenario. Our recommendation is to include the OCSP URL in the certificate and let the EAP-TLS auth method determine where to send the OCSP request.
Either of the remaining options can be selected:
- If you select “Do not include OCSP Responder URL”, then ClearPass must be manually configured with an appropriate OCSP URL.
-
This may be done by modifying the EAP-TLS authentication method, setting “Verify Certificate using OCSP” to “Required”, selecting the “Override OCSP URL from Client” checkbox, and then providing a suitable OCSP URL.
-
OCSP requests do not need to use HTTPS.
-
The OCSP URL provided should be a local reference to the same Policy Manager server, i.e. http://localhost/guest/mdps_ocsp.php/1
-
This will ensure that OCSP requests are handled by the same Policy Manager server that handles the client’s EAP-TLS authentication.
- If you select “Specify an OCSP Responder URL”, then a suitable URL can be included as part of each client certificate, without changing the ClearPass configuration. However, there are certain requirements for this URL:
-
Using the IP address of a specific Policy Manager server is not recommended, as this IP will be embedded into each client certificate for the lifetime of that certificate. Changing the IP address would then require reissuing (re-provisioning) any device that has a certificate. If the server is not responding, OCSP checks will also fail.
-
Instead, the OCSP URL should use a DNS name that can be resolved from anywhere in the cluster.
-
The target of the DNS name should be a nearby Policy Manager server. All nodes (publisher and subscribers) are able to respond to OCSP requests.
-
Round-robin DNS can be used to load-balance OCSP requests in different regions.
-
This approach is not recommended for two reasons: server information is embedded into the client certificate (which is unnecessary), and this approach also imposes additional DNS configuration requirements.
OCSP Recommendations
The table below summarizes the recommended settings for OCSP in a publisher/subscriber deployment:
| Product | Setting | Value |
|---|---|---|
| Onboard | Provisioning Settings » Authority Info Access | Do not include OCSP Responder URL |
| Policy Manager | Configuration » Authentication » Methods » EAP-TLS with OCSP Enabled | Enable Override OCSP URL from Client Provide the OCSP URL http://localhost/guest/mdps_ocsp.php/1 |
Load Balancing
Considerations for using third-party load balancing, e.g. for HTTP(S) captive portal, RADIUS auth/accounting have been well documented and are available in the ClearPass + F5 Deployment TechNote. This along with other ClearPass related TechNotes can be located here.
Automated Backups
When ClearPass administrators make changes to the ClearPass Configuration its desirable and best practice to take a copy of the running configuration, so that in the event of a failure a ClearPass node can be re-deployed, especially if this is the Publisher. One of ClearPass’s system jobs that run daily produces an automated Backup file. By default this backup Config saves the configuration database, known as the tipsdb database. As an advanced option you can configure the backup setting to be Config|SessionInfo as shown below, this then saves the configuration data and the access tracker records, this file is known as the tipslogdb file and the Insightdb. To select which files are added to this backup, go to Administration -> Server Manager -> Server Configuration -> Cluster-Wide Parameters as shown below.
These Backup files can be extremely useful whether a customer has a single or multi-node deployment. The auto-backup file can be used to restore a node to a known point. The backup task runs at 01:10am each night.
These backup files are stored within the ClearPass node and can be exported by configuring a file backup server as described later in this document. ClearPass tracks the local backup files and system cleanup jobs ensure they are purged to reduce storage.
Export backup to external location
With the release of ClearPass 6.5 we added the ability to configure directly within the ClearPass GUI a backup destination. Go to Administration->External Servers-> File Backup Servers here you can add SCP and SFTP destinations and as part of the nightly-housekeeping, ClearPass will take a backup and save it securely to this remote destination.
Failover Modes
What happens when something goes wrong in a publisher/subscriber deployment?
Publisher Down
Guest/Onboard
If the publisher goes down, prior to changes introduced in ClearPass 6.2 the internal proxy request will fail and a “404” not found error will be displayed for all Guest and Onboard user-facing pages. This was not the ideal situation. Starting in 6.2 ClearPass moved to an API based approach between the Subscriber and the Publisher for communication specific to Guest/Onboarding, this change allowed the Subscriber nodes to handle failures between the SUB/PUB in a much more friendly way.
The Standby-Publisher
Any subscriber within a cluster can be manually promoted to be the active Publisher for the cluster once the Active Publisher has failed. Sometimes its pertinent that this be a manual procedure but during the time that a cluster does not have an active Publisher some functions across the cluster do not exist, e.g. Creation of Guest accounts… the full list is documented later in this section What do you lose when the Publisher fails?
Now, whilst some customers may be content with having to manually promote a Subscriber, demand from the field and our customers required that we provide an automated method to allow for a specific node to auto-promote itself within the cluster thus ensuring that any service degradation is limited to an absolute minimum.
This feature was introduced in ClearPass 6.1 to allow for a Subscriber to AUTO promote itself from a Standby Subscriber to that of the Active Publisher. Configuration of the Standby Publisher is completed in the Cluster-Wide Parameters under Administration -> Server Manager -> Server Configuration -> Cluster-Wide Parameters
INFO
Before you can designate a ClearPass node as a Designated Publisher, the nodes have to be clustered. For more information covering the process of cluster operations, see the section below on Cluster Operation Commands.
Ensure that ‘Enable Publisher Failover’ is set to TRUE, in the ‘Designated Standby Publisher’ drop down, then select the ClearPass node required to operate as the Standby node.
Note: The Standby-Publisher can still perform full Subscriber duties. However in large deployment, say when over 20 ClearPass nodes are deployed the Publisher and Standby-Publisher might be dedicated nodes and not be performing ANY work beyond cluster configuration and creating Guest accounts and Onboarding users.
INFO
The Standby-Publisher can still perform full Subscriber duties. However in large deployment, say when over 20 ClearPass nodes are deployed the Publisher and Standby-Publisher might be dedicated nodes and not be performing ANY work beyond cluster configuration and creating Guest accounts and Onboarding users.
The standby publisher cannot perform publisher functions until it completes its promotion to that of the active publisher in the cluster.
INFO
The default failover timer is set to 10 minutes, 5 minutes being the minimum value you can select before the standby publisher begins to promote itself to an active state.
As can be seen above we have select node ClearPass182 to be the Standby Publisher. We have in this test environment left the Failover Timer to its default of 10 minutes.
When a subscriber is configured as a Standby Publisher, there is no additional traffic sent to this node compared to any of the other ‘normal’ Subscriber in the cluster.
Publisher Failover - L2 or L3?
When we initially introduced the standby-Publisher in ClearPass 6.1 we enforced the rule that the Standby and Active Publishers must be within the same IP Subnet, i.e. L2-broadcast domain. For certain deployments it was possible to ‘overcome’ this limitation by utilizing a GRE tunnel to provide for vlan-extension or use some other L2 extension technology like VPLS to extend the L2-domain over a L3 WAN boundary. Starting within ClearPass 6.3, this restriction was relaxed. When you configure Standby and Active Publishers to be within separate IP-subnets you are presented with a warning message as shown below.
How the Failover Process works
The Standby Publisher health-checks the Primary every 60 seconds, it makes a SQL call to the Primary Publishers Database, if this fails then after 10 [default] additional attempts [one per minute] it begins the process to promoting itself to be the Active Publisher.
Prior to ClearPass 6.4.0 the node would ping (ICMP) its default GW to see if this failure was related to a network issue, if this failed it would not promote its self to an active state. If this was successful it would then ping (ICMP) the remaining nodes in the cluster and it would require that at least 50% of the nodes respond else again it would not promote, this logic tries to account for potential network related issue. However we found that in some customers the default gateway was a firewall that would not respond to ICMP and the remote ClearPass nodes were protected by firewall policy to limit ICMP over the WAN, so the net result was that the Standby Publisher would never automatically promote.
Starting in ClearPass 6.4.0 the logic was changed in the fail-over processing so that the process used to verify the reachability of the remote ClearPass nodes now uses an outbound HTTPS call, as mentioned on page 10, you already have 443/tcp opened between nodes and it’s a fundamental requirement for ‘normal’ ClearPass<-> communications. Utilizing this HTTPS health check provides for a more robust and predictable failover process.
Mitigation strategies for this failure mode:
Ensure that nodes are being monitored – determine if a publisher node is no longer reachable/providing service, e.g. via SNMP host checking or similar. When a failure is detected, another subscriber node should be promoted either manually or via the automated standby-publisher feature to be the active-publisher; other subscribers will then automatically update and replicate their configuration with the new publisher, which will resolve the issue.
Use a virtual IP for the publisher – reduces the potential for a prolonged service outage during the time the active-publisher is down/promoting for some functions.
Use the subscriber auto-promotion capability – reduces potential for a failure but note that the VIP fails over significantly faster (i.e. 1 second) than a ClearPass Standby-Publisher can promote itself (i.e. 8-9 minutes).
Setup your NAD to point to a primary node, backup node, tertiary, etc. This only covers you for RADIUS auth/accounting traffic. Until the standby Publisher has transitioned into an active state features detailed below will not be available.
INFO
It is presumed and good practice that when you have a standby-publisher and also deploy Virtual IP that the standby-publisher will be ‘paired’ with the active-publisher in the VIP group.
What do you lose when the Publisher fails?
-
General ClearPass & CPG Configuration changes
-
Guest Account creation
-
Certificate Revocation List Updates
-
Onboarding, Certificate creation and revocation
-
AirGroup / MACTrac enrollment
-
MDM endpoint Polling and ingestion
-
ClearPass Exchange Outbound enforcement
Subscriber Down
If a subscriber node goes down, authentication requests, guest access, and Onboard access will fail to this node, probably with a timeout error displayed to the client.
Mitigation strategies for this failure mode:
Ensure that nodes are being monitored – determine if a subscriber node is no longer reachable/providing service, e.g. via SNMP host checking or similar. When a failure is detected, another subscriber node can be used in its place
Use a virtual IP for the subscriber reduces the potential for a prolonged service outage during use. For this to work, all places that reference the subscriber must use its virtual IP address, e.g. captive portal redirection, authentication server configuration, guest registration URLs, sponsor confirmation emails, etc.
Setup your NAD to point to a primary node, backup node, tertiary, etc. This only covers you for RADIUS auth/accounting traffic.
INFO
Also possible options/recommendations:
- Use load-balancing, please review the ClearPass & F5 Load-Balancing TechNote for additional guidance.
Design Guidelines
A ClearPass deployment using the publisher/subscriber model must satisfy the constraints described in this section.
Allow HTTP/S Between Publisher and Subscribers
Ensure that any firewalls that are between publisher and subscribers are configured to permit HTTPS traffic (and HTTP if required), in both directions. Refer to the “Network Traffic Flows” section above for a list of all protocols and port numbers that must be open.
Allow Database & ‘other’ Traffic Between PUB and SUB’s
Replication and cluster management requires that each node must be able to reach every other node on the HTTPS and database port (TCP 5432) on the management interface.
TIP
Design Guidance: Ensure that any firewalls that are between publisher and subscribers are configured to permit TCP/5432 traffic, in both directions. Refer to the “Network Traffic Flows” section above for a list of all protocols and port numbers.
Size The Publisher Node Appropriately
The publisher node should be sized appropriately, as it needs to handle database writes from all subscribers simultaneously. It must also be capable of handling the number of endpoints within the cluster and be capable of processing remote work directed to it in the case of a cluster when Guest account creation and Onboarding are occurring.
If any customer has any concerns about their environment specifically related to heavy workload on their Publisher/Subscriber then they should only consider the deployment of an appliance based ClearPass cluster.
TIP
Design Guidance: In a worldwide large-scale deployment, not all subscriber nodes will be equally busy. If the traffic pattern (busy hours) can be estimated for each subscriber node, these can be added together after adjusting for time zone differences to determine the maximum request rate that must be handled by the publisher node.
Provide Sufficient Bandwidth Between Publisher/Subscribers
The traffic flows between the publisher and subscriber include:
-
Basic monitoring of the cluster – is trivial traffic.
-
Time synchronization for clustering – standard NTP traffic
-
Policy Manager configuration changes – assumed to be infrequent and therefore not a significant consumer of bandwidth
-
Battery multi-master cache – depends on the authentication load and other details of the deployment; cached information is metadata and is not expected to be very large; only replicated within the Policy Manager Zone
-
Guest/Onboard dynamic content proxy requests – this is a web page, essentially, and could be reasonably expected to average 100KB
-
Guest/Onboard configuration changes – changes to database configuration, sent as deltas and are reasonably small (in the order of 10KB)
TIP
Design Guidance: In a large-scale deployment, reduced bandwidth or high latency (>200ms) on the link will provide a lower quality user experience (due to BDP for the TCP data-path, 200ms equates to 2.6Mbps of throughput based upon a 64K window) for all users of that subscriber, even though static content will be delivered locally and will appear to be near-instantaneous. For reliable operation of each subscriber, ensure that there is sufficient bandwidth available for communications with the publisher. For basic auth, we don’t necessarily have a requirement for high bandwidth, BUT the number of round-trips to complete an EAP authentication (may be in excess of 10) could add up to an unpopular amount of time and delay for the end-user.
Bandwidth Usage/Sizing for a ClearPass Cluster
To understand the bandwidth usage between nodes we undertook a study to investigate several load scenarios. For example, we wanted to understand if a node received say 100 auths/sec, either MSCHAPv2 or EAP-TLS with these being the most popular, how much traffic would this generate across the cluster. And as another example, if we generated 5 Guest accounts per second, how much cluster traffic would this generate.
Replication between nodes in a cluster is carried on three ports, tcp-80, tcp-443 and tcp-5432. Starting in ClearPass 6.5.0 we will expose some new counter with in the Graphite reporting tool to allow this cluster traffic to be displayed and monitored.
To understand the load on a network we wanted to record the baseline replication between nodes. So using the ClearPass 6.4.0.66263 release we created a four node cluster. Three of the nodes are within the same IP-Subnet whilst the third sits behind a 10Mb emulated WAN with 50ms RTT. The ClearPass environment has just the basic default configuration.
We recorded via the Graphite tool the data transmitted in a 24-hour period to establish a bandwidth baseline. (We added the 6.5.0 code to the 6.4.0 build to facilitate this graphing). Node ClearPass155 in the below is the Publisher, ClearPass156, 157, 158 are the Subscribers.
Volumetrics of Cluster in an idle state
PUBLISHER => SUBSCRIBER The data volumes are shown below in the graph, the raw details are as follows, we noted the same volumes from the Publisher to the three Subscriber’s in the cluster.
This turns out to be 145MB of traffic port 443 and 47MB of traffic on port 8432 for a total of 192MB at an average rate of 2,633 Bytes/second (0.0026MB/second).
You will be able to access these statistics to record the inter-cluster ClearPass traffic on the nodes in graphite from the following interface… https://IP_Address/graphite then navigate to Graphite-> basic_perf -> [ZONE] -> [Chose the Publisher] -> nw(5432) or http(80) or https(443)
SUBSCRIBER => PUBLISHER The data volumes are shown below in the graph, the raw details are as follows, we noted the same volumes from all three Subscriber’s in the cluster to the Publisher.
This turns out to be 83MB of traffic port 443 and 47MB of traffic on port 8432 for a total of 130MB, at an average rate of 1,580 Bytes/second (0.0016 MB/second).
You will be able to access these statistics to record the inter-cluster ClearPass traffic on the nodes in graphite from the following interface… https://IP_Address/graphite then navigate to Graphite-> basic_perf -> [ZONE] -> [Chose a Subscriber] -> nw(5432) or http(80) or https(443)
INFO
All boxes are in the same zone, default for the above metric.
RADIUS RTT Considerations
Special consideration must also be given to the RTT between the NAD/NAS and the authenticating ClearPass Node. Below we have provided the results from testing we undertook to determine the point where the RTT is a significant contributor to the failure of the Auth. The below test were performed on ClearPass 6.4, 10 test for each sample to ensure a good model of results.
Client OS : Windows 7 Authentication Protocol : EAP-PEAP / EAP-MSCHAPV2
RADIUS RTT Testing from NAD to ClearPass (EAP-PEAP Win7)
| Round Trip Time | Iteration | Test Result | Request Process Time |
|---|---|---|---|
| 600 MS | Test 1 | PASS | 10 Sec |
| Test 2 | PASS | 6 sec | |
| Test 3 | PASS | 6 sec | |
| Test 4 | PASS | 8 Sec | |
| Test 5 | PASS | 6 Sec | |
| Test 6 | PASS | 8 Sec | |
| Test 7 | PASS | 7 Sec | |
| Test 8 | PASS | 7 Sec | |
| Test 9 | PASS | 7 Sec | |
| Test 10 | PASS | 6 sec | |
| 1000 MS | Test 1 | PASS | 11 sec |
| Test 2 | FAIL | TIMEOUT | |
| Test 3 | PASS | 10 Sec | |
| Test 4 | PASS | 11 sec | |
| Test 5 | PASS | 11 Sec | |
| Test 6 | PASS | 10 sec | |
| Test 7 | PASS | 11 Sec | |
| Test 8 | PASS | 10 Sec | |
| Test 9 | PASS | 10 Sec | |
| Test 10 | PASS | 11 Sec | |
| 1500 MS | Test 1 | FAIL | TIMEOUT |
| Test 2 | PASS | 16 Sec | |
| Test 3 | FAIL | TIMEOUT | |
| Test 4 | PASS | 15 Sec | |
| Test 5 | FAIL | TIMEOUT | |
| Test 6 | FAIL | TIMEOUT | |
| Test 7 | PASS | 16 Sec | |
| Test 8 | FAIL | TIMEOUT | |
| Test 9 | FAIL | TIMEOUT | |
| Test 10 | Pass | 15 Sec | |
| 2000 MS | Test 1 | FAIL | TIMEOUT |
| Test 2 | FAIL | TIMEOUT | |
| Test 3 | PASS | 18 Sec | |
| Test 4 | FAIL | TIMEOUT | |
| Test 5 | FAIL | TIMEOUT | |
| Test 6 | FAIL | TIMEOUT | |
| Test 7 | FAIL | TIMEOUT | |
| Test 8 | FAIL | TIMEOUT | |
| Test 9 | FAIL | TIMEOUT | |
| Test 10 | FAIL | TIMEOUT | |
Client OS: Windows 8.1 Authentication Protocol : EAP-PEAP / EAP-MSCHAPV2
RADIUS RTT Testing from NAD to ClearPass (EAP-PEAP Win8.1)
| Round Trip Time | Iteration | Test Result | Request Process Time |
|---|---|---|---|
| 600 MS | Test 1 | PASS | 6 Sec |
| Test 2 | PASS | 11 Sec | |
| Test 3 | PASS | 7 Sec | |
| Test 4 | PASS | 6 Sec | |
| Test 5 | PASS | 6 Sec | |
| Test 6 | PASS | 6 Sec | |
| Test 7 | PASS | 6 Sec | |
| Test 8 | PASS | 7 Sec | |
| Test 9 | PASS | 5 Sec | |
| Test 10 | PASS | 6 Sec | |
| 1000 MS | Test 1 | FAIL | TIMEOUT |
| Test 2 | PASS | 10 Sec | |
| Test 3 | PASS | 10 Sec | |
| Test 4 | PASS | 11 Sec | |
| Test 5 | PASS | 10 Sec | |
| Test 6 | PASS | 10 Sec | |
| Test 7 | PASS | 10 Sec | |
| Test 8 | PASS | 9 Sec | |
| Test 9 | PASS | 10 Sec | |
| Test 10 | PASS | 9 Sec | |
| 1500 MS | Test 1 | PASS | 15 Sec |
| Test 2 | FAIL | TIMEOUT | |
| Test 3 | PASS | 14 Sec | |
| Test 4 | FAIL | TIMEOUT | |
| Test 5 | PASS | 15 Sec | |
| Test 6 | PASS | 17 Sec | |
| Test 7 | PASS | 13 Sec | |
| Test 8 | PASS | 15 Sec | |
| Test 9 | FAIL | TIMEOUT | |
| Test 10 | Pass | 12 Sec | |
| 2000 MS | Test 1 | PASS | 18 Sec |
| Test 2 | FAIL | TIMEOUT | |
| Test 3 | FAIL | TIMEOUT | |
| Test 4 | PASS | 18 Sec | |
| Test 5 | FAIL | TIMEOUT | |
| Test 6 | PASS | 20 Sec | |
| Test 7 | FAIL | TIMEOUT | |
| Test 8 | FAIL | TIMEOUT | |
| Test 9 | FAIL | TIMEOUT | |
| Test 10 | FAIL | TIMEOUT |
ClearPass Cluster Bandwidth Consumption
Guest
Measurements made against 6.2 give the following approximate traffic flows:
Subscriber -> Publisher: 3 KB per guest registration
Publisher -> Subscriber: 75 KB per guest registration
For database replication of a created guest account:
Publisher -> Subscriber: ~1 KB per guest account
Subscriber -> Publisher: ~0.6 KB per guest account
Insight
For Insight traffic (guest account creation):
Publisher -> Insight node: ~1.6 KB per guest account
Insight -> Publisher: ~1.4 KB per guest account
Subscriber -> Insight node: ~0.5 KB per authentication
Insight -> Subscriber: ~1 KB per authentication
Use Zones for Geographical Regions
ClearPass shares a distributed cache of runtime state across all nodes in a cluster, this is commonly referred to as the Multi-Master-Cache. If zoning has not been configured then traffic flows from the Publisher <-> Subscriber and also from Subscribers <-> Subscriber.
These runtime states include:
-
Roles and Postures of connected entities
-
Machine authentication state
-
Session info used for COA
-
Which endpoints are on which NAS
In a deployment where a cluster spans WAN boundaries and multiple geographic zones, it is not necessary to share all of this runtime state across all nodes in the cluster. For example, endpoints present in one geographical area are not likely to authenticate or be present in another area. It is therefore more efficient from a network usage and processing perspective to restrict the sharing of such runtime state to a given geographical area.
ClearPass uses this runtime state information to make policy decisions across multiple transactions.
Certain cached information is only replicated within the servers within a Policy Manager Zone. In a large-scale deployment with multiple different geographical areas, multiple zones should be used to reduce the amount of data that needs to be replicated over a wide-area network.
TIP
Design Guidance: In a large-scale deployment, create one Policy Manager Zone for each major geographical area of the deployment. To handle RADIUS authentication traffic in each region, configure the region’s networking devices with the Policy Manager nodes in the same Zone.
If additional authentication servers are required for backup reasons, you can specify one or more Policy Manager servers located in a different Zone, but prefer remote servers that have the best connection (lowest latency, highest bandwidth, highest reliability).
INFO
Zones also effected the operation of the OnGuard Persistent agent, to fully understand the impact of ClearPass Zones on OnGuard, please review the OnGuard Clustering TechNote found here.
INFO
You may have configured the RADIUS server on the Network Infrastructure to use remote ClearPass nodes that are OUTSIDE of their primary geographic area. In this scenario the replication of the runtime state might be relevant. Consider this behavior during the design and deployment of a distributed cluster of ClearPass nodes.
Use Nearest Subscriber Node
Guests/Onboard clients should be directed to the nearest subscriber node. From the client’s point of view, the internal API call to the publisher will be handled transparently. The best response time for static resources will be obtained if the server is nearby.
TIP
Design Guidance: In a large-scale deployment, the publisher should not receive any authentications requests or Guest/Onboard request directly to help reduce the maximum amount of traffic possible (ignoring API requests from subscribers as well as the outbound replication traffic to subscribers).
Use Subscriber Nodes As Workers
Subscriber nodes should be used as workers that process:
-
Authentication requests (e.g. RADIUS, TACACS+, Web-Auth)
-
OCSP requests
-
Static content delivery (images, CSS, JavaScript etc.)
Avoid sending this ‘worker’ traffic to the publisher, as it will already be servicing API requests from subscribers, handling the resulting database writes, and generating replication changes to send back to the subscribers.
If Onboard is used, ensure that the EAP-TLS authentication method in Policy Manager is configured to perform “localhost” OCSP checks, as described under “Onboard Certificates And OCSP”, above.
TIP
Design Guidance: In a large-scale deployment, isolate the publisher node, to allow it to handle the maximum amount of traffic possible.
Use Dedicated Insight Node
Collecting Netevents and updating the Insight database generates a lot of database writes (insert and update statements) that translates to heavy system IO.
All ClearPass servers, whether physical or virtual, are write-limited when it comes to database I/O, due to the need to maintain reliability. To understand why, consider that most database tables will be cached in memory due to the large amount of RAM available, and will not be read-limited; but database writes are performed to a journal that must be flushed to disk for reliability reasons.
In a large-scale deployment, the publisher node should already be isolated according to the advice under “Use Subscriber Nodes As Workers”, above. If the ‘worker traffic’ sent from the subscriber nodes is expected to fully saturate the capacity of the publisher node, this would be considered a very large-scale deployment. In this case, Insight should not be placed (enabled) on the Publisher node. However, if the publisher node has spare capacity, it can be used to support the Insight Database, but the nodes capacity and performance should be carefully monitored.
TIP
Design Guidance: In a very large-scale deployment, Insight should be placed on its own dedicated node. This removes a lot of processing and IO from the publisher, allowing it to handle the maximum amount of worker traffic as possible. Insight data is valuable and could be used as part of policy evaluation. If this is the case, then there should be redundant Insight nodes enabled for fault tolerance. On top of that, performance could be impacted if there is a delay between authenticating ClearPass and Insight node.
Insight Setup
Insight must be enabled on at least one node (two nodes is better) within a cluster. Multiple functions are dependent on Insight for them to function, e.g. MAC caching.
INFO
By default Insight is NOT enabled on a node, you MUST manually enable Insight, this is performed from Administration -> Server Manager -> [node] System -> ‘Enable Insight’
Insight can be enabled on multiple nodes with in a Cluster but you need to carefully consider where you enable Insight. For every node where Insight is enabled, all the other nodes with in the cluster subscribe through a process called ‘NetEvents’ to send data to this/these Insight Database’s. The amount of data sent can be extremely high, so guidance from a ClearPass specialist is recommended when considering this part of a cluster deployment.
INFO
Insight does NOT replicate data to any other nodes within the cluster, it is an entirely standalone Database.
When you configure reporting on a node the reporting configuration is isolated to this individual node. In the above diagram you see a setting called Insight Master, this allows other nodes where Insight has been enabled to subscribe to this node’s Insight Report configuration. In the event that this node fails, the reports will still be produced as the Database the reports are generated against will be similar on other nodes in the cluster, not because the Insight Database has been replicated but because the nodes in the cluster all send a copy of their ‘NetEvents’ to all nodes that have Insight enabled.
INFO
If you are at a remote site with a local ClearPass and this node points to a remote Insight node, you cannot authenticate users if your policy includes querying Insight as an authorization source and the WAN link is down.
Insight Resilience
As we mentioned above Insight can be enabled on multiple nodes within your cluster, this then provides for a level of Insight resiliency. If you use Insight for Authorization within your cluster where you enable Insight is an important design consideration. Also consider that MAC caching (important part of a ClearPass Guest workflow) requires that Insight is enabled on at least a single node.
As you enable Insight on additional nodes in the cluster, ClearPass automatically adds these nodes to the Insight Database authentication source definition and provides the ability to set the Backup server priority when you have more than three nodes enabled for Insight as shown above.
Whenever an Insight enabled node is dropped from cluster, the corresponding node entry in Insight repository gets removed.
INFO
When an Insight enabled node in a cluster is down / out of sync for more than 30mins, the insight node is moved to be the last Insight node in the fall-back list. The allows for fail-though to other Insight nodes, on the chance that if all other nodes have also failed its likely a major network outage.
INFO
Our guidance around enabling Insight is that if you are running a ClearPass network that we consider large and the worker traffic is not consuming all the Publishers resources then Insight can be enabled on the dedicated Publisher and the standby-Publisher. If you have a ClearPass network that is considered very-large, where the worker traffic will consume the Publishers resources, then Insight could still be enabled on the dedicated Publisher and the standby-Publisher but these nodes should be dedicated to cluster duties, i.e. the Publisher and standby-Publisher should not be performing any authentications.
Cluster Wide Parameters config settings
Auto backup settings should be set to “None” or “Config"
Session log details retention – 3 days
Known endpoint cleanup interval – review and setup if appropriate. Depends on the nature of the deployment.
Unknown endpoint cleanup interval – recommend that this be enabled. We suggest 7 as a default.
Expired guest account cleanup interval – review and set value depending on the nature of deployment. We suggest 30 days.
Profiled Unknown endpoint cleanup interval – we suggest 7 as the default.
Audit records cleanup interval – 7 days
Configure Alert Notification email/SMS.
Insight data retention – 30 days
Cluster Operations
A cluster exists when two or more ClearPass nodes are logically ‘joined’ together so that they can distribute processing of Authentications/Onboarding etc. across multiple nodes.
The process to join a node to another node to make a cluster or to join a new node to an existing cluster can be performed in the GUI or from within the CLI. The function to change a node from a Publisher to a Subscriber (because we only have a single active Publisher in a cluster) is always performed on the node that is going to be changed.
Making a node a Subscriber from the GUI
The procedure from the GUI is performed from the Administration => Server Manager => Server Configuration => [Make Subscriber]
In the above, we are about to make the node ClearPass183 a subscriber. We point it to the clusters Publisher 10.2.102.181 and have entered the Publishers password. The Publishers password is the same as the appadmin password. During the downgrade of a node to a Subscriber the below represent the messages you’d expect to see during this process, and a final message of ‘Make subscriber complete…’.
Prior to the ClearPass 6.4 release where we optimized this process, the process of adding nodes to the WAN can appear to be taking a long time, this is explained later in the Cluster Upgrade Section. What is actually happening in the background is the ConfigDB is being replicated. If you look at the Dashboard on the Publisher you will see the status for the new node, ‘Sync in Progess’, is shown in the Dashboard Cluster Status widget.
You can also track this process in the Event Viewer following a successful addition is the below message.
Timings to add a ClearPass Node to a cluster – Timings
The below data is based on ClearPass 5K hardware and for adding a node where the Publisher has no endpoints, i.e. it’s a clean default configuration.
**Test1 - Local-LAN 1GB – 140-150 seconds
Test2 - WAN 2MB with 100ms RTT – 260- 280 seconds
Test3- WAN 10MB with 100ms RTT 250-275 seconds
INFO
The time for Test3 above is similar due to TCP BDP.
Making a node a Subscriber from the CLI
The process to make a node a Subscriber from the CLI is also fairly simple. You need to login to the CLI with the appadmin userid. Multiple cluster related administrative functions can be performed from here and these provide additional functionality over what can be accomplished from the GUI.
Use the command ‘cluster make-subscriber –I [publisher ip_address]’ (other switches are possible as shown below) to add a standalone Publisher to a cluster and make it a Subscriber.
[appadmin@ClearPass183.ClearPass-testing.com]# cluster make-subscriber
Usage:
**make-subscriber -i <IP Address> [-l] [-b]
**
-i <IP Address> – Publisher IP Address
-l – Restore the local log database after this operation
-b – skip generating a backup before this operation
After entering the IP address of the Publisher you’ll see a suitable warning message about the action you’re about to perform. After confirming you want to continue you have to enter the password for the Publisher, this is the cluster password, which will be the appadmin password.
See below for a view of the process and the typical messages you will see in the CLI when adding a node to the cluster.
Then the process to downgrade the node to a Subscriber begins. It takes a while as there has to be a sync of the ConfigDB between the nodes and especially if this is performed over a WAN the process can take a while. Some timings were shown above.
Cluster Administration
Managing the cluster is straightforward and typically requires little involvement. However at times problems or issues can occur with the cluster which will may require some operational involvement. In the event that a node has lost communication with the cluster for a period greater than 24-hours the node will be marked as down by the Publisher. To re-join this node to the cluster requires that the node is removed from the cluster on the Publisher and the configuration on the out-of-sync node reset.
Removing the Subscriber from the cluster can be accomplished in the GUI or the CLI.
In the GUI under the **Administration -> Server Manager -> Server Configuration -> [Select_ClearPass_Node] - > Drop Subscriber
You have to confirm the action to drop the Subscriber from the cluster.
Following the confirmation message above, there are a couple of additional settings, you can select if the Database on the node you are about to drop is to be cleared and reset and also if you want the Database on the local node (Publisher) to be backed up before you begin this cluster maintenance.
Because the ClearPass node has been classified as ‘bad’ by the Publisher which ‘owns’ the status/health of the cluster its also likely you will have to perform some intervention on the Subscriber that requires resetting. In the CLI use the command cluster reset-database command to reset the nodes configuration back to a default state, except that is for the IP addressing and the appadmin password. Following this reset, reboot the node to keep the process clean, then add the node back to the cluster as describer previously.
Cluster Upgrades
Following the release of a new patch or upgrade version of the ClearPass software it’s highly desirable to upgrade the ClearPass nodes in the cluster. Whilst we are not going to discuss the installation process, I want to discuss and guide you regarding the best way to upgrade a cluster and the considerations to be aware off.
INFO
In short the recommendation is to upgrade the Publisher first, ensure that this is FULLY complete and then upgrade the subscribers in a serial process. Starting in the ClearPass 6.4 software release the process of adding and upgrading nodes has been significantly improved. We have streamlined the process in several ways to improve the upgrade process. When you download the new software and install this software the unused partition/file-system is where the new version is installed and a copy of the Configuration Database is placed. When you reboot the s/w installation is completed and the remaining databases are copied and if required migrated if new Database schemas changes have been introduced in this new code release. The installation time is dependent on the size of the Database’s which will be directly related to the number of endpoints etc.
Whilst this portion of the upgrade is happening the remaining subscribers can still continue to process authentications etc. But no new Guest or Onboarding can occur as documented in the section What do you lose when the Publisher fails?
Following the upgrade of the Publisher, you need to upgrade the Subscribers in a serial process ensuring that the upgrade has completed before starting the next upgrade. Why you ask? Well, during the upgrade process the Database on the Publisher is locked. This means several things, one that you cannot make changes to the configuration on the Publisher, again you cannot create new Guest accounts or Onboard devices. This ‘locking’ of the Publishers Database has been significantly streamlined in ClearPass 6.4, we only lock the configuration Database for the time it takes to generate a dump of the publisher’s config Database. During the Subscriber upgrade we used to copy a lot of data in a serial process, now we have optimized a bulk transfer of the Data from the Publisher to the Subscriber. This allows for the Publishers Database to be released significantly quicker and allows for the next Subscriber to be added.
Below is a copy of the messages that we now post when you add the node via the CLI, you can see some of the improvement from the below… specifically what I’ve highlighted is the locking/backup/release process as I’ve explained above.
INFO
The key message below is the ‘ Config database lock released’, this is the point where you can begin to add another subscriber to the cluster.
CLI messages for adding a node
Setting up local machine as a subscriber to 10.2.100.155
INFO - Local checks before adding subscriber passed
INFO - 10.2.100.155: - Subscriber node added successfully for host=ClearPass-158.ns-tme.com
INFO - Subscriber node entry added in publisher
INFO - Backup databases for AppPlatform
INFO - Backup databases for PolicyManager
INFO - Stopping services
INFO - Dropped existing databases for Policy Manager
INFO - Create database and schema for Policy Manager
INFO - Local database setup done for Policy Manager databases
INFO - Subscriber password changed
INFO - Syncing up initial data…
INFO - Config database temporarily locked for updates
INFO - 10.2.100.155: - Backup databases for AppPlatform
INFO - 10.2.100.155: - Backup databases for PolicyManager
INFO - Config database lock released
INFO - Subscriber now replicating from publisher 10.2.100.155
INFO - Retaining local node certificate
INFO - Subscriber replication and node setup complete
INFO - Notify publisher that adding subscriber is complete
INFO - Subscriber added successfully
INFO - Restarting Policy Manager admin server
As we’ve just explained the upgrading of the subscribers must be completed as soon as possible after the Publisher has been upgraded as its likely that following the upgrade of the Publisher, the Subscribers will be out of sync with the Publisher. Nodes that are out of Sync with the Publisher will not be able to receive changes made to the clusters configuration, be that new or amended service policies or new Guest Accounts. The best way to see if the upgrade has completed is to ensure the message below is seen in the Event Viewer on the Publisher or that the above messages as observed in the CLI.
Depending on the type of software upgrade you are doing on the Publisher it is possible that the Subscribers will not go out of sync. Either way the recommendation is to upgrade the remaining nodes within the cluster ASAP.
What follows are some other additional good practice processes that are valid but not absolutely necessary.
INFO
Stopping the RADIUS server on the node before you begin the upgrade. This allows for a clean take-down of the node and no NAS devices will send authentications to it expecting a response. If this is completed a couple of minutes before the upgrade begins the NAS devices should have marked this RADIUS server
Also, we recommend disabling auto-backup and standby publisher setting needs to be disabled as well prior to starting an s/w upgrade. Below is taken from the ClearPass User Guide.
Select any of the following auto backup configuration options:
Off - Select this to not perform periodic backups.
Note: Select Off before upgrading ClearPass Policy Manager to avoid the interference between Auto backup and migration process.
Config - Perform a periodic backup of the configuration database only. This is the default auto backup configuration option.
Config|SessionInfo - Perform a backup of the configuration database and the session log database.
Cluster Upgrade Tool
We have recently made available a cluster upgrade patch that will simplify the upgrading of large ClearPass multi-node clusters. The tool was written to take advantage of some of the changes we made in the underlying 6.4.0 code-release. Some of these are discussed in the section above that relate to the processes used when adding nodes to ClearPass clusters. The tool is available for ClearPass versions 6.3 and 6.2. It automates a vast amount of the tasks required to upgrade nodes, e.g. it will download the upgrade image to the central Publisher and then push the code update as required to the end-nodes. The tool is released as a patch update for ClearPass 6.2 and 6.3 versions. It can be downloaded and installed either through ClearPass’s Software Updates portal, or from the HPE Networking Support portal. Once the tool is installed you can access the tool at https://[YOUR_PUBLISHER_IP]/upgrade
There is a section in the user guide that covers the cluster upgrade tool in detail. It can be located here
Scaling Limitations
Different components of a ClearPass deployment will scale differently, due to the design of the publisher/subscriber model. Certain components are listed below with the limits to scaling identified.
Authentication capacity: scales linearly in the number of subscriber nodes. Add more nodes to provide additional capacity to service authentication requests.
Logging capacity: scales linearly in the number of subscriber nodes, as each node handles its own logging.
Insight reports: does not scale with additional nodes as it is centralized. Use a separate Insight node sufficient to handle the incoming Netevents traffic from all nodes in the cluster. The publisher node should not be used as the Insight reporting node in a very large-scale deployment.
Configuration changes (Policy Manager): these are assumed to be infrequent and therefore are not a significant limit to scaling, as the total size of the configuration set will be bounded.
Replication load on publisher: scales linearly in the number of subscriber nodes. The replication is assumed to be relatively efficient as only deltas are sent.
Configuration changes (Guest/Onboard): does not scale with additional nodes as it is centralized. Requires the publisher be scaled to support write traffic from the maximum number of subscribers that would be active concurrently.
Virtual IP Considerations
Using a Virtual IP address allows for the deployment of a highly available pair of servers. This is intended to reduce the amount of downtime in the event of a server failure: if one of the servers in a HA pair fails, the other server can take over the virtual IP address and continue providing service to clients. Particular useful if the NAS devices are trying to process basic RADIUS authentications to a ClearPass node.
However this does not eliminate the failure modes described above. Consider the case where the publisher node that currently has the virtual IP address fails. The backup publisher node cannot take over immediately (in the sense of it creating Guest accounts etc,) as the failure may be transient and the minimum time it takes for a standby-Publisher to become active is about 8 minutes, this duration is made up of 5 minutes (5 attempts) to connect to the active-Publisher’s Database then about 3-4 minutes for the node to promote itself in to an active state. There will always be a delay before the virtual IP address is back in service, in the sense that the IP address NAS clients are communicating with is able to process more than basic Database read actions i.e. RADIUS authentication. During this window, requests from subscribers to write to the Publishers Database will fail as there will be no publisher responding to the virtual IP address than can write to the Database.
2.2 - ClearPass Service Routing
The following guidance has been produced to aid field engineering, customers and partners to understand how ClearPass Policy Manager provides services on either the Data or Management Interface or both.
Background
ClearPass has the ability to support multiple physical Ethernet Interfaces. Commonly referred to as the ‘Data Port / Data Interface’ and the ‘Management Port / Management Interface’. We use the term port and interface loosely to mean the same thing. As we explain in this document, when both interfaces are configured the expected behavior as to which services listen on which interface and which interface is used to reply when a request is received is not always as expected. This document attempts to provide some clarity.
-
Today CPPM only supports the use of two physical interfaces (C1000/C2010/C3010), even though all of our hardware actually ships with four physical interfaces we only utilize a maximum of two today (Sep 2021). This restriction also applies for VM deployments, where a maximum of two supported interfaces can be configured.
-
We allow the configuration of a dedicated SPAN port on one of the two spare Ethernet port on the onboard 4-port card. This allows us to ingest DHCP Discover and Request packets for profiling, this helps remove the requirement to configure DHCP IP helpers across the entire network.
-
CPPM can also be deployed using a single interface, this would be the Management Interface. However, the second interface (data port) should exist physically on the system and is optionally configured. This applies specifically to a VM deployment.
When both the interfaces are configured there are changes in the way our listening daemons run and bind to interfaces. Details of the different services and the respective interfaces they bind are explained below.
Radius Request in 6.9.x and 6.10.x
The Data port interface alone cannot be configured. The manageport is mandatory and the data port is optional. Once an interface is given an IP address it in effect then becomes capable of receiving and replying to requests, be that RADIUS, Captive Portal, OnGuard etc.
However, when both the interfaces are configured, the radius request can be sent to both the interfaces and we reply with the radius response on the interface we initially received the request on.
OnGuard communicated with ClearPass through the data interface of both management and data interfaces are configured.
Client to CPPM Route selection
The following covers how route selection is chosen, this covers Client <-> CPPM.
-
For network traffic that are received on the Management Interface, this interface is used as the return interface.
-
For network traffic that are received on the Data Interface, this interface is used as the return interface.
-
If the data interface is not configured all traffic will use the Management Interface.
INFO
All of the above rules can be overridden by static routing from the ClearPass CLI using the appadmin UserID. An example of this is below in the next section.
CPPM Auxiliary Traffic Route selection
The following services follow the below rules in regard to how their route selection is chosen, this specifically covers CPPM <-> CPPM communications.
Active Directory, LDAP, NTP, Network devices, CPPM Cluster Communications, Cloud updates, CRL, OSCP, CoA, Endpoint Context-Servers (PANW, MDM)
When CPPM is configured with both interfaces, the following applies to route selection….
-
If the destination network/address is in the management subnet then we use the management interface.
-
If the destination network/address is in the data subnet then we use the data interface.
-
If the destination network is not in either management or data subnets, then we use the data interface by default.
When CPPM is configured with a single interface, the following applies to route selection…
- When only one interface is configured, then the traffic goes through management port. This applies to all the network communication within CPPM
INFO
If we attempt to communicate with the device through the data-interface and fail we will not try the management-interface unless the host-address or remote-subnet route has specifically been configured.
INFO
All the above rules can be overridden by static routing from the ClearPass CLI using the appadmin UserID.
The following command example can be used to add routes as and if required. Make special notice of the option in the command syntax of “network ip add mgmt / data……..”
CPPM cluster traffic interfaces
INFO
In reference to clustering traffic, the management IP address of the publisher needs to be accessible to all subscribers. The subscribers may reach the publisher’s management IP either through the subscriber’s management interface or data interface based on network routing set up.
CPPM cluster traffic TCP/UDP ports used
-
UDP Port 123 NTP (Subscriber to Publisher)
-
TCP Port 443 HTTPS (Bi-directional)
-
TCP Port 5432 PostgreSQL for DB replication (Subscriber to Publisher)
-
TCP Port 5433 PostgreSQL for insight and log DB queries between cluster nodes
-
TCP Port 80 Bi-direction - change status queries between CPPM nodes.
INFO
The CPPM DB sync for PostgreSQL. The sync is 99% Publisher to Subscriber. However there are bi-directional keep-alives between the DB’s, please ensure if any firewalls exist between CPPM instances the firewall rules allow bi-direction traffic.
Onboard and Guest Portal Caveats
Both Onboard and Guest Portal are supported on the Data and Management interfaces, separately and concurrently.
OnGuard Caveats
If Management and Data interfaces are configured concurrently, then OnGuard communicates with ClearPass through the Data interface.
- 6658 TCP for OnGuard client to communicate with CPPM. Otherwise, client doesn’t appear in OnGuard Activity tab.
CPPM to Active Directory
The following is the list of services and their ports used for Active Directory communication:
-
UDP Port 88 for Kerberos authentication
-
UDP and TCP Port 135 for domain controllers-to-domain controller and client to domain controller operations.
-
TCP Port 139 and UDP 138 for File Replication Service between domain controllers. (Probably not necessary for CPPM)
-
TCP and UDP Port 389 and 636 for LDAP to handle normal queries from client computers to the domain controllers.
-
TCP and UDP Port 445 for File Replication Service (Not necessary for CPPM)
-
TCP and UDP Port 464 for Kerberos Password Change
-
TCP Port 3268 and 3269 for Global Catalog from client to domain controller.
-
TCP and UDP Port 53 for DNS from client to domain controller and domain controller to domain controller.
VIP Caveats - Physical v Virtual Caveats
You can configure VIP address pairs concurrently across the Management and Data Interfaces. Prior to 6.1.1 if the server had both Management and Data VIP configured, then the VIP will only work with the data interfaces.
VIP address can be used for the following services…..
-
RADIUS
-
Guest
-
TACACS+
-
WEBAUTH, this includes dissolvable OnGuard agent
- OnGuard persistent agent always go to the Physical IP address
For other Services we use the Physical Interface IP address
- GRE / SMTP
INFO
If the VIP address is configured as the RADIUS server IP address in a switch/controller then the VIP IP address should be configured as the authorized RF3576 server in the switch/controller to ensure CoA functions correctly.
Other Interface Rules / Suggestions
The CLI can ONLY be accessed from the Mgmt Interface. If a customer has concerns over ClearPass Policy Manager Admin UI access, you can restrict access using the Application Access Control. Found under Server Manager –> Server Configuration –> Network
INFO
If you inadvertently lock yourself out of the UI, we have supplied a CLI level command to remove all of the Access Control ACL’s. This will remove all of the Access Control ACL’s, you cannot just remove a single Application Control ‘ACL’
To access this command, login to the CLI with the appadmin account and issue the following command:
system app-access-reset
DHCP Forwarded messages can be sent to either Management or Data Interface and we will update our fingerprint database accordingly.
Interfaces in DMZ/Trusted firewall Zones
If a deployment is such that an interface needs to be deployed into a ‘public’ environment such as a firewall DMZ, we recommend that you have the Data interface in the DMZ and the Management interface in the trusted zone. Secure access to the Data Interface through a combination of firewall rules that allows access to the DMZ and by the use of CPPM’s Application Access Control feature discussed previously.
External Updates
Every CPPM node requires HTTP(80) and HTTPS(443) to [clearpass.arubanetworks.com/webservice] for plugin updates.
Publisher/Subscriber Cluster
Finally, remember that any publisher or subscriber can process service requests on their Data or Management ports under the restrictions highlighted in this document.
2.3 - ClearPass Wired Policy Enforcement Guide
The Building Blocks for Secure Access
There are four fundamental elements for building a secure, dynamic wired edge: Profiling, Authentication, Authorization and Posture.
Profiling
Understanding which devices are connecting to the network and what each of their capabilities are is critical to building a secure network policy. For example, Windows, macOS and most Linux distros have robust and flexible 802.1X supplicants that support secure user and device authentication, whereas most printers, media players, building controls, sensors and other headless devices do not support any interactive authentication methods.
Device profile information is also important for detecting unauthorized access to the network. If a user were to change the MAC address of their laptop to match a previously authenticated device, like a printer, for example, ClearPass will detect a profile change and trigger a conflict state.
Authentication
User and/or device identification enables dynamic network policies based on properties such as group, department, organizational structure, or owner. Authentication solutions can range from simplistic to complex, but flexible enough to meet the needs of an organization’s security policy.
Authorization
The authorization phase is where most of the magic happens, regardless of the authentication method. Contextual information from all corners of the network and infrastructure can be evaluated to help make a policy decision. Some examples of contextual data sources include the user identity store, enterprise mobility management solutions, endpoint security solutions, asset management tools, the ClearPass device profile information, as well as nearly anything that has a SQL or API-based interface. The possibilities are endless and allow for robust, dynamic network security policies.
Posture
Posture can mean many different things in different environments. In a traditional “NAC” sense of the word, posture often refers to device health using some form of agent, whether persistent, dissolvable or embedded. This agent validates a predefined health policy that is used as part of authorization for network access. As more and more organizations deploy Enterprise Mobility Management (EMM) solutions for both corporate and personal assets, posture has evolved to included device data from these solutions.
In environments where traditional health status is not required for security or business requirements, profiling data can be viewed as a type of posture for the device. For example, a device that starts as a printer and becomes a Mac laptop creates a conflict condition which indicates some type of device posture change.
Technologies and Components
Standards and Technologies
802.1X
802.1X is a framework for port-based access control which is most commonly used with 802.3 Ethernet networks and 802.11 wireless LANs. There are three entities: supplicant (client device), authenticator (network device), and the authentication server (commonly a RADIUS server).
Additional information: http://www.ieee802.org/1/pages/802.1x-2010.html
EAP
EAP is the Extensible Authentication Protocol and is a framework for various authentication methods (known as EAP methods). EAP operates as part of the 802.1X framework at layer 2 prior to IP address assignment.
Additional information: https://tools.ietf.org/html/rfc3748
Common EAP Methods
There are over 40 EAP methods in the wild but the most popular and widely supported methods are EAP-TLS, PEAP and EAP-TTLS.
EAP-TLS (Transport Layer Security) is the gold standard in network authentication and uses mutual authentication with both server and client certificates. EAP-TLS is recommended for secure network authentication.
Additional information: https://tools.ietf.org/html/rfc5216
PEAP (Protected EAP) encapsulates other EAP methods inside a TLS tunnel and uses a server-side certificate for authentication server validation by the supplicant. Common inner methods include EAP-MSCHAPv2 and EAP-GTC. Due to wide OS supplicant support, PEAPv0/EAP-MSCHAPv2 is the most widely used EAP method but suffers from security issues related to man-in-the-middle attacks when the supplicant is not pre-configured.
Additional information: https://tools.ietf.org/html/draft-kamath-pppext-peapv0-00
EAP-TTLS (Tunneled Transport Layer Security) is similar to PEAP and uses a server side certificate with supplicant validation. This EAP method is commonly used in non-Active Directory environments where username/password based authentication is desired. EAP-TTLS is supported on a wide range of platforms but may require an administrative configuration profile and/or manual configuration which can add to deployment overhead and complexity. The EAP method also suffers from the same man-in-the-middle attack concerns as PEAP with a supplicant that is not pre-configured.
Additional information: https://tools.ietf.org/html/rfc5281
RADIUS
The RADIUS protocol is used for Authentication, Authorization and Accounting (AAA) communication between authenticators (network access devices) and the authentication server (RADIUS server). Attribute Value Pairs (AVPs) are used to pass information between the authenticator and authentication server in both directions.
EAP messages are encapsulated in RADIUS packets between the authenticator (network device) and the authentication server (RADIUS server).
Additional information: https://tools.ietf.org/html/rfc2138
SNMP
Simple Network Management Protocol is most commonly used for monitoring devices but can also be used for setting configuration elements on the device.
SNMP traps are used to notify a management/monitoring platform of an event, similar to a push notification.
Additional information: http://www.snmp.com/protocol/
Switch Requirements for Colorless Ports
ClearPass is a multi-vendor product that leverages standards-based protocols and technologies along with the flexibility to support vendor-specific switch features for policy enforcement. Below are the basic switch feature sets required for various policy enforcement workflows. These technologies and features will be discussed throughout this document.
RADIUS-based Enforcement
| Feature | Role | Primary Use |
802.1X IEEE-802.1X |
Secure port access via EAPoL | Standard AAA |
| MAC Authentication Bypass | Fallback for headless devices and guests | Standard AAA, Guest |
| Dynamic Authorization RFC 5176 (replaced RFC 3576) |
Session lifecycle: change of user or device posture/behavior/status | Standard AAA, Guest, Onboard, OnGuard |
| External Captive Portal Redirect | Guest registration and login, device onboarding, informational splash pages | Guest, Onboard, OnGuard |
SNMP-based Enforcement
| Feature | Role |
| SNMP Trap: Link Status | Informs ClearPass of a link state change to trigger policy evaluation |
| SNMP Trap: MAC Notification | Informs ClearPass of the MAC address(es) detected on the port for use in policy evaluation. |
| SNMP Write: VLAN | Provides the ability for ClearPass to enforce VLAN assignment based on policy evaluation |
| NOTE: These are the base level requirements for SNMP-based enforcement on the switch side. ClearPass OnConnect must also support the switch. As of ClearPass 6.7.0, OnConnect currently supports ArubaOS-Switch, HPE FlexNetwork (Comware 7) and Cisco Catalyst switches. | |
Enforcement Options
There are many different ways to enforce policy on the wired edge. ClearPass offers the capability to enforce policy using standards-based technologies which allow for robust, multi-vendor policy creation and enforcement.
The diagram below offers a 10,000-foot view of the different enforcement methodologies and how they compare from a network security versus a switch configuration complexity point of view. As will be explained throughout this document, many of these are layered together to form the golden colorless port.
RADIUS-based Enforcement
Often times “enabling AAA on the switch” is equated with 802.1X, but that’s not the case. AAA can mean 802.1X, MAC Authentication, web authentication or any combination depending on the switch’s capabilities.
802.1X
The gold framework for secure port-based access control is defined in the 802.1X standard. The framework offers the best possible mix of flexibility, security, user and device identification and dynamic policy changes.
EAP-based authentication is used within the 802.1X framework to provide multiple different methods of authenticating to the network. As explained earlier, the three most popular EAP methods are EAP-TLS, PEAP, and EAP-TTLS.
The sequence diagram below is an example of a basic EAP-TLS authentication.
Common examples of wired devices capable of 802.1X authentication:
-
Laptops and desktops running:
-
Windows
-
macOS
-
Most Linux distributions
-
Newer printers
-
VoIP devices
-
Aruba access points
MAC Authentication
MAC authentication, sometimes referred to as MAC Auth Bypass (MAB), is commonly used as a fail-through for headless, non-802.1X capable and legacy devices as well as guest users. MAB is often combined with 802.1X and Captive Portal as part of a colorless port configuration supporting every user and device type with a single port configuration.
MAC authentication occurs between the switch and the RADIUS server by sending the client MAC address as the username and either the MAC address or a pre-shared key as the password.
Because MAC Authentication occurs between the switch and the RADIUS server, no client-side configuration or interaction is necessary. Due to this simplicity, MAC authentication is often deployed as a first step in the network authentication journey with the eventual goal of moving to 802.1X. It is then used as a fallback for non-802.1X capable and guest devices.
One thing to be aware of is that MAC addresses can be spoofed. MAC authentication should only be used in combination with other authorization components like device profiling. ClearPass has a built-in “conflict” state that is triggered when the category of a device changes. For example, if a printer is suddenly re-profiled as a computer, there is likely reason for concern.
Common examples of devices authorized using MAC address:
-
Building controls (HVAC, door access, etc)
-
Game consoles and media players
-
IP cameras
-
Older printers
-
Patient care medical devices
Captive Portal
Web-based authentication using captive portals is often associated with guest networks. Their usage has evolved to include other functions such as device onboarding, multi-factor authentication and splash pages for user notifications.
Centralized Enforcement Using Per-Port Tunneled-Node
For the highest level of security, visibility and control, Aruba switches and Aruba Mobility Controllers can be used together to offer stateful firewall processing, application visibility and bandwidth restrictions, and centralized policy enforcement using the Per-Port Tunneled-Node (PPTN) feature.
Overview
Per-Port Tunneled-Node (PPTN) is a unique feature, introduced in ArubaOS-Switch version 16.02 and supported on Mobility Controllers running ArubaOS 6.5 and higher, which allows for all wired traffic entering a switch port to be GRE encapsulated and sent up to an Aruba Mobility Controller for processing; like the tunnel forwarding mode in the Aruba wireless architecture.
When a port is configured for PPTN, it is placed into a dead-end VLAN locally on the switch. This VLAN must also exist on the controller but cannot be tagged throughout the network. It must match on both sides and cannot have an IP address or be tagged on an interface. This VLAN is used on the inside of the GRE tunnel to transport the traffic between the switch and controller.
Once the tunnel is established, the controller handles all AAA functions and places the device into the appropriate user role. All firewall policies, bandwidth contracts and other traffic restrictions are enforced by the controller. The traffic flow is nearly identical to a wireless client connected to a tunneled SSID.
Sample Use Cases
-
Branch scenarios where all wired and wireless traffic is processed by a Mobility Controller
-
Regulatory or high-risk environments where all wired traffic must traverse a firewall
-
Providing access to a centrally defined network that does not traverse the entire infrastructure
-
Areas with high numbers of headless/IoT devices like building infrastructure head-ends or
maintenance facilities -
Temporarily providing access during an event using an unmanaged switch
Dynamic Segmentation and Enforcement Using Per-User Tunneled-Node
Overview
Per-User Tunneled-Node (PUTN), introduced with ArubaOS-Switch 16.04 and supported on Mobility Controllers running ArubaOS 8.1 and higher, adds the ability for a ClearPass policy decision to tell an Aruba switch whether a device’s traffic should be processed locally or tunneled to a Mobility Controller. This enables stateful firewall processing of traffic and advanced application control at the controller when you need it, and traditional stateless processing at the switch when you don’t.
Per-User Tunneled-Node can take advantage of new ArubaOS 8 features such as dynamic load balancing of users in a cluster. Tunneling is enabled in the Aruba user role and can be combined with the Downloadable User Role (DUR) feature for dynamic and flexible policy enforcement and segmentation.
Sample Use Cases
As an example, a typical edge network consists of employee desktops and laptops, visitor or contractor laptops, access points, security cameras, desk and conference phones, building controls and headless meeting room equipment.
| Type | Enforcement | Notes |
| Access Point | Local | Local infrastructure device |
| Voice / Video Device | Local | Desk and conference phones, security cameras, room media systems |
| Employee on Managed Device | Local | Users connecting from a healthy, managed device can stay local to the switch |
| Employee on Unmanaged Device | Tunnel | Users connecting from an unmanaged, potentially untrusted device can be tunneled |
| New/Unknown Device | Tunnel | Tunnel new or unknown , potentially untrusted devices for profiling, potential onboarding, guest registration or and/or quarantine |
| Guest User | Tunnel | Tunnel guest users to DMZ guest network |
| Contractor | Tunnel | Contractors may need more access than a traditional guest user |
| Change in User/Device Posture | Tunnel | User or device goes from a healthy to unhealthy state (OnGuard checks, IntroSpect notification, Ingress Event Engine Notification) |
SNMP-based Enforcement with ClearPass OnConnect
ClearPass OnConnect is a new feature added in ClearPass 6.6.1 which utilizes SNMP for non-authenticated, basic VLAN enforcement at the edge and is included in the base ClearPass license!
Technical Overview
Profiling
Profiling is a very important piece of OnConnect because there is no traditional authentication phase.
Just like RADIUS-based enforcement, traditional passive profiling data, like DHCP fingerprints, can be leveraged as part of an OnConnect policy evaluation. Active methods such as Enterprise Mobility Management (EMM) platform data can also be leveraged to build policy.
OnConnect also supports a new method of active profiling that leverages the Windows Management Instrumentation (WMI) protocol for domain-joined Windows devices. ClearPass can send a WMI request to the device to request the active logged in user on a Windows domain-joined device. ClearPass can then run an authorization query against Active Directory to pull in directory information about the user such as group membership, OU and department. These directory attributes can then be used as part of an OnConnect enforcement just like in a RADIUS role mapping and/or enforcement policy.
How It Works
Switches are configured to send link change (up/down) and MAC notification SNMP traps to ClearPass. When a new device connects, and the switch has sent the trap(s), Policy Manager will verify that the switch and port have been configured for OnConnect enforcement and then proceed with policy evaluation. Note that during this time, the device will be in the default VLAN as configured on the switch port.
If WMI credentials have been defined in ClearPass, a WMI request will be sent to the client requesting the currently logged in user. If a username is returned and authorization to Active Directory is enabled in the service, Policy Manager will query AD for the user properties. Any additional authorization sources, such as the Endpoint Repository, Guest Device Repository (device registration) or even an external SQL database, will be queried as well.
Three SNMP enforcement actions are available: VLAN Change, Port Bounce, and Session Timer. In many cases, all 3 will be combined as part of an enforcement. For example, if a logged in AD user is detected on the device, you may want to change the VLAN, reset the port (so the device can re-DHCP in the correct VLAN) and also set a session timer to trigger re-authentication at a later time.
In the Policy Enforcement section of this guide, full configuration examples will be provided.
Sample Use Cases
-
Legacy switching that lacks reliable 802.1X and/or MAC authentication support
-
Varying versions of switch code across the environment
-
Existing network/helpdesk support team knowledge, comfort level and expertise with SNMP vs RADIUS.
Policy Enforcement Configuration
The remainder of this document will cover configuration of some common scenarios utilizing the technologies discussed earlier.
These examples are just that, examples. They’re designed to show different ways to build policy on both the network device and in ClearPass. Not every unique scenario or combination will be covered but the goal is to highlight key concepts and features that can be adapted into other scenarios.
ArubaOS-Switch Enforcement
RADIUS-based Enforcement
Policy Enforcement
Similar to an Aruba wireless controller, ArubaOS-Switch uses the concept of user roles to simplify configuration and policy creation and increase visibility and control.
User Roles
An ArubaOS-Switch user role can contain:
-
VLAN-ID or VLAN name
-
reauthentication interval
-
user policy
-
captive portal profile
A user policy is composed of one or more traffic classes to match specified packets. The class defines the ACL to match traffic and the policy combines multiple classes together with enforcement actions.
Here’s an example of a complete user role configuration with dependencies:
class ipv4 “IP-ANY-ANY”
match ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
exit
policy user “PERMIT-ALL”
class ipv4 “IP-ANY-ANY” action permit
exit
aaa authorization user-role name “SECURE”
policy “PERMIT-ALL”
reauth-period 28800
vlan-name “EDGE_SECURE”
exit
A user role defined locally on the switch itself is known as a local user role (LUR).
Downloadable User Roles (DURs)
Downloadable user roles (available on Aruba Mobility Controllers, Aruba Mobility Access Switches and ArubaOS-Switches) enable ClearPass to act as a centralized policy and enforcement definition point. This allows an intelligent edge with greater flexibility and dynamic security while simplifying local configuration.
ClearPass has a special enforcement profile template for DUR called Aruba Downloadable Role Enforcement. This template supports all 3 Aruba products (ArubaOS-Switch, Mobility Access Switch and Mobility Controller).
Two configuration modes are available for Downloadable User Roles, Standard and Advanced.
NOTE: ArubaOS-Switch 16.04+ and ClearPass 6.6.7+ are required to
use
Downloadable User Roles and standard mode is only available in ClearPass
6.7.0+.
Standard mode uses a GUI editor to build out the role elements like VLAN assignment, classes and policy.
Advanced mode allows for direct input of all required user role configuration elements as the Value for the HPE-CPPM-Role attribute.
Each DUR has a version number that is automatically generated by ClearPass and dynamically appended to the name in the background. This allows the switch to determine if role elements have changed and download a new version of the role for use with subsequent authentications. This also prevents the switch from downloading the same role for every new device.
When a downloadable user role name is returned in the RADIUS access-accept, the switch checks to see if the DUR + version combination already exists. If present, the switch’s cached version of the role is applied to the user. If the role is not present, or if the version number has changed, the switch initiates an HTTP GET to ClearPass to download the updated role elements. Existing authenticated users will continue to use the older role version until they reauthenticate. This process is illustrated in the sequence diagram below.
NOTE: HTTPS (TCP 443) must be permitted between the switch’s management IP and ClearPass. The request is sourced from the same interface/IP as RADIUS.
Dynamic Authorization
ArubaOS-Switch supports the following Disconnect and Change of Authorization commands:
-
Terminate Session: traditional disconnect message; reinitializes authenticator state
-
Bounce Host Port: bounces the port by disabling and re-enabling the port
-
Disable Host Port: administratively disables the port
-
Change User Role: dynamically change the user role without disconnecting the user
Configuration Overview
Here are the hardware and software combinations used for this configuration:
-
Aruba 2930F switch running ArubaOS-Switch 16.04.008
-
ClearPass Policy Manager 6.6.7
This configuration has been tested on the Aruba 3810M and 2930F. The minimum version of ArubaOS-Switch required for this configuration is 16.04.008.
Switch Configuration
The configuration snippets below assume that components like VLANs, uplinks, NTP and other basics have already been configured.
Key basic components:
-
NTP is required as accurate time plays a critical role in network authentication
-
To support captive portal redirection, the client VLAN(s) must have an IP address assigned on the switch (ex: vlan 812 ip address 100.81.2.252/24). It is recommended to use the authorized-managers feature to restrict access to switch management functions on these interfaces.
Enable global functions and configurations:
| ip client-tracker trusted | provides IP visibility for AAA-enabled ports |
| ip source-interface radius vlan 810 | set RADIUS source interface |
Define the ClearPass server(s) as RADIUS server(s) and dynamic authorization client(s):
| radius-server host 100.65.30.42 key Aruba123! | define ClearPass as RADIUS server |
| radius-server host 100.65.30.42 dyn-authorization | enable dynamic authorization (CoA) |
| radius-server host 100.65.30.42 time-window plus-or-minus-time-window 30 | time difference permitted for CoA packet (seconds) |
| aaa server-group radius CLEARPASS host 100.65.30.42 | assign to server-group |
To support downloadable user roles, the signing CA (intermediate) of the ClearPass HTTPS certificate must be added to the switch and marked as trusted.
For example, clearpass-demo.arubaboston.com (server certificate) is signed by COMODO RSA Domain Validation Secure Server CA (intermediate / signing CA) which is signed by COMODO RSA Certification Authority (root CA).
The COMODO RSA Domain Validation Secure Server CA should be added to the switch.
| crypto pki ta-profile CLEARPASS | create new trust profile |
| copy <sftp|tftp> ta-certificate CLEARPASS <sftp|tftp server> <ca-cert-filename> | copy the signing CA certificate to the switch via SFTP or TFTP |
DURs also require a ClearPass read-only user account to download the user role configuration. Configure the expected username and password for the account.
| radius-server cppm identity aoss-dur key R!!y5tr0ngpw | ClearPass DUR account |
Enable AAA functions:
| aaa authentication port-access eap-radius server-group CLEARPASS | enable EAP-based authentication |
| aaa authentication mac-based chap-radius server-group CLEARPASS | enabled MAC authentication |
| aaa accounting network start-stop radius server-group CLEARPASS | enable RADIUS accounting |
| aaa accounting update periodic 5 | set interim-accounting update interval (minutes) |
| aaa authentication captive-portal enable | enable captive-portal redirect |
| aaa authorization user-role enable | enable user roles |
| aaa authorization user-role enable download | enable DUR |
Port configuration:
| aaa port-access authenticator active | enable port authentication |
| aaa port-access authenticator 1-12 client-limit 10 | permit up to 10 active clients per port |
| aaa port-access mac-based 1-12 | enable MAC authentication on ports 1-12 |
| aaa port-access mac-based 1-12 addr-limit 10 | permit up to 10 authenticated MACs per port |
| aaa port-access authenticator 1-12 | enable EAP-based authentication on ports 1-12 |
| aaa port-access authenticator 1-12 supplicant-timeout 10 | supplicant timeout period (seconds) |
| aaa port-access authenticator 1-12 tx-period 10 | EAP Request-Identity waiting period (seconds) |
Define traffic classes to match packets for use in policy:
class ipv4 DNS match udp any any eq 53 |
class ipv4 DHCP match udp any any eq 67 |
class ipv4 INTERNAL match ip any 100.64.0.0/10 |
class ipv4 IP-ANY-ANY match ip any any |
class ipv4 WEB-TRAFFIC match tcp any any eq 80 match tcp any any eq 443 |
class ipv4 CLEARPASS-WEB match tcp any host 100.65.30.42 eq 80 match tcp any host 100.65.30.42 eq 443 |
Create user policies to take action on the traffic classes:
policy user CLEARPASS-REDIRECT class ipv4 DNS action permit class ipv4 DHCP action permit class ipv4 CLEARPASS-WEB action permit class ipv4 WEB-TRAFFIC action redirect captive-portal |
permit DNS, DHCP and web traffic destined for ClearPass, redirect all other web traffic |
policy user DENY-INTERNAL class ipv4 DNS action permit class ipv4 DHCP action permit class ipv4 INTERNAL action deny class ipv4 IP-ANY-ANY action permit |
permit DNS and DHCP, deny all internal subnets, permit everything else |
policy user PERMIT-ALL class ipv4 IP-ANY-ANY action permit |
permit everything |
Here are a few examples of user role configurations:
aaa authorization user-role name BYOD policy PERMIT-ALL reauth-period 43200 vlan-name EDGE_GUEST |
BYOD role, allow all reauthenticate every 12 hours EDGE_GUEST VLAN |
aaa authorization user-role name GUEST policy DENY-INTERNAL reauth-period 14400 vlan-name EDGE_GUEST |
GUEST role, deny internal IPs reauthenticate every 4 hours EDGE_GUEST VLAN |
aaa authorization user-role name VOICE policy PERMIT-ALL reauth-period 86400 vlan-name EDGE_VOICE |
VOICE role, allow all reauthenticate every 24 hours EDGE_VOICE VLAN |
aaa authorization user-role name SPLASH captive-portal-profile use-radius-vsa policy CLEARPASS-REDIRECT vlan-name EDGE_GUEST |
SPLASH role, redirect to ClearPass Use URL from RADIUS response This is the “fail through” role |
aaa authorization user-role name PROFILE captive-portal-profile use-radius-vsa policy CLEARPASS-REDIRECT reauth-period 180 vlan-name EDGE_GUEST |
PROFILE role, redirect to ClearPass Use URL from RADIUS response Reauthenticate every 3 minutes EDGE_GUEST VLAN, this role is used to profile unknown devices. |
ClearPass: Basics
ArubaOS-Switch uses the Hewlett-Packard-Enterprise RADIUS dictionary and two new vendor-specific attributes (VSAs) were added to support the local user role and downloadable user role features.
The minimum supported ClearPass release for the downloadable user role feature is 6.6.7 which includes the two new VSAs.
If only local user roles will be used with ClearPass prior to 6.6.7, verify that the Hewlett-Packard-Enterprise dictionary in your ClearPass cluster has attribute #25, HPE-User-Role. If it’s missing, download and import the latest dictionary file from support.arubanetworks.com > Download Software > ClearPass > Tools > RADIUS Dictionaries.
Instructions for importing a new or updated RADIUS dictionary can be found in the ClearPass User Guide.
Define your switch(es) as a network device(s) under Configuration » Network » Devices. At a minimum, configure Name, IP or Subnet Address, RADIUS Shared Secret and Vendor Name.
To utilize the downloadable user role feature, a read-only administrator account must be created in ClearPass so the switch can download the role information. Navigate to Administration » Users and Privileges » Admin Users » Add. The username and password should match the account defined on the switch in the previous section. For Privilege Level, select Read-Only Administrator.
ClearPass: MAC Authentication
Overview
The MAC Authentication service will handle headless devices like printers, phones, access points and others as well as provide the redirect URL for unknown devices and users to allow for a captive portal authentication.
In this scenario, we’re leveraging the Guest Device Repository and Device Registration portal to allow end-users and IT staff to register headless and non-802.1X capable devices. These devices can be assigned a role and account lifetime.
Service Configuration
Start with a new service of type MAC Authentication.
Under More Options, check the Authorization and Profile Endpoints boxes. This will enable two new tabs. The default service rules will work with an ArubaOS-Switch.
If there is a need to restrict the service to a particular set of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 4 below.
Authentication
On the authentication tab, remove [MAC Auth] under Authentication Methods and add [Allow All MAC Auth].
For Authentication Sources, you’ll add [Guest Device Repository] [Local SQL DB] and move it above [Endpoints Repository] [Local SQL DB].
Authorization
On the Authorization tab, add the [Endpoints Repository], [Guest User Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below.
By default, authorization data is only fetched from the authentication source where the user/device was found.
So, for example, say a guest user’s device is re-authenticating to the network within their account expiration window, you’ll find the MAC address in the [Endpoints Repository] with some data like guest role and expiration time but we also want to check with ClearPass Guest to make sure an administrator hasn’t disabled the account.
Roles
Role mapping is used to tag devices and users with as much information as possible for use in a policy decision. This role map is an example of a typical MAC authentication scenario
-
Rule 1 and 2 are checking to see that a guest user account is still valid and returning the [MAC Caching] tag / TIPS role
-
Rules 3-12 map user and device role IDs to tags / TIPS roles for use in policy
-
Rules 13-15 map profiling data to a tag / TIPS role for use in policy
Enforcement
For the default policy, the captive portal “splash” role is specified. This is used when a request falls through the policy with no match.
Let’s take apart the enforcement rules one by one:
| 1 |
If a device’s profiled category changes, ClearPass triggers the Conflict attribute. Here we’re saying if the Conflict attribute is true, put the device into a captive portal redirect to let them know to contact the help desk and also send an API call over to ServiceNow to open a ticket. |
|---|---|
| 2 |
This rule evaluates whether the profile Category exists for the authenticating endpoint. If it does not exist, the device has not been profiled and a captive portal redirect URL and PROFILE user role are returned to the switch.
NOTE: Captive portal redirect is not required for profiling. It’s simply an example of leveraging features to improve user experience. |
| 3 |
During role mapping, we were able to determine that the device should still be MAC Cached based on its expiration and the user’s account status. The GUEST user role and the guest’s username/email will be returned. |
| 4 |
This rule is similar to rule 3, but instead of checking for a Guest role, we’re checking for the custom AD-User role which is configured for temporary guest access with valid AD credentials. The GUEST user role and the user’s AD username will be returned in the RADIUS response. |
| 5 |
Many headless devices have been registered via the Device Registration portal. Here we’re validating whether the authenticating device was registered as a game console, media player or printer and that the device account is enabled and hasn’t expired. This is an example of using a downloadable user role. The sponsor’s username is also returned.
|
|---|---|
| 6 |
Based on profiling data, we’re authorizing devices categorized as VoIP Phone and Video Conferencing by sending back a VOICE user role along with the profiled device name as the username (as an example).
|
| 7 |
The last rule checks for a TIPS role/tag of DEVICE_ACCESS-POINT from the role mapping and assigns the HEADLESS downloadable user role and returns the device name as the username like in rule 5. |
Profiler
The Profiler function allows for an unknown device to be automatically disconnected from the network once profile data has been collected and evaluated. This prevents a device from being “stuck” in a limited access role. During the second authentication, the new profile data can be used in the policy decision. This is a very common feature for MAC Authentication services.
Since we may want to drop a newly profiled device into a new user role with a different VLAN, the port will need to be bounced to force the device to re-DHCP.
Use caution in voice environments where client devices are connected behind a voice device. Bouncing a port after profiling a new device connected behind the voice device could result in interruption of voice service.
NOTE: In ClearPass 6.6.X, this enforcement profile is called [HPE Bounce Host-Port]. It was renamed to [ArubaOS Switching – Bounce Switch Port] in the 6.7.0 release.
ClearPass: 802.1X
Service Configuration
Create a new service of type 802.1X Wired.
Under More Options, check the Authorization boxes. The default service rules will work with an ArubaOS-Switch.
If there is a need to restrict the service to a particular group of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 3 below.
Authentication
This service will be supporting both secure certificate-based authentication (EAP-TLS) and traditional, legacy username and password authentication (PEAPv0/EAP-MSCHAPv2).
The username and password-based authentication will be used for two purposes:
-
Allow a BYOD device to initially connect and kick off the Onboard process to allow a certificate to be issued
-
Allow for domain-joined assets to use their computer/machine account to authenticate to the network as well as support machine + user workflows
Based on the above requirements, remove all the default EAP methods from the Authentication Methods list on the Authentication tab except for [EAP PEAP] and [EAP TLS].
NOTE: The default [EAP TLS] method does not have OCSP authorization configured and is being used here solely as an example. OCSP is used to check real-time validity of a certificate and enabling it is highly recommended. Special care should be taken when authenticating certificates from different certificate authorities. This is outside the scope of this document.
For Authentication Sources, you’ll add our Active Directory identity store and also the [Local User Repository]. Authentication sources will vary in your environment.
The Local User Repository will be used in the example for infrastructure accounts like having an access point or VoIP phone authenticate securely to the network using the 802.1X framework.
Authorization
Since device profile information will be leveraged in policy, add the [Endpoints Repository] to the “Additional authorization sources…” list as shown below.
Roles
Role mapping is used to tag devices and users with as much prevalent information as possible for use in a policy decision.
These rules and tags will vary greatly by environment, but below you’ll find examples of device and user tagging.
-
Rules 1 and 4 are checking group membership from Active Directory
-
Rules 2-3 are matching on the common name of the issuing CA for the authenticating certificate
Enforcement
Let’s take apart this enforcement policy rule by rule:
| 1 |
When a Windows device authenticates to the network using its Active Directory computer account, the [Machine Authenticated] tag/TIPS role is added to the session automatically. If both a machine and user authentication have occurred, then return the CORP user role. This is commonly used to validate that the user is using a corporate asset. |
|---|---|
| 2 |
This checks for a Machine-only authentication. These typically occur when the device is sitting at the Windows logon screen and connectivity is required for updates, remote access or for new users to log in. |
| 3 |
This is a typical rule to deal with a non-Windows corporate-managed asset that is managed by an EMM solution. The two endpoint attributes have been synced down from the EMM solution via ClearPass Exchange. In this case, the rule is evaluating whether the device has its device management enabled and that no compromise has occurred. The last condition checks for the tag/TIPS role from our role mapping to verify the certificate used to authenticate was issued from the Corporate Device CA. |
| 4 |
Most personal devices will perform Onboarding through the captive portal workflow after 802.1X fails, but some users may authenticate via PEAPv0/EAP-MSCHAPv2 when prompted by their device. This rule will catch those users who need to be using EAP-TLS authentication via ClearPass Onboard. The user role ONBOARD-ENROLL and the Onboard enrollment URL are being returned to the switch.
|
| 5 |
This is a basic rule as an example of a security exception for a group of users. These devices are dropped into the AD-TEMP role. |
| 6 |
After a device has been onboarded, subsequent authentications will occur via EAP-TLS. Rule 6 uses the tag from the role mapping to check the common name of the issuing CA. These devices will be dropped into a BYOD role. |
| 7 |
Here the device category of Printer is being evaluated along with a check of the Conflict flag. Username/password vs certificate authentication in this case is irrelevant, however, an additional condition could easily be added similar to rules 8 and 9 below. This example uses the HEADLESS downloadable user role.
|
|---|---|
| 8 |
Many voice devices come from the factory with an embedded certificate that can be used for network authentication. The phone’s factory cert is being leveraged for EAP-TLS combined with profiling data. The VOICE user role is being passed back for these devices. |
| 9 |
As discussed during the authentication section, a local user account was created in ClearPass for use by access points to authenticate. Rule 9 is comparing the tag/TIPS role, category, conflict status and verifying the authentication source was the [Local User Repository]. The HEADLESS downloadable user role is being used like in rule 7. |
ClearPass: Web Authentication
The Web Authentication service handles captive portal-based authentications with server-initiated workflows.
Service Configuration
Create a new service of type Web-based Authentication.
Check the Authorization box and select Matches ALL under Service Rule.
Add a second service rule with Application:ClearPass | Page-Name | EQUALS and then the page name.
For example: if the full page URL is https://<fqdn>/guest/wired_aruba_self-reg.php, then the page name is: wired_aruba_self-reg.

NOTE: The Page-Name attribute was added in ClearPass 6.7.0. Skip if using ClearPass 6.6.X.
Authentication
This service will be supporting both guest and Active Directory users for captive portal login.
For Authentication Sources, you’ll add the [Guest User Repository] and also our Active Directory identity store. Authentication sources will vary in your environment.

Authorization
We will need to assign a manual expiration time to AD users. This time is calculated by the [Time Source] so it will need to be added as an additional authorization source.

Roles
In this scenario, guests and contractors will go through a standard self-registration process and any employee who authenticates with their corporate credentials will get a temporary guest role. Since there is no specific mapping of AD group, you’ll use the generic [Guest Roles] role map.
If different enforcement actions will be taken for different groups or classifications of users, create a new role map like the in 802.1X configuration.

Enforcement
Because the server-initiated workflow is used with ArubaOS-Switch, the enforcement policy for the WEBAUTH service is very simple. The goal is to update the device endpoint record with attributes from the user authentication that will be stored and used for subsequent authentications and then bounce the port to trigger a reauthentication event.
Note: If a VLAN change is not required, a Terminate Session disconnect message can be used instead of a port bounce.
In this example, both guest and Active Directory accounts are being used.
For the guest accounts, a basic enforcement profile for MAC caching the user needs to be set up so when they re-authenticate after the port bounce, the user will not be prompted to authenticate again until their account expires.
Before creating the enforcement policy, create a new enforcement profile for the guest users (Configuration » Enforcement » Profiles » Add Enforcement Profile).
-
Select ClearPass Entity Update Enforcement from the Template dropdown
-
Give the profile a name
-
On the attributes tab, add the 3 entries below and then save.
Note that the value field will require manual entry (copy and paste the values below).
| TYPE | NAME | VALUE |
|---|---|---|
| Endpoint | Username | %{Authentication:Username} |
| Endpoint | Guest Role ID | %{GuestUser:Role ID} |
| Endpoint | MAC-Auth Expiry | %{Authorization:[Guest User Repository]:ExpireTime} |

Next, create an enforcement profile for the AD users following a similar process. Since captive portal-based access should only be temporary for employees, a manual expiration of one day will be used via [Time Source], a pre-built authentication source
| TYPE | NAME | VALUE |
|---|---|---|
| Endpoint | Username | %{Authentication:Username} |
| Endpoint | Guest Role ID | AD-User |
| Endpoint | MAC-Auth Expiry | %{Authorization:[Time Source]:One Day DT} |

Now, create a very basic enforcement policy. The first rule checks for a TIPS role / tag of [Guest]. The second rule checks that the Authentication Source is Active Directory. Both rules issue a CoA bounce switch port and then perform the appropriate endpoint update.

NOTE: In ClearPass 6.6.X, the enforcement profile [HPE Bounce Host-Port] is used.
ClearPass: Guest
Configuring a self-registration workflow in Guest is outside the scope of the document. For the purposes of this guide, the only relevant settings on the guest side are the NAS Vendor Settings and the Login Delay.

Under NAS Vendor Settings, be sure the Vendor Settings are set to Hewlett Packard Enterprise. This will tell Guest to use a server-initiated login and which will craft a WEBAUTH request which is handled by the service we previously created.

Under Login Delay, set the value to a minimum of 30 seconds. This is required with server-initiated workflows because you don’t want the user to attempt to browse while the port is still down or their device is re-authenticating. You may need to adjust this value in your environment.

Useful Switch Troubleshooting Commands and Tips
show port-access config
This is a very useful command that shows you the AAA functions enabled globally and on each port.
Port Access Status Summary
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No
Dot1x2010 Mode [Disabled] : Disabled Use LLDP data to authenticate [No] : No
802.1X 802.1X Web Mac LMA Cntrl Mixed Speed
Port Supp Auth Auth Auth Auth Dir Mode VSA MBV
1 No Yes No Yes No both No No Yes
2 No Yes No Yes No both No No Yes
3 No Yes No Yes No both No No Yes
4 No Yes No Yes No both No No Yes
5 No Yes No Yes No both No No Yes
6 No Yes No Yes No both No No Yes
7 No Yes No Yes No both No No Yes
8 No Yes No Yes No both No No Yes
9 No Yes No Yes No both No No Yes
10 No Yes No Yes No both No No Yes
11 No Yes No Yes No both No No Yes
12 No Yes No Yes No both No No Yes
13 No No No No No both No No Yes
14 No No No No No both No No Yes
show user-role
EDGE-2920# show user-role
User Roles
Enabled : Yes
Initial Role : denyall
Type Name
———- ——————————————————
local BYOD
local CORP
local GUEST
local VOICE
local SPLASH
local AD-TEMP
local PROFILE
predefined denyall
local HEADLESS
local CONTACT-HD
local ONBOARD-ENROLL
downloaded *ROLE_AOS_S_DUR_HEADLESS-3180-5
downloaded *ROLE_AOS_S_DUR_T__AUTHENTICATED-3164-4
show user-role <role-name> detailed
EDGE-2920# show user-role SPLASH detailed
User Role Information
Name : SPLASH
Type : local
Reauthentication Period (seconds) : 0
Untagged VLAN : EDGE_GUEST
Captive Portal Profile : use-radius-vsa
URL : (use RADIUS VSA)
Policy : CLEARPASS-REDIRECT
Statements for policy “CLEARPASS-REDIRECT”
policy user “CLEARPASS-REDIRECT”
10 class ipv4 “DNS” action permit
20 class ipv4 “DHCP” action permit
30 class ipv4 “CLEARPASS-WEB” action permit
40 class ipv4 “WEB-TRAFFIC” action redirect captive-portal
exit
Statements for class IPv4 “DNS”
class ipv4 “DNS”
10 match udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 53
exit
Statements for class IPv4 “DHCP”
class ipv4 “DHCP”
10 match udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 67
exit
Statements for class IPv4 “CLEARPASS-WEB”
class ipv4 “CLEARPASS-WEB”
10 match tcp 0.0.0.0 255.255.255.255 100.65.30.42 0.0.0.0 eq 80
20 match tcp 0.0.0.0 255.255.255.255 100.65.30.42 0.0.0.0 eq 443
exit
Statements for class IPv4 “WEB-TRAFFIC”
class ipv4 “WEB-TRAFFIC”
10 match tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 80
20 match tcp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 443
exit
show port-access clients
Similar to show user-table on ArubaOS
EDGE-2920# show port-access clients
Port Access Client Status
Port Client Name MAC Address IP Address User Role Type VLAN
—– ————- ————- ————— —————–
2 darth.vade… 00e04c-363b99 n/a HEADLESS MAC 815
3 host/win10… 90e2ba-692d5a n/a CORP 8021X 811
6 HP IP Phone 2c4138-7fc880 100.81.3.10 VOICE MAC 813
7 Aruba AP d8c7c8-cb497a n/a HEADLESS MAC 815
If ClearPass returned a user role, but the device is in a denyall role, there is likely a configuration issue with the user role. Run show log –r to display the system logs which should indicate an issue.
W 04/19/17 13:30:10 05208 dca: Failed to apply user role SPLASH to macAuth client 90E2BA692D5A on port 3: required CAPTIVE-PORTAL-URL VSA was not sent. |
|---|
In this case, the role was configured to look for the captive portal redirect URL in the RADIUS response (use-radius-vsa) but the VSA was not present.
show port-access clients detailed <port>
EDGE-2920# show port-access clients detailed 3
Port Access Client Status Detail
Client Base Details :
Port : 3 Authentication Type : 802.1x
Client Status : authenticated Session Time : 265 seconds
Client name : TIMCAPPALLI\tim Session Timeout : 86400 seconds
MAC Address : 90e2ba-692d5a
IP : 100.81.1.11
User Role Information
Name : CORP
Type : local
Reauthentication Period (seconds) : 86400
Untagged VLAN : 811
Tagged VLANs :
Captive Portal Profile :
Policy : PERMIT-ALL
Statements for policy “PERMIT-ALL”
policy user “PERMIT-ALL”
10 class ipv4 “IP-ANY-ANY” action permit
exit
Statements for class IPv4 “IP-ANY-ANY”
class ipv4 “IP-ANY-ANY”
10 match ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
exit
show user-role downloaded
EDGE-2930# show user-role downloaded
Downloaded user roles are preceded by *
Downloaded User Roles
Enabled : Yes
Type Name
downloaded *ROLE_AOS_S_DUR_PROFILE-3160-2
downloaded *ROLE_AOS_S_DUR_HEADLESS-3180-5
downloaded *ROLE_AOS_S_DUR_T__AUTHENTICATED-3164-4
show user-role downloaded detailed
show user-role <NAME> downloaded detailed
EDGE-2930# show user-role downloaded detailed
Downloaded user roles are preceded by *
User Role Information
Name : *ROLE_AOS_S_DUR_PROFILE-3160-2
Type : downloaded
Reauthentication Period (seconds) : 60
Untagged VLAN : UNTRUST
Tagged VLAN :
Captive Portal Profile :
Policy : PROFILE_ROLE_AOS_S_DUR_PROFILE-3160-2
Statements for policy “PROFILE_ROLE_AOS_S_DUR_PROFILE-3160-2”
policy user “PROFILE_ROLE_AOS_S_DUR_PROFILE-3160-2”
10 class ipv4 “DHCP_ROLE_AOS_S_DUR_PROFILE-3160-2” action permit
exit
Statements for class IPv4 “DHCP_ROLE_AOS_S_DUR_PROFILE-3160-2”
class ipv4 “DHCP_ROLE_AOS_S_DUR_PROFILE-3160-2”
10 match udp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255 eq 67
exit
Tunnelednode Server Redirect : Disabled
Secondary Role Name :
User Role Information
Name : *ROLE_AOS_S_DUR_HEADLESS-3180-5
Type : downloaded
Reauthentication Period (seconds) : 86400
Untagged VLAN : SECURE-A
Tagged VLAN :
Captive Portal Profile :
Policy : HEADLESS_ROLE_AOS_S_DUR_HEADLESS-3180-5
SNMP-based Enforcement
Policy Enforcement
VLAN assignment via SNMP is the primary enforcement method with OnConnect. VLAN access control lists (ACLs) are commonly used to control traffic in this scenario.
Configuration Overview
Here are the hardware and software combinations used for this configuration:
-
Aruba 2920 switch running ArubaOS-Switch 16.03.0003 (no version dependency, but 16.01 or greater is recommended)
-
ClearPass Policy Manager 6.6.4 (required: 6.6.1+)
This configuration example uses SNMP v2c. SNMPv3 is also supported for OnConnect.
Quirks and Limitations
-
Active user visibility is available for Windows domain-joined machines only
-
OnConnect enforcement takes an average of 60 seconds with WMI enabled
Switch Configuration
Global switch configuration:
| snmp-server community OnConnectRO operator | create SNMP ro community for ClearPass |
| snmp-server community OnConnectRW operator unrestricted | create SNMP rw community for ClearPass |
| snmp-server host 4.3.2.1 community ClearPassOnConnect trap-level all | set ClearPass as the snmp trap destination |
| snmp-server trap-source 1.2.3.4 | set the SNMP trap source address |
| snmp-server enable traps mac-notify | enable MAC notify traps globally |
Interface configuration:
| snmp-server enable traps link-change 17-20 | enable link state traps for OnConnect interfaces |
interface 17-20 mac-notify traps learned interface 17-20 mac-notify traps removed |
enable MAC notifications for OnConnect interfaces |
| Interface 17-20 untagged vlan 812 | set default untrusted VLAN |
ClearPass: Basics
Server Configuration
Enable OnConnect under Server Configuration (Administration » Server Manager » Server Configuration)
NOTE: This is only required in ClearPass 6.6.X

Configure the SNMP v2c Trap Community under Administration » Server Manager » Server Configuration, Service Parameters, ClearPass network services.
This should match the community string defined in this switch configuration element: snmp-server host 100.65.30.42 community ClearPassOnConnect trap-level all

After changing the trap community, the System auxiliary services service needs to be restarted.
Navigate to Administration » Server Manager » Server Configuration, Services Control and locate System auxiliary services.
Click
. Once the service has
stopped, click
to restart the service.
Network Device
Enable SNMP Read and configure the community strings for the device:

Enable SNMP Write and configure the community strings for the device. Also, configure the Default VLAN (generally this will be the guest or untrusted VLAN):

Enable Policy Manager to perform OnConnect Enforcement:

Use the Query Ports button to test the SNMP configuration. The list will be populated with the switch ports if all is working correctly. Individual interfaces can also be enabled for OnConnect enforcement by selecting them in the list and clicking Add to Port Names (or by manually adding them to the Port Names list).
Windows Management Instrumentation (WMI) Overview
During a port status change, ClearPass can query domain-joined Windows devices for the current logged in user. This information can then be compared with user account information in Active Directory during authorization.
Requirements:
-
Active Directory user account with WMI remote access privileges
-
Windows firewall must allow inbound access to WMI from ClearPass
WMI Configuration: ClearPass
Inside ClearPass, map the WMI credentials to the edge subnets under Configuration » Profile Settings » WMI Configuration.

ClearPass: Enforcement Profiles
Enforcement profiles for OnConnect are very basic.
For each enforcement VLAN, create a new SNMP Based Enforcement profile. Navigate to Configuration » Enforcement » Profiles » Add Enforcement Profile. Select SNMP Based Enforcement from the template dropdown.
Add the VLAN ID and Reset Connection attributes. You can also optionally add the Session Timeout attribute to trigger a re-evaluation of policy after a certain amount of time.

ClearPass: OnConnect Service
Service Configuration
Start with a new service of type ClearPass OnConnect Enforcement.
Under More Options, check the Authorization. This will enable the Authorization tab. The default service rules will work with an ArubaOS-Switch.
If there is a need to restrict the service to a particular set of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP service rule to reference a NAD group as seen in rule 2 below.

Authentication
Since OnConnect does not do any traditional user or device authentication, the only option available on the Authentication tab is the Strip Username Rules configuration.
If you are not planning to use WMI, nothing has to be configured on the Authentication tab.
If you are planning to use WMI to grab the currently logged in user, the Strip Username Rules will need to be configured. WMI returns the username in down-level logon format (REALM\username) so the REALM will need to be stripped off before an authorization check can be done against Active Directory.
Use the \user rule to strip the REALM from the down-level logon username.

Authorization
On the Authorization tab, add the [Endpoints Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below. If WMI-based authorization will be used, also add your Active Directory authentication source to the list so user properties can be evaluated.

Roles
Role mapping is used to tag devices and users with as much information as possible for use in a policy decision.
This example role map covers both headless devices and user mapping based off AD group membership. Headless devices are mapped using a mix of device registrations and raw profile data.

Enforcement
For the default policy, the default guest VLAN profile is specified. This is used when a request falls through the policy with no match which would be a guest in this case.
Let’s take apart the enforcement rules one by one:

| 1 |
If the logged in user is a member of the “Contractor” AD group, the USER_CONTRACTOR tag/TIPS Role is mapped. This device is then given the GUEST VLAN, 812 in this example. |
|---|---|
| 2 |
This rule just checks that the logged in user is a domain user. All domain users will have a UserDN attribute. These devices will be placed into the “SECURE” VLAN, 811 in this case. |
| 3 |
Profile data is being leveraged in rule 3 to drop voice devices into VLAN 813, the voice VLAN. |
| 4 |
These tags/TIPS roles are mapped based on the role assigned during Device Registration. These registered devices will be dropped into the “HEADLESS” VLAN, 815 in this case. |
Useful Troubleshooting Commands and Tips
ClearPass
If OnConnect requests are not appearing in Access Tracker, take a look in Event Viewer. Below are some common error messages.
-
Traps are being sent by the switch, but the network device definition in ClearPass does not have the port listed for OnConnect enforcement.

-
The SNMP trap community is mismatched

Switch
show snmp-server traps
This command will give you a summary of the switch’s SNMP configuration.
Trap Receivers
Link-Change Traps Enabled on Ports [All] : All
Traps Category Current Status
_____________________________________ __________________
SNMP Authentication : Extended
Password change : Enabled
Login failures : Enabled
Port-Security : Enabled
Authorization Server Contact : Enabled
DHCP-Snooping : Enabled
DHCPv6-Snooping Out of Resource : Enabled
DHCPv6-Snooping Errant Replies : Enabled
Dynamic ARP Protection : Enabled
Dynamic IP Lockdown : Enabled
Dynamic IPv6 Lockdown Out of Resource : Enabled
Dynamic IPv6 Lockdown Violations : Enabled
Startup Config change : Disabled
Running Config Change : Disabled
MAC address table changes : Enabled
DHCP-Server : Enabled
NTP-Client : Disabled
ND Snooping Out of Resources Traps : Enabled
Address Community Events Type Retry Timeout
100.65.30.42 ClearPassOnConnect All trap 3 15 Excluded MIBs
show vlan port <X> detail
EDGE-2920# show vlan port 18 detail
Status and Counters - VLAN Information - for ports 18
Port name: ONCONNECT
VLAN ID Name | Status Voice Jumbo Mode
——- ——————– + ———- —– —– ——–
812 EDGE_GUEST | Port-based No No Untagged
debug snmp
debug destination session
Debug commands can be used for more advanced troubleshooting and to verify that the switch is sending traps to ClearPass. debug snmp enables all SNMP debugging and debug destination session will echo all of the debug text to the current session. To disable, use no debug snmp.
Per-Port Tunneled-Node (PPTN)
Policy Enforcement
Per-Port Tunneled-Node allows for the same enforcement options as a wireless client. This includes stateful session processing, deep packet inspection, URL filtering and bandwidth contracts.
Configuration Overview
The hardware and software requirements for Per-Port Tunneled-Node are:
-
Aruba switch running ArubaOS-Switch 16.02 or greater:
-
5400R
-
3810M / 3800
-
2930F / 2930M
-
2920
-
* Please refer to switch documentation for scalability numbers
-
Aruba hardware mobility controller for tunnel termination running either ArubaOS 6.5+ or 8.1+
-
ClearPass Policy Manager (no version dependency, but 6.6.4+ is recommended)
Here are the hardware and software combinations used for this example configuration:
-
Aruba 2920 switch running ArubaOS-Switch 16.03.0003
-
Aruba 7005 mobility controller (both ArubaOS 6.5.2 and 8.1.0.1 are used in the example)
-
ClearPass Policy Manager 6.6.4
Because Per-Port Tunneled-Node uses the same guest configuration (client-initiated) as a wireless client, that portion will not be covered in this section.
Quirks and Limitations
-
PPTN has a limit of 32 MAC addresses per port
-
Each switch stack requires a unique VLAN for transport
Switch Configuration
Configuring Per-Port Tunneled-Node (PPTN) on an ArubaOS-Switch is very easy and only requires a few extra configuration elements.
| vlan 4013 name TN-TRANSPORT | define tunneled-node transport VLAN (see explanation below) |
| tunneled-node-server controller-ip 100.66.1.100 | enable dynamic authorization (CoA) |
| papi-security key-value <key> | *optional, only required if PAPI security is enabled on controller |
| interface 13-16 tunneled-node-server | enable tunneled-node on the appropriate ports |
| interface 13-16 untagged vlan 4013 | assign same ports to TN transport VLAN |
The tunneled-node transport VLAN is essentially a locally significant VLAN that needs to be defined on both the switch and controller. This VLAN does not have an L3 interface and should not be tagged upstream in the network. It is solely used inside the GRE tunnel.
With tunneled-node, the client device’s VLAN is assigned and enforced by the controller. In a tunneled-node only deployment, no client device access networks need to be configured at the edge switch layer.
Aruba Controller Overview
From the controller perspective, tunneled-node traffic can leverage the same, pre-existing user roles and policies from a wireless deployment. You can even leverage the same client access VLANs.
For example: if the guest/open SSID uses a specific guest VLAN on the controller, that same VLAN can be used for wired guests via tunneled-node.
Another note: tunneled-node AAA configuration uses the same as a wired access interface on the controller. If your environment is already configured for authentication of the controller’s switch ports, the existing configuration will work for tunneled-node client devices. The only configuration required in that case would be the TN transport VLAN.
Licensing
Per-Port Tunneled-Node is licensed in the same way as an access point and consumes 1 license set per switch stack. For centralized policy enforcement and visibility with PPTN, only AP and PEF licenses are required. If web filtering is required, WebCC would also be needed.
If the controller itself has all 4 licenses installed (AP, PEF, WebCC and RFProtect), one of each license will be consumed per switch stack, just like an access point.
For more information on ArubaOS 6.5 licensing, please see the ArubaOS 6.5 User Guide.
Aruba Controller Configuration
This section will cover ArubaOS 6.5. The configuration for ArubaOS 8 is nearly identical, it just uses the new hierarchical configuration model. This section also assumes your controller has already been configured with the basics (VLANs, IPs, NTP, licenses etc) and also that ClearPass has been defined as a RADIUS server and been placed into a RADIUS server group.
NOTE: If the controller you’re working with is already configured to support wireless policy and the goal is to build a consistent policy across wired and wireless access, there is no need to configure new roles. The example below assumes there are no existing role or policy configurations on the controller.
Roles and Policies
For this example, 7 roles will be created in the controller: PROFILE, GUEST-ACCESS, SPLASH, HEADLESS, SECURE, ONBOARD-ENROLL and QUARANTINE. Each of these roles will have an attached firewall policy.
First, create netdestination with entries for your ClearPass
server(s):
Configuration > Advanced Services > Stateful Firewall >
Destinations

netdestination CLEARPASS
no description
no invert
name clearpass-demo.arubaboston.com position 1
host 100.65.30.42 position 2
Next create a new policy that denies access to internal networks:
Configuration > Security > Access Control > Policies >
Add

ip access-list session DENY-INTERNAL
alias user network 192.168.0.0 255.255.0.0 any deny
Also, create a policy that permits both DNS and DHCP.
ip access-list session DNS-DHCP
any any svc-dhcp permit
user any svc-dns permit
!
Now a captive portal profile: Configuration > Security > Authentication > L3 Authentication > Captive Portal Authentication > Add
-
Set the Redirect Pause to 0
-
Uncheck Logout popup window
-
Set the Login page URL to the ClearPass guest self-registration page.
-
Uncheck Show Welcome Page
-
Add your ClearPass netdestination to the White List
Apply the config and then set the Server Group to the ClearPass RADIUS server group.

Now click back on the profile name and click Save As and call the new profile QUARANTINE.
-
Uncheck User Login
-
Change the Login page URL to the quarantine page
Repeat one more time for the ONBOARD-ENROLL profile.
aaa authentication captive-portal SPLASH
server-group CLEARPASS-DEMO
redirect-pause 0
no logout-popup-window
login-page https://clearpass-demo.net.arubaboston.com/guest/wired_aruba_self-reg_pptn.php
no enable-welcome-page
white-list CLEARPASS
aaa authentication captive-portal QUARANTINE
server-group CLEARPASS-DEMO
no user-logon
redirect-pause 0
no logout-popup-window
login-page https://clearpass-demo.net.arubaboston.com/guest/wired_aruba_self-reg_pptn.php
no enable-welcome-page
white-list CLEARPASS
Now create the 6 user roles. Only the first two roles will have a screenshot example.
Configuration > Security > Access Control > User Roles > Add.
PROFILE
- Firewall Policies: DNS-DHCP

user-role PROFILE
access-list session DNS-DHCP
SPLASH
-
Firewall Policies: logon-control, captiveportal
-
Captive Portal Profile: SPLASH

user-role SPLASH
access-list session logon-control
access-list session captiveportal
captive-portal SPLASH
ONBOARD-ENROLL
-
Firewall Policies: logon-control, captiveportal
-
Captive Portal Profile: ONBOARD-ENROLL
user-role ONBOARD-ENROLL
access-list session logon-control
access-list session captiveportal
captive-portal ONBOARD-ENROLL
QUARANTINE
-
Firewall Policies: logon-control, captiveportal
-
Captive Portal Profile: QUARANTINE
user-role QUARANTINE
access-list session logon-control
access-list session captiveportal
captive-portal QUARANTINE
GUEST-ACCESS
- Firewall Policies: logon-control, DENY-INTERNAL, allowall
user-role GUEST-ACCESS
access-list session logon-control
access-list session DENY-INTERNAL
access-list session allowall
SECURE
- Firewall Policies: allowall
user-role SECURE
access-list session allowall
HEADLESS
- Firewall Policies: allowall
user-role HEADLESS
access-list session allowall
AAA Configuration
Create a new AAA profile under Configuration > Security > Authentication > AAA Profiles
Assign SPLASH as the initial role and GUEST-ACCESS as the default 802.1X and MAC Authentication roles as ClearPass will be sending back the role name after authentication.

Now assign the various authentication profiles and server groups. Default can be used for both MAC Authentication and 802. 1X Authentication. The server groups should be configured for ClearPass.

To enable wired authentication, navigate to Configuration > Advanced Services > All Profiles > Wireless LAN > Wired Authentication, click AAA and select the PPTN profile.

aaa authentication wired
profile PPTN
ClearPass: Basics
Define your controller(s) as a network device(s) under Configuration » Network » Devices. At a minimum, configure Name, IP or Subnet Address, RADIUS Shared Secret and Vendor Name.

ClearPass: MAC Authentication
Overview
The MAC Authentication service will handle headless devices like printers, phones, access points and others as well as provide the redirect URL for unknown devices and users to allow for a captive portal authentication.
In this scenario, we’re leveraging the Guest Device Repository and Device Registration portal to allow end-users and IT staff to register headless and non-802.1X capable devices. These devices can be assigned a role and account lifetime.
Service Configuration
Start with a new service of type MAC Authentication.
Under More Options, check the Authorization box. This will enable a new tab. Be sure to follow the screenshot below. Notice that NAS-Port-Type and Service-Type are different than a traditional wireless service with an Aruba controller. These values are used to isolate the request as a wired MAC authentication coming from the controller.
If there is a need to restrict the service to a particular set of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 5 below.

Authentication
On the authentication tab, remove [MAC Auth] under Authentication Methods and add [Allow All MAC Auth].
For Authentication Sources, you’ll add [Guest Device Repository] [Local SQL DB] and move it above [Endpoints Repository] [Local SQL DB].

Authorization
On the Authorization tab, add the [Endpoints Repository], [Guest User Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below.

By default, authorization data is only fetched from the authentication source where the user/device was found. So, for example, let’s say a guest user’s device is re-authenticating to the network within their account expiration window, you’ll find the MAC address in the [Endpoints Repository] with some data like guest role and expiration time but we also want to check with ClearPass Guest to make sure an administrator hasn’t disabled the account.
Roles
Role mapping is used to tag devices and users with as much information as possible for use in a policy decision.
-
Rule 1 and 2 are checking to see that a guest user account is still valid and returning the [MAC Caching] tag / TIPS role
-
Rules 3-12 map user and device role IDs to tags / TIPS roles for use in policy
-
Rules 13-15 map profiling data to a tag / TIPS role for use in policy

Enforcement
For the default policy, the captive portal “splash” role is specified. This is used when a request falls through the policy with no match.
Let’s take apart the enforcement rules one by one:

| 1 |
If a device’s profiled category changes, ClearPass triggers the Conflict attribute. In this rule, if the Conflict attribute is true, the device is being placed into a captive portal redirect to let them know to contact the help desk. Also, the GUEST named VLAN is being returned using the Aruba-Name-User-Vlan VSA.
|
|---|---|
| 2 |
During role mapping, it was determined that the device should still be MAC Cached based on its expiration and the user’s account status. The GUEST user role and name VLAN as well as the guest’s username/email will be returned to the controller. |
| 3 |
Using profile data, access points will be assigned the HEADLESS role in the SECURE VLAN. |
| 4 |
Many headless devices have been registered via the Device Registration portal. This rule evaluates whether the authenticating device was registered as a game console, media player or printer and that the device account is enabled and hasn’t expired. The HEADLESS user role, SECURE VLAN name and the sponsor/owner’s username are being returned to the controller for these devices. |
| 5 |
Based on profiling data, devices categorized as VoIP Phone and Video Conferencing are being authorized by sending back a VOICE user role along with the profiled device name as the username (as an example) and the SECURE VLAN name.
|
| 6 |
The last rule is the catch all rule and drops the device/user into the captive portal splash page for registration and/or authentication before continuing. |
ClearPass: 802.1X
Service Configuration
Create a new service of type 802.1X Wired.
Under More Options, check the Authorization boxes. Be sure to follow the screenshot below. Notice that Service-Type is different than a traditional wired service. This value is used to isolate the request as a wired 802.1X request coming from the Aruba controller.
If there is a need to restrict the service to a particular group of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 4 below.

Authentication
This service will be supporting both secure certificate-based authentication (EAP-TLS) and traditional, legacy username and password authentication (PEAPv0/EAP-MSCHAPv2).
The username and password-based authentication will be used for two purposes:
-
Allow a BYOD device to initially connect and kick off the Onboard process to allow a certificate to be issued
-
Allow for domain-joined assets to use their computer/machine account to authenticate to the network as well as support machine + user workflows
Based on the above requirements, remove all the default EAP methods from the Authentication Methods list on the Authentication tab except for [EAP PEAP] and [EAP TLS].
NOTE: The default [EAP TLS] method does not have OCSP authorization configured and is being used here solely as an example. OCSP is used to check real-time validity of a certificate and enabling it is highly recommended. Special care should be taken when authenticating certificates from different certificate authorities. This is outside the scope of this document.
For Authentication Sources, you’ll add our Active Directory identity store and also the [Local User Repository]. Authentication sources will vary in your environment.
The Local User Repository will be used in the example for infrastructure accounts like having an access point or VoIP phone authenticate securely to the network using the 802.1X framework.

Authorization
Since device profile information will be leveraged in policy, add the [Endpoints Repository] to the “Additional authorization sources…” list as shown below.

Roles
Role mapping is used to tag devices and users with as much prevalent information as possible for use in a policy decision.
These rules and tags will vary greatly by environment, but below you’ll find examples of device and user tagging.

-
Rules 1 and 4 are checking group membership from Active Directory
-
Rules 2-3 are matching on the common name of the issuing CA for the authenticating certificate
Enforcement
Let’s take apart this enforcement policy rule by rule:

| 1 |
When a Windows device authenticates to the network using its Active Directory computer account, the [Machine Authenticated] tag/TIPS role is added to the session automatically. If both a machine and user authentication have occurred, then return the SECURE user role and VLAN name. This is commonly used to validate that the user is using a corporate asset. |
|---|---|
| 2 |
Rule 2 is for a machine-only authentication. These typically occur when the device is sitting at the Windows logon screen and connectivity is required for updates, remote access or for new users to login. |
| 3 |
This is a typical rule to deal with a non-Windows corporate-managed asset that is managed by an EMM solution. The two endpoint attributes have been synced down from the EMM solution via ClearPass Exchange. In this case, the rule is evaluating whether the device has its device management enabled and that no compromise has occurred. The last condition checks for the tag/TIPS role from our role mapping to verify the certificate used to authenticate was issued from the Corporate Device CA. |
| 4 |
Most personal devices will perform Onboarding through the captive portal workflow after 802.1X fails, but some users may authenticate via PEAPv0/EAP-MSCHAPv2 when prompted by their device. This rule will catch those users who need to be using certificate-based authentication (EAP-TLS) via ClearPass Onboard. The user role ONBOARD-ENROLL and SECURE VLAN name are returned to the controller. |
| 5 |
After a device has been onboarded, subsequent authentications will occur via EAP-TLS. Rule 6 uses the tag from the role mapping to check the common name of the issuing CA. These devices will be dropped into a SECURE role and VLAN. |
| 6 |
This rule uses the device category of Printer combined with a check of the Conflict flag. The authentication method (username/password vs certificate) does not really matter in this case, however, an additional condition could easily be added similar to rules 7 and 8 below. |
| 7 |
Many voice devices come from the factory with an embedded certificate that can be used for network authentication. The factory cert is being leveraged for EAP-TLS combined with profiling data. The HEADLESS user role and SECURE VLAN name are being passed back for these devices. |
| 8 |
As discussed during the authentication section, a local user account was created in ClearPass for use by access points to authenticate. Rule 8 is comparing the tag/TIPS role, category, conflict status and verifying the authentication source was the [Local User Repository] |
ClearPass: Web Authentication
The Web Authentication service handles captive portal-based authentications with server-initiated workflows.
Service Configuration
Create a new service of type RADIUS Based Enforcement (Generic).
Be sure to follow the screenshot below. Notice that Service-Type is set to Login-User (1) and Aruba-Port-Id just needs to be present in the request, regardless of value. These values are used isolate the request as a wired, RADIUS-based web authentication request coming from the Aruba controller.
If there is a need to restrict the service to a particular group of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 5 below.

Authentication
This service will be supporting both guest and Active Directory users for captive portal login.
For Authentication Sources, you’ll add the [Guest User Repository] and also our Active Directory identity store. Authentication sources will vary in your environment.

Roles
In this scenario, guests will go through a standard self-registration process. Since no custom role mapping is being used, you’ll select the generic [Guest Roles] role map.

Enforcement
Although the client device is wired, the web authentication will be processed just like a wireless client using a controller-initiated login, meaning that the client browser submits the credentials to the controller’s web server and the controller in turn makes a RADIUS request to ClearPass.
Before creating the enforcement policy, create a new enforcement profile for the guest users (Configuration » Enforcement » Profiles » Add Enforcement Profile).
-
Select ClearPass Entity Update Enforcement from the Template dropdown
-
Give the profile a name
-
On the attributes tab, add the 3 entries below and then save. Note that the value field will require manual entry (copy and paste the values below).
| TYPE | NAME | VALUE |
|---|---|---|
| Endpoint | Username | %{Authentication:Username} |
| Endpoint | Guest Role ID | %{GuestUser:Role ID} |
| Endpoint | MAC-Auth Expiry | %{Authorization:[Guest User Repository]:ExpireTime} |

Now, create a very basic enforcement policy. The rule checks for a TIPS role / tag of [Guest] and returns the GUEST-ACCESS role in the RADIUS response and writes the username, role ID and expiration time to the endpoint database for use with MAC caching on subsequent authentications.

Useful Troubleshooting Commands and Tips
Controller
show tunneled-node config
Tunneled node Server:Enabled
Tunnel Loop Prevention:Disabled
show tunneled-node state
Tunneled Node State
IP MAC port state vlan tunnel inactive-time
100.81.0.12 5c:b9:01:14:0a:00 13 complete 4013 9 0
100.81.0.12 5c:b9:01:14:0a:00 16 complete 4013 10 0
100.81.0.12 5c:b9:01:14:0a:00 15 complete 4013 11 0
show tunneled-node database
Tunneled node database
IP #Tunnels
100.81.0.12 3
Switch
show tunneled-node-server state
Tunneled Node Port State
Active Controller IP Address : 100.66.1.100
Port State
13 Complete
14 Port down
15 Port down
16 Port down
Per-User Tunneled-Node (PUTN)
Policy Enforcement
Per-User Tunneled-Node (PUTN) allows for dynamic tunneling of user traffic to a mobility controller based on a policy decision. For example, devices like access points, printers and voice devices can stay locally switched, while a new unknown device, guest user or device with questionable posture can be tunneled to an Aruba mobility controller. Each device connected to a switch port is assigned a user role and in turn can stay local or be tunneled.
A new user role configuration element was added in ArubaOS-Switch 16.04 named tunneled-node-server-redirect secondary-role. The existing controller role that will be enforced for the tunneled client is defined as this secondary role. The switch will pass this secondary role name up to the controller where it will be enforced.
aaa authorization user-role name “T–QUARANTINE”
vlan-id 603 <<< controller VLAN ID (must also be defined on the switch)
tunneled-node-server-redirect secondary-role quarantine <<< controller user role
exit
In this example, T–QUARANTINE is returned as the HPE-User-Role from ClearPass. This local user role has a secondary role defined which instructs the switch to tunnel this user to the active switch anchor controller in the defined VLAN. All of the client’s traffic is then processed by the mobility controller.
The switch is in full control of authentication, authorization and accounting. ClearPass disconnect messages and change of authorization (CoA) requests are sent from ClearPass to the switch for enforcement.
With PUTN, the controller is a stateful, deep packet inspection and processing engine with enhanced visibility and control. All tunneled users appear in both the switch and controller user tables.
SWITCH
EDGE-2930# show port-access clients
Downloaded user roles are preceded by *
Port Access Client Status
Port Client Name MAC Address IP Address User Role Type VLAN
5 darth.vade… 90e2ba-692d5a 100.66.3.16 T–QUARANTINE 8021X 603
**MOBILITY CONTROLLER
**(some columns removed for readability)
(BOS-7010-1) *#show user-table role QUARANTINE
Users
IP MAC Name Role Age(d:h:m) AP name Roaming User Type
100.66.3.16 90:e2:ba:69:2d:5a quarantine 00:00:01 tunnel 26 Wired TUNNELED USER
Configuration Overview
The hardware and software requirements for Per-User Tunneled-Node are:
-
Compatible Aruba switch running ArubaOS-Switch 16.04 or greater:
-
5400R
-
3810M / 3800
-
2930F / 2930M
-
* Please refer to switch documentation for latest feature support and scalability numbers
-
Aruba hardware mobility controller for tunnel termination running ArubaOS 8.1+
-
ClearPass Policy Manager (no version dependency unless downloadable user roles are in use which requires 6.6.7+)
Here are the hardware and software combinations used for this example configuration:
-
Aruba 2930F switch running ArubaOS-Switch 16.04.0008
-
Aruba Virtual Mobility Master (VMM) running ArubaOS 8.1.0.1
-
Aruba 7010 mobility controller running ArubaOS 8.1.0.1
-
ClearPass Policy Manager 6.6.7
Quirks and Limitations
-
Switch tunneled-node mode is global: per-user OR per-port
-
PUTN has a limit of 32 MAC addresses per port
-
Client VLANs defined on the controller must also be defined on the switch, but they should not be tagged through the network
Switch Configuration
This section will only cover configuration elements unique to Per-User Tunneled-Node (PUTN). The previous sections cover the full AAA configuration for 802.1X, MAC authentication, web authentication and user roles.
Define the controller VLANs where tunneled users will be assigned. These VLAN IDs must match the controller but the VLAN name can be different.
NOTE: These VLANs should only be created/defined. No IP address should be added and the VLAN should not be tied to any port.
| vlan 602 name TN-SECURE | controller VLAN for trusted users |
| vlan 603 name TN-GUEST | controller VLAN for guest users |
| vlan 604 name TN-UNTRUST | controller VLAN for untrusted users |
Define the switch anchor controller and globally enable role-based tunneled node (per-user).
| tunneled-node-server | enter into TN global config |
| controller-ip 100.66.1.11 | TN controller |
| mode role-based | globally enable role-based TN |
Create local user roles with the secondary-role attribute.
NOTE: The secondary-role name is case-sensitive and ArubaOS 8.x stores everything as lowercase. The secondary-role definition on the switch must be lowercase.
| aaa authorization user-role name T--QUARANTINE | define the LUR |
| vlan-id 604 | assign controller’s client access VLAN |
| tunneled-node-server-redirect secondary-role quarantine | assign controller user role |
ClearPass Configuration
Local User Roles (LURs)
When using a local user role (LUR) with PUTN, the ClearPass configuration remains the same as any other user role enforcement.
A user role name is simply returned to the switch using the HPE-User-Role VSA.

Downloadable User Roles (DURs)
From the role definition standpoint, downloadable user roles with PUTN use the same Aruba Downloadable Role Enforcement template and configuration with the addition of the tunneled-node-server-redirect secondary-role statement. See the Downloadable User Roles (DURs) section earlier in this document for more details and configuration requirements for DURs.
Below are two examples of DURs with PUTN.
NOTE: VLAN name can be used with PUTN for flexibility as long as the VLAN ID with this name on the switch is the same VLAN ID that will be used for client access on the controller.
For example, if VLAN 603 is the client access VLAN on the controller, the VLAN name defined on the switch must be for VLAN 603.


Role and Enforcement Profile Naming
Role and profile naming conventions can greatly assist with policy creation as well as reporting. The ability to quickly determine that a downloadable tunneled role was used instead of a local user role just from the name is invaluable.
For the PUTN examples used in this guide, all switch user roles with a secondary-role definition use the naming convention T–{CONTROLLER-ROLE-NAME}.
EDGE-2930# show user-role
Downloaded user roles are preceded by *
User Roles
Enabled : Yes
Initial Role : denyall
Type Name
local VOICE <<< user/traffic stays local
local SECURE <<< user/traffic stays local
predefined denyall
local T–SECURE <<< user/traffic tunneled, controller role = SECURE
local T–PROFILE <<< user/traffic tunneled, controller role = PROFILE
local T–HEADLESS <<< user/traffic tunneled, controller role = HEADLESS
local T–QUARANTINE <<< user/traffic tunneled, controller role = QUARANTINE
local COMPUTER-SECURE <<< user/traffic stays local
Along the same lines for downloadable user roles, DUR enforcement profile examples in this guide use the naming convention ROLE_AOS-S_DUR_{ROLE-NAME}.

Useful Troubleshooting Commands and Tips
show tunneled-node-server state
EDGE-2930# show tunneled-node-server state
Local Master Server (LMS) State
LMS Type IP Address State Capability Role
Primary : 100.66.1.11 Complete Per User Operational Primary
Switch Anchor Controller (SAC) State
IP Address Mac Address State
SAC : 100.66.1.11 000b86-dd4a40 Registered
User Anchor Controller (UAC) : 100.66.1.11
User Port VLAN State Bucket ID
90e2ba-692d5a 5 603 Registered 30
show tunneled-node-user all
EDGE-2930# show tunneled-node-user all
PORT MAC-ADDRESS TUNNEL-STATUS SECONDARY-USERROLE FAILURE-REASON
5 90e2ba-692d5a UP quarantine
HPE FlexNetwork (Comware v7) Enforcement
RADIUS-based Enforcement
Policy Enforcement
Access Control Lists (ACLs)
HPE Comware 7-based switches use locally defined ACLs that can be referenced via RADIUS.
ACLs are defined locally on the switch and can be returned as part of a RADIUS response or added directly to a switch port or VLAN interface.
VLAN Enforcement
VLANs in CW7 can be referenced by VLAN-ID or VLAN name. Although it is an optional configuration, VLAN name is highly recommended in a colorless port deployment as it removes the need for ClearPass to maintain a VLAN to function mapping for each switch. This simplifies policy creation, management and troubleshooting.
For example, each switch might use a different VLAN-ID for “secure access”. Instead of having to write complex policy in ClearPass to return the correct VLAN-ID for each switch, we just give the appropriate VLAN-ID a name on each switch; “SECURE” for example. Now in your ClearPass policy, you simply return a VLAN enforcement with “SECURE” as the VLAN-ID and each switch will use the appropriate VLAN-ID mapped locally on the switch.
Dynamic Authorization
CW7 switches support the following dynamic authorization commands:
-
Terminate Session: traditional disconnect message; reinitializes authenticator state
-
Bounce Host Port: bounces the port by disabling and re-enabling the port
-
Disable Host Port: administratively disables the port
NOTE: In ClearPass 6.6.X and earlier, the pre-defined Cisco dynamic authorization enforcement profiles need to be used with CW7 switches. In ClearPass 6.7.X+, use the pre-built H3C dynamic authorization enforcement profiles.
Configuration Overview
Here are the hardware and software combinations used for this configuration:
-
HPE 5130 EI switch running Comware 7.10.R3115P07
-
ClearPass Policy Manager 6.6.4 (there are no ClearPass version dependencies for this configuration)
This configuration has been tested on the HPE 5130EI, 5130HI and 5510HI. The minimum versions of Comware 7 required for this configuration are:
-
5130_EI_7.10.R3113P02
-
5130_HI_7.10.R1308
-
5510_HI_7.10.R1308
Quirks and Limitations
- Comware 7 will not accept an ACL name via the RADIUS filter-id or url-redirect attributes. The ACL number must be sent. If you do not send an ACL in the RADIUS response and there is no ACL statically configured on the port, all traffic is permitted for that session.
Switch Configuration
The configuration snippets below assume that components like VLANs, uplinks, NTP and other basics have already been configured. Note that NTP is required as accurate time plays a critical role in network authentication.
CW7 uses the concept of authentication domains and schemes. You first create a scheme for the protocol (RADIUS in this case) and then map the authentication scheme to the domain. Then enable the newly created authentication domain as the global default.
radius scheme clearpass
primary authentication 100.65.30.42 key simple
L0ng&Compl5x$ecret!
primary accounting 100.65.30.42 key simple L0ng&Compl5x$ecret!
accounting-on enable
user-name-format keep-original
#
domain clearpass
authentication lan-access radius-scheme clearpass
authorization lan-access radius-scheme clearpass
accounting lan-access radius-scheme clearpass
#
domain default enable clearpass
#
Set the NAS-IP to the RADIUS source address (usually the switch’s management IP) and configure your ClearPass server(s) as a RADIUS dynamic authorization client(s) to support Change of Authorization.
radius nas-ip 100.81.0.11
#
radius dynamic-author server
client ip 100.65.30.42 key simple L0ng&Compl5x$ecret!
#
Enable global functions and configurations:
| port-security enable port-security mac-move permit |
enable port authentication |
| dhcp snooping enable | provides IP visibility |
| dot1x authentication-method eap | enable EAP-based 802.1X |
| dot1x timer supp-timeout 10 dot1x timer tx-period 10 |
set 802.1X timers |
Define access control entries:
| acl number 3900 name
ALLOWALL rule permit ip # |
allow all |
| acl number 3902 name PROFILE rule permit udp destination-port eq bootps rule permit udp destination-port eq dns # |
unknown endpoint profiling |
| acl number 3910 name
CLEARPASS-REDIRECT description CLEARPASS-REDIRECT rule permit tcp destination 100.65.30.42 0 destination-port eq 443 rule permit tcp destination 100.65.30.42 0 destination-port eq www rule permit tcp destination 100.65.30.42 0 destination-port eq 6658 rule permit udp destination-port eq dns rule permit udp destination-port eq bootps # |
captive portal redirect + OnGuard Agent communication |
| acl number 3911 name
INTERNET-ONLY rule permit udp destination-port eq bootps rule permit udp destination-port eq dns rule deny ip destination 100.64.0.0 0.31.255.255 rule permit ip # |
deny internal access |
| acl number 3912 name BYOD rule permit udp destination-port eq bootps rule permit udp destination-port eq dns rule deny ip destination 100.65.0.0 0.0.255.255 rule permit ip # |
deny restricted networks for personal devices |
Configure end-user ports:
| interface GigabitEthernet1/0/1 | |
| port link-type hybrid | supports VoIP devices with clients behind them |
port hybrid vlan 813 tagged port hybrid vlan 1 untagged |
set voice VLAN as tagged set dead-end VLAN as untagged |
| undo voice-vlan mode auto | disable OUI based voice VLAN |
| voice-vlan 813 enable | voice VLAN |
| mac-vlan enable | MAC to VLAN mapping |
| undo dot1x handshake | not needed, see CW7 docs |
| dot1x mandatory-domain clearpass | use ‘clearpass’ domain for 1X |
| undo dot1x multicast-trigger | disable, can cause issues with VoIP phones |
| dot1x unicast-trigger | ^ unicast EAP Request to unknown MAC |
| dot1x re-authenticate | allow periodic reauthentication |
| dot1x re-authenticate server-unreachable keep-online | keeps authenticated 802.1X users online when server not reachable for 802.1X reauthentication |
| mac-authentication max-user 10 | max number of MA users connected to port |
| mac-authentication domain clearpass | use ‘clearpass’ domain for MA |
| mac-authentication timer auth-delay 15 | wait 15 seconds before initiating MA |
| mac-authentication re-authenticate server-unreachable keep-online | keeps authenticated MA users online when server not reachable for MAC reauthentication |
| mac-authentication host-mode multi-vlan | allows multiple MAC-VLAN mappings per port |
| mac-authentication parallel-with-dot1x | initiate 802.1X and MA simultaneously |
| mac-authentication re-authenticate | allow periodic reauthentication |
| port-security port-mode userlogin-secure-or-mac-ext | allow authentication of multiple 802.1X and/or MA users |
| dhcp snooping binding record | add snooping entry to table |
ClearPass: Basics
Comware 7 uses the H3C RADIUS dictionary and new RADIUS VSAs were added to support some new features like captive portal redirect. In ClearPass 6.7.X, Verify that the dictionary in your ClearPass instance has attribute #210, H3C-AVPair and attribute #250, H3C-Web-URL. If either of these are missing (ClearPass 6.6.X and earlier), download and import the latest dictionary file from support.arubanetworks.com. Instructions for importing a new or updated RADIUS dictionary can be found in the ClearPass User Guide.

Define your switch(es) as a network device(s) under Configuration » Network » Devices. At a minimum, configure Name, IP or Subnet Address, RADIUS Shared Secret and Vendor Name.

NOTE: If ClearPass 6.6.X or earlier is in use, define the vendor as
Cisco.
Dynamic authorization templates for H3C (used with Comware) were added
in ClearPass 6.7.0.
ClearPass: MAC Authentication
Overview
The MAC Authentication service will handle headless devices like printers, phones, access points and others as well as provide the redirect URL for unknown devices and users to allow for a captive portal authentication.
In this scenario, we’re leveraging the Guest Device Repository and Device Registration Portal to allow end-users and IT staff to register headless and non-802.1X capable devices. These devices can be assigned a role and account lifetime.
Service Configuration
Start with a new service of type MAC Authentication.
Under More Options, check the Authorization and Profile Endpoints boxes. This will enable two new tabs. The default service rules will work with a CW7 switch.
If there is a need to restrict the service to a particular set of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 4 below.

Authentication
On the authentication tab, remove [MAC Auth] under Authentication Methods and add [Allow All MAC Auth].
For Authentication Sources, you’ll add [Guest Device Repository] [Local SQL DB] and move it above [Endpoints Repository] [Local SQL DB].

Authorization
On the Authorization tab, add the [Endpoints Repository], [Guest User Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below.
By default, authorization data is only fetched from the authentication source where the user/device was found.

So, for example, let’s say a guest user’s device is re-authenticating to the network within their account expiration window, you’ll find the MAC address in the [Endpoints Repository] with some data like guest role and expiration time but we also want to check with ClearPass Guest to make sure an administrator hasn’t disable the account.
Roles
Role mapping is used to tag devices and users with as much information as possible for use in a policy decision.
-
Rule 1 and 2 are checking to see that a guest user account is still valid and returning the [MAC Caching] tag / TIPS role
-
Rules 3-12 map user and device role IDs to tags / TIPS roles for use in policy
-
Rules 13-15 map profiling data to a tag / TIPS role for use in policy

Enforcement
Let’s take apart this enforcement policy rule by rule:

| 1 |
If a device’s profiled category changes, ClearPass triggers a Conflict attribute. If the Conflict attribute is true, deny access to the network and also send an API call over to ServiceNow to open a ticket. Other options could include a captive portal redirect to notify the user, text message to the user, etc. |
|---|
| 2 |
This rule evaluates whether the profile Category exists for the authenticating endpoint. If it does not exist, the device has not been profiled and a redirect URL, ACL number, short session-timeout and a VLAN assignment are returned to the switch.
NOTE: Captive portal is not required for profiling. It’s simply
an |
|---|---|
| 3 |
During role mapping, we were able to determine that the device should still be MAC Cached based on its expiration and the user’s account status. The EDGE_GUEST VLAN and the ACL number for internet only access will be returned. |
| 4 |
Many headless devices have been registered via the Device Registration portal. Here we’re validating whether the authenticating device was registered as a game console, media player or printer and that the device account is enabled and hasn’t expired. The EDGE_HEADLESS VLAN is being returned along with the ACL number for ALLOWALL. |
| 5 |
Based on profiling data, devices categorized as VoIP Phone and Video Conferencing are authorized by sending back a filter-id and device-traffic-class.
This device-traffic-class=voice attribute/value pair tells the switch that this device should be treated as a voice device. Since the ports are configured as hybrid and a voice VLAN is mapped, the voice VLAN will be tagged down to the voice device. <EDGE-5130EI>dis mac-authentication connection interface
GigabitEthernet 1/0/3 |
|---|---|
| 6 |
The last rule is effectively a “catch all” which handles unknown devices. Enforcement action #1 uses the url-redirect-acl H3C-AVPair to tell the switch to use ACL number 3910 on the switch for redirection to the captive portal. Action #2 provides the redirect URL to the switch using the url-redirect H3C-AVPair. Notice that we added a variable to dynamically appended the client MAC address to the URL. This is required for many guest workflows.
The second enforcement profile returns the EDGE_GUEST VLAN and a session-timeout which cause the device to be reauthenticated every 5 minutes until registered. |
Profiler
The Profiler function allows for an unknown device to be automatically disconnected from the network once profile data has been collected and evaluated. This prevents a device from being “stuck” in a limited access role. During the second authentication, the new profile data can be used in the policy decision. This is a very common feature for MAC Authentication services.
Since we may want to drop a newly profile device into a new VLAN, the port will need to be bounced to force the device to re-DHCP.
Use caution in voice environments where client devices are connected behind a voice device. Bouncing a port after profiling a client device connected behind the voice device could result in interruption of voice service.

NOTE: In ClearPass 6.6.X and earlier, use the [Cisco -
Bounce-Host-Port]
enforcement profile.
ClearPass: 802.1X
Service Configuration
Create a new service of type 802.1X Wired.
Under More Options, check the Authorization boxes. The default service rules will work with an ArubaOS-Switch.
If there is a need to restrict the service to a particular group of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 3 below.

Authentication
This service will be supporting both secure certificate-based authentication (EAP-TLS) and traditional, legacy username and password authentication (PEAPv0/EAP-MSCHAPv2).
The username and password-based authentication will be used for two purposes:
-
Allow a BYOD device to initially connect and kick off the Onboard process to allow a certificate to be issued
-
Allow for domain-joined assets to use their computer/machine account to authenticate to the network as well as support machine + user workflows
Based on the above requirements, remove all the default EAP methods from the Authentication Methods list on the Authentication tab except for [EAP PEAP] and [EAP TLS].
NOTE: The default [EAP TLS] method does not have OCSP authorization configured and is being used here solely as an example. OCSP is used to check real-time validity of a certificate and enabling it is highly recommended. Special care should be taken when authenticating certificates from different certificate authorities. This is outside the scope of this document.
For Authentication Sources, you’ll add our Active Directory identity store and also the [Local User Repository]. Authentication sources will vary in your environment.
The Local User Repository will be used in the example for infrastructure accounts like having an access point or VoIP phone authenticate securely to the network using the 802.1X framework.

Authorization
Since device profile information will be leveraged in policy, add the [Endpoints Repository] to the “Additional authorization sources…” list as shown below.

Roles
Role mapping is used to tag devices and users with as much prevalent information as possible for use in a policy decision.
These rules and tags will vary greatly by environment, but below you’ll find examples of device and user tagging.

-
Rules 1 and 4 are checking group membership from Active Directory
-
Rules 2-3 are matching on the common name of the issuing CA for the authenticating certificate
Enforcement
Let’s take apart this enforcement policy rule by rule:

| 1 |
When a Windows device authenticates to the network using its Active Directory computer account, the [Machine Authenticated] tag/TIPS role is added to the session automatically. If both a machine and user authentication have occurred, then return the EDGE_SECURE VLAN name and filter-ID 3900 which matches an allowall ACL locally on the switch. This is commonly used to validate that the user is using a corporate asset. |
|---|---|
| 2 |
Rule 2 is for a machine-only authentication. These typically occur when the device is sitting at the Windows logon screen and connectivity is required for updates, remote access or for new users to login. |
| 3 |
This is a typical rule to deal with a non-Windows corporate-managed asset that is managed by an EMM solution. The two endpoint attributes have been synced down from the EMM solution via ClearPass Exchange. In this case, the rule is evaluating whether the device has its device management enabled and that no compromise has occurred. The last condition checks for the tag/TIPS role from our role mapping to verify the certificate used to authenticate was issued from the Corporate Device CA. |
|---|---|
| 4 |
Most personal devices will perform Onboarding through the captive portal workflow after 802.1X fails, but some users may authenticate via PEAPv0/EAP-MSCHAPv2 when prompted by their device. This rule will catch those users who need to be using certificate-based authentication (EAP-TLS) via ClearPass Onboard. A url-redirect-acl number is returned to the switch along with the Onboard enrollment URL via the H3C-AVPair attributes. This ACL was configured locally on the switch earlier.
|
| 5 |
After a device has been onboarded, subsequent authentications will occur via EAP-TLS. Rule 5 uses the tag from the role mapping to check the common name of the issuing CA. These devices will be dropped into the EDGE_SECURE VLAN with 3912 returned as a filter-ID which is the BYOD ACL locally defined on the switch. |
| 6 |
Many voice devices come from the factory with an embedded certificate that can be used for network authentication. Here we’re leveraging the factory cert for EAP-TLS combined with profiling data. This device-traffic-class=voice attribute/value pair tells the switch that this device should be treated as a voice device. Since the ports are configured as hybrid and a voice VLAN is mapped, the voice VLAN will be tagged down to the voice device. The ACL number for allowall is also passed as a filter-id. |
ClearPass: Web Authentication
The Web Authentication service handles captive portal-based authentications with server-initiated workflows.
Service Configuration
Create a new service of type Web-based Authentication.
Check the Authorization box and select Matches ALL under Service Rule.
Add a second service rule with Application:ClearPass | Page-Name | EQUALS and then the page name.
For example: if the full page URL is https://<fqdn>/guest/wired_cw7_self-reg.php, then the page name is: wired_cw7_self-reg.

NOTE: The Page-Name attribute was added in ClearPass 6.7.0. Skip if using ClearPass 6.6.X.
Authentication
This service will be supporting both guest and Active Directory users for captive portal login.
For Authentication Sources, you’ll add the [Guest User Repository] and also our Active Directory identity store. Authentication sources will vary in your environment.

Authorization
We will need to assign a manual expiration time to AD users. This time is calculated by the [Time Source] so it will need to be added as an additional authorization source.

Roles
In this scenario, guests and contractors will go through a standard self-registration process and any employee who authenticates with their corporate credentials will get a temporary guest role. Since there is no specific mapping of AD group, you’ll use the generic [Guest Roles] role map.
If different enforcement actions will be taken for different groups or classifications of users, create a new role map like the in 802.1X configuration.

Enforcement
Because the server-initiated workflow is used with Comware 7, the enforcement policy for the WEBAUTH service is very simple. The goal is to update the device endpoint record with attributes from the user authentication that will be stored and used for subsequent authentications and then bounce the port to trigger a reauthentication event.
Note: If a VLAN change is not required, a Terminate Session disconnect message can be used instead of a port bounce.
In this example, only guest users are permitted.
A basic enforcement profile for MAC caching the device is used so when re-authenticating after the port bounce, the user will not be prompted to authenticate again until their account expires.
Before creating the enforcement policy, create a new enforcement profile for the guest users (Configuration » Enforcement » Profiles » Add Enforcement Profile).
-
Select ClearPass Entity Update Enforcement from the Template dropdown
-
Give the profile a name
-
On the attributes tab, add the 3 entries below and then save
Note that the value field will require manual entry (copy and paste the values below)
| TYPE | NAME | VALUE |
|---|---|---|
| Endpoint | Username | %{Authentication:Username} |
| Endpoint | Guest Role ID | %{GuestUser:Role ID} |
| Endpoint | MAC-Auth Expiry | %{Authorization:[Guest User Repository]:ExpireTime} |

Now, create a very basic enforcement policy with a single rule which checks for the TIPS roles / tags [Guest] and [MAC Caching]. The enforcement profiles will be [H3C – Bounce Switch Port] and the endpoint update profile that you just created.
The Default Profile for the Enforcement Policy can be set to [H3C – Bounce Switch Port].

NOTE: In ClearPass 6.6.X and earlier, use the [Cisco -
Bounce-Host-Port]
enforcement profile.
ClearPass: Guest
Configuring a self-registration workflow in Guest is outside the scope of the document. For the purposes of this guide, the only relevant settings on the guest side are the NAS Vendor Settings and the Login Delay.

Under NAS Vendor Settings, be sure the Vendor Settings are set to Hewlett Packard Enterprise which should automatically set the Login Method to Server-initiated. This is what tells Guest to craft a WEBAUTH request which we just built the service for.

Under Login Delay, set the value to a minimum of 30 seconds. This is required with server-initiated workflows because we don’t want the user to attempt to browse while the port is still down or their device is re-authenticating. You may need to adjust this value in your environment.

Useful Switch Troubleshooting Commands
display dot1x sessions
display dot1x sessions interface <interface>
<EDGE-5130EI>dis dot1x sessions
GigabitEthernet1/0/1 is link-down
Online 802.1X users: 0
GigabitEthernet1/0/2 is link-down
Online 802.1X users: 0
GigabitEthernet1/0/3 is link-up
Online 802.1X users: 0
GigabitEthernet1/0/4 is link-down
Online 802.1X users: 0
GigabitEthernet1/0/5 is link-down
Online 802.1X users: 0
GigabitEthernet1/0/6 is link-up
Online 802.1X users: 1
MAC address Auth state
90e2-ba69-2d5a Authenticated
GigabitEthernet1/0/7 is link-up
Online 802.1X users: 0
GigabitEthernet1/0/8 is link-down
Online 802.1X users: 0
display dot1x connection
display dot1x connection interface <interface>
display dot1x connection user-name <username>
display dot1x connection user-mac <MAC>
<EDGE-5130EI>display dot1x connection
Total connections: 1
Slot ID: 1
User MAC address: 90e2-ba69-2d5a
Access interface: GigabitEthernet1/0/6
Username: kylo.ren@timcappalli.com
Authentication domain: clearpass
IPv4 address: 100.81.1.12
Authentication method: EAP
Initial VLAN: 1
Authorization untagged VLAN: 811
Authorization tagged VLAN list: N/A
Authorization ACL ID: 3900
Authorization user profile: N/A
Authorization URL: N/A
Termination action: Radius-request
Session timeout period: 43200 s
Online from: 2017/04/03 02:05:30
Online duration: 0h 8m 12s
display mac-authentication interface <interface>
<EDGE-5130EI>dis mac-authentication interface GigabitEthernet 1/0/3
Global MAC authentication parameters:
MAC authentication : Enabled
User name format : MAC address in lower case(xxxxxxxxxxxx)
Username : mac
Password : mac
Offline detect period : 300 s
Quiet period : 60 s
Server timeout : 100 s
Reauth period : 3600 s
Authentication domain : Not configured, use default domain
Max MAC-auth users : 4294967295 per slot
Online MAC-auth users : 1
GigabitEthernet1/0/3 is link-up
MAC authentication : Enabled
Carry User-IP : Disabled
Authentication domain : clearpass
Auth-delay timer : Enabled
Auth-delay period : 15 s
Periodic reauth : Enabled
Reauth period : N/A
Re-auth server-unreachable : Online
Guest VLAN : Not configured
Guest VLAN auth-period : 30
Critical VLAN : Not configured
Critical voice VLAN : Disabled
Host mode : Multiple VLAN
Offline detection : Enabled
Authentication order : Parallel
Max online users : 10
Authentication attempts : successful 21, failed 0
Current online users : 1
MAC address Auth state
2c41-387f-c880 Authenticated
display mac-authentication connection
display mac-authentication connection interface <interface>
display mac-authentication connection user-mac|user-name
<MAC>|<username>
<EDGE-5130EI>dis mac-authentication connection interface
GigabitEthernet 1/0/3
Total connections: 1
Slot ID: 1
User MAC address: 2c41-387f-c880
Access interface: GigabitEthernet1/0/3
Username: 2c41387fc880
Authentication domain: clearpass
Initial VLAN: 813
Authorization untagged VLAN: N/A
Authorization tagged VLAN: 813
Authorization ACL ID: 3900
Authorization user profile: N/A
Authorization URL: N/A
Termination action: Default
Session timeout period: N/A
Online from: 2017/04/03 01:42:42
Online duration: 0h 5m 56s
SNMP-based Enforcement
Policy Enforcement
VLAN assignment via SNMP is the primary enforcement method with OnConnect. VLAN access control lists (ACLs) are commonly used to control traffic in this scenario.
Configuration Overview
Here are the hardware and software combinations used for this configuration:
-
HPE 5130EI switch running code version 7.10.R3115P07 (no version dependency)
-
ClearPass Policy Manager 6.7.1 (required: 6.7.1+)
This configuration example uses SNMP v2c. SNMPv3 is also supported for OnConnect.
Quirks and Limitations
-
Active user visibility is available for Windows domain-joined machines only
-
OnConnect enforcement takes an average of 60 seconds with WMI enabled
Switch Configuration
Global switch configuration:
| snmp-agent | enable SNMP agent |
| snmp-agent community read C0mw@re! | define SNMP ro community for ClearPasss |
| snmp-agent community write C!earP@ss0nConn5ct | define SNMP rw community for ClearPass |
| snmp-agent target-host trap address udp-domain 100.65.30.52 params securityname C!earP@ss0nConn5ct v2c | set ClearPass as the snmp trap destination |
| snmp-agent trap enable mac-address snmp-agent trap enable arp snmp-agent trap if-mib link extended |
enable SNMP traps |
Interface configuration:
| interface range GigabitEthernet 1/0/1 to GigabitEthernet 1/0/12 port access vlan 2101 |
set default untrusted VLAN |
ClearPass: Basics
Server Configuration
Configure the SNMP v2c Trap Community under Administration » Server Manager » Server Configuration, Service Parameters, ClearPass network services.
This should match the community string defined in this switch configuration element: snmp-server host 100.65.30.42 community ClearPassOnConnect trap-level all

After changing the trap community, the System auxiliary services service needs to be restarted.
Navigate to Administration » Server Manager » Server Configuration, Services Control and locate System auxiliary services.
Click
. Once the service has
stopped, click
to restart the service.
Network Device
Enable SNMP Read and configure the community strings for the device:

Enable SNMP Write and configure the community strings for the device. Also, configure the Default VLAN (generally this will be the guest or untrusted VLAN):

Enable Policy Manager to perform OnConnect Enforcement.

Use the Query Ports button to test the SNMP configuration. The list will be populated with the switch ports if all is working correctly.
Individual interfaces can also be enabled for OnConnect enforcement by selecting them in the list and clicking Add to Port Names (or by manually adding them to the Port Names list).
Windows Management Instrumentation (WMI) Overview
During a port status change, ClearPass can query domain-joined Windows devices for the current logged in user. This information can then be compared with user account information in Active Directory during authorization.
Requirements:
-
Active Directory user account with WMI remote access privileges
-
Windows firewall must allow inbound access to WMI from ClearPass
WMI Configuration: ClearPass
Inside ClearPass, map the WMI credentials to the edge subnets under Configuration » Profile Settings » WMI Configuration.

ClearPass: Enforcement Profiles
Enforcement profiles for OnConnect are very basic.
For each enforcement VLAN, create a new SNMP Based Enforcement profile. Navigate to Configuration » Enforcement » Profiles » Add Enforcement Profile. Select SNMP Based Enforcement from the template dropdown.
Add the VLAN ID and Reset Connection attributes. You can also optionally add the Session Timeout attribute to trigger a re-evaluation of policy after a certain amount of time.

ClearPass: OnConnect Service
Service Configuration
Start with a new service of type ClearPass OnConnect Enforcement.
Under More Options, check the Authorization. This will enable the Authorization tab. The default service rules will work with a Comware 7 switch.
If there is a need to restrict the service to a particular set of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP service rule to reference a NAD group as seen in rule 2 below.

Authentication
Since OnConnect does not do any traditional user or device authentication, the only option available on the Authentication tab is the Strip Username Rules configuration.
If you are not planning to use WMI, nothing has to be configured on the Authentication tab.
If you are planning to use WMI to grab the currently logged in user, the Strip Username Rules will need to be configured. WMI returns the username in down-level logon format (REALM\username) so the REALM will need to be stripped off before an authorization check can be done against Active Directory.
Use the \user rule to strip the REALM from the down-level logon username.

Authorization
On the Authorization tab, add the [Endpoints Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below. If WMI-based authorization will be used, also add your Active Directory authentication source to the list so user properties can be evaluated.

Roles
Role mapping is used to tag devices and users with as much information as possible for use in a policy decision.
This example role map covers both headless devices and user mapping based off AD group membership. Headless devices are mapped using a mix of device registrations and raw profile data.

Enforcement
For the default policy, the default guest VLAN profile is specified. This is used when a request falls through the policy with no match. Let’s take apart the enforcement policy, rule by rule.

| 1 |
If the logged in user is a member of the “Contractor” AD group, the USER_CONTRACTOR tag/TIPS Role is mapped. This device is then given the GUEST VLAN, 2101 in this example. |
|---|---|
| 2 |
This rule just checks that the logged in user is a domain user. All domain users will have a UserDN attribute. These devices will be placed into the “SECURE” VLAN, 2102 in this case. |
| 3 |
Profile data is being leveraged in rule 3 to drop voice devices into VLAN 2103, for voice. |
| 4 |
These tags/TIPS roles are mapped based on the role assigned during Device Registration. These registered devices will be dropped into the “HEADLESS” VLAN, 2104 in this case. |
Useful Troubleshooting Commands and Tips
ClearPass
If OnConnect requests are not appearing in Access Tracker, take a look in Event Viewer. Below are some common error messages.
-
Traps are being sent by the switch, but the network device definition in ClearPass does not have the port listed for OnConnect enforcement.

-
The SNMP trap community is mismatched

Switch
display snmp-agent trap-list
This command will give you a summary of the switch’s SNMP trap configuration.
[CW-5130EI] dis snmp-agent trap-list
arp notification is disabled.
configuration notification is enabled.
mac-address notification is enabled.
radius notification is disabled.
standard notification is enabled.
stp notification is disabled.
system notification is enabled.
Enabled notifications: 4; Disabled notifications: 3
debugging snmp agent packet receive
debugging snmp trap packet
Debug commands can be used for more advanced troubleshooting and to verify that the switch is sending traps to ClearPass. Sample debug output is shown below.
Link change trap
%Feb 5 14:53:26:598 2018 CW-5130EI IFNET/5/LINK_UPDOWN: Line protocol on the interface GigabitEthernet1/0/2 is down.
*Feb 5 14:53:26:602 2018 CW-5130EI SNMP/7/TRAP_PACKET:
linkDown trap<v2> send to: 100.65.30.52
Request ID: 1954667472
Error status: 0
Error index: 0
UDP port: 162
Trap successfully sent*Feb 5 14:53:26:603 2018 CW-5130EI SNMP/7/VBLIST:
snmpTrapOID.0: 1.3.6.1.6.3.1.1.5.3
*Feb 5 14:53:26:603 2018 CW-5130EI SNMP/7/VBLIST:
ifIndex.2: 2
*Feb 5 14:53:26:603 2018 CW-5130EI SNMP/7/VBLIST:
ifAdminStatus.2: 2
*Feb 5 14:53:26:603 2018 CW-5130EI SNMP/7/VBLIST:
ifOperStatus.2: 2
*Feb 5 14:53:26:603 2018 CW-5130EI SNMP/7/VBLIST:
ifDescr.2: GigabitEthernet1/0/2
VLAN Enforcement and reset
*Feb 5 15:08:21:327 2018 CW-5130EI SNMP/7/PACKET:
Set request
Request ID: 1950334484
Error status: 0
Error index: 0
*Feb 5 15:08:21:327 2018 CW-5130EI SNMP/7/VBLIST:
ifAdminStatus.1: 1
Cisco Catalyst (IOS) Enforcement
RADIUS-based Enforcement
Policy Enforcement
Access Control Lists (ACLs)
Cisco Catalyst switches can leverage two types of ACLs as part of policy enforcement.
Traditional ACLs are defined locally on the switch and can be returned as part of a RADIUS response or added directly to a switch port or VLAN interface.
Downloadable ACLs (dACLs) are defined centrally on the RADIUS server. When a client authenticates in this scenario, a dACL name is returned back to the switch. The switch then sends a second RADIUS request to pull down the contents of the dACL.

VLAN Enforcement
A VLAN in Cisco IOS can be referenced by VLAN-ID or VLAN name. Although it is an optional configuration, VLAN name is highly recommended in a colorless port deployment as it removes the need for ClearPass to maintain a VLAN to function mapping for each switch. This simplifies policy creation, management and troubleshooting.
For example, each switch might use a different VLAN-ID for “secure access”. Instead of having to write complex policy in ClearPass to return the correct VLAN-ID for each switch, we just give the appropriate VLAN-ID a name on each switch; “SECURE” for example. Now in your ClearPass policy, you simply return a VLAN enforcement with “SECURE” as the VLAN-ID and each switch will use the appropriate VLAN-ID mapped locally on the switch.
Dynamic Authorization
Cisco Catalyst switches support the following dynamic authorization commands:
-
Terminate Session: traditional disconnect message; reinitializes authenticator state
-
Bounce Host Port: bounces the port by disabling and re-enabling the port
-
Disable Host Port: administratively disables the port
-
Reauthenticate Host: initiates a re-authentication event
ClearPass includes all 4 of these dynamic authorization enforcement profiles in Policy Manager.
NOTE: The switch can be configured to ignore Bounce Host Port and Disable Host Port commands using the following commands:
authentication command bounce-port ignore
authentication command disable-port ignore
Configuration Overview
Here are the hardware and software combinations used for this configuration:
-
Cisco Catalyst 2960 switch running Cisco IOS 15.0(2)SE10a with LAN base image
-
ClearPass Policy Manager 6.6.4 (there are no ClearPass version dependencies for this configuration)
This section covers Cisco’s Identity Based Networking Services (IBNS) version 1 configuration model. A future update to this document will add IBNS 2.
NOTE: IBNS 2 requires Catalyst 3850 or 3650 running IOS 15.2(1)E+ or IOS-XE 03.05.00E+, Catalyst C6500 running IOS 15.2(1)SY+, or Sup8E running IOS-XE 03.06.00E+
Quirks and Limitations
On older Cisco Catalyst switches, each port can have only one VLAN assignment except in the case of a client device connected behind a VoIP device (in that scenario, the VoIP device is tagged and the device behind it is untagged).
These limitations were removed for the following switches and versions and VLANs can be assigned by authentication session:
-
Catalyst 2960X, IOS 15.2(2)E
-
Catalyst 3850, IOS-XE 03.03.00SE
-
Catalyst 3650, IOS-XE 03.03.00SE
Switch Configuration
The configuration snippets below assume that components like VLANs, uplinks, NTP and other basics have already been configured. Note that NTP is required as accurate time plays a critical role in network authentication.
Define the ClearPass server(s) as RADIUS server(s) and dynamic authorization client(s):
radius server CLEARPASS-PROD
address ipv4 10.65.30.42 auth-port 1812 acct-port 1813
key L0ng&Compl5x$ecret!
!
aaa server radius dynamic-author
client 10.65.30.42 server-key L0ng&Compl5x$ecret!
port 3799
auth-type all
!
Enable AAA functions:
| aaa new-model aaa session-id common |
|
| ip device tracking | tracks client IPs (required for dACLs) |
| aaa authentication dot1x default group radius aaa authorization network default group radius aaa accounting dot1x default start-stop group radius |
enable each of the AAA functions and map server group |
| dot1x system-auth-control | globally enable port-based access control |
| radius-server vsa send accounting radius-server vsa send authentication |
send Cisco VSA in authentication and accounting messages |
| radius-server attribute 11 default direction in | accept IETF ‘filter-id’ to assign ACLs |
Define access control entries:
| ip access-list extended CLEARPASS-REDIRECT deny ip any host 10.65.30.42 permit tcp any any eq www permit tcp any any eq 443 |
ACL used to control traffic redirection to captive portal |
| ip access-list extended default_port_acl permit icmp any any permit udp any eq bootpc any eq bootps permit udp any any eq domain permit tcp any host 10.65.30.42 eq www permit tcp any host 10.65.30.42 eq 443 permit tcp any host 10.65.30.42 eq 6658 deny ip any any |
default port ACL |
| ip access-list extended ALLOWALL permit ip any any |
allow all ACL used after successful authN/authZ |
Configure end-user ports:
| interface FastEthernet0/1 description COLORLESS-PORT |
|
| switchport access vlan 111 switchport mode access |
assign a dead-end VLAN as default (optional security recommendation) |
| switchport voice vlan 813 | set the voice VLAN if using VoIP devices |
| ip access-group default_port_acl in | default ACL applied to the port |
| authentication host-mode multi-domain | support both voice and data device on same port |
| authentication order dot1x mab | set the authentication sequence |
| authentication priority dot1x mab | set the priority for auth methods |
| authentication port-control auto | enable authentication on port |
| authentication timer reauthenticate server | accept reauth-interval from ClearPass |
| mab | enable MAC Auth Bypass |
| dot1x pae authenticator | set the port as an authenticator |
| dot1x timeout tx-period 10 | EAP Request-Identity waiting period |
| dot1x timeout supp-timeout 15 | supplicant timeout period |
| dot1x max-reauth-req 1 | number of additional times EAP Req-ID is sent |
ClearPass: Basics
Define Switch(es)
In order for ClearPass to service RADIUS requests, switches need to be added to ClearPass as Network Devices.
They can be defined individually (security best practice) or they can be added by range or subnet. For example, in a layer 2 deployment, all switches may have a management address in the same subnet. If all switches share the same RADIUS (and TACACS+) shared secrets, the subnet can be defined instead of each switch individually. You can also define a smaller range.
To add network devices, navigate to Configuration » Network » Devices and click Add.
At a minimum, give the device (or subnet/range) a name, add the IP address, subnet with mask or range, define the RADIUS Shared Secret and select Cisco as the Vendor Name. CoA is automatically enabled.

ClearPass: MAC Authentication
Overview
The MAC Authentication service will handle headless devices like printers, phones, access points and others as well as provide the redirect URL for unknown devices to allow for a captive portal authentication. A mix of dACLs and filter-id-based enforcement will be used to show the different options.
In this scenario, we’re leveraging the Guest Device Repository and Device Registration Portal to allow end-users and IT staff to register headless and non-802.1X capable devices. These devices can be assigned a role and account lifetime. Device Registration Portal configuration will not be covered.
Service Configuration
Start with a new service of type MAC Authentication.
Under More Options, check the Authorization and Profile Endpoints boxes. This will enable two new tabs. The default service rules will work with a Cisco switch.
If there is a need to restrict the service to a particular group of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 4 below.

Authentication
On the authentication tab, remove [MAC Auth] under Authentication Methods and add [Allow All MAC Auth].
For Authentication Sources, you’ll add [Guest Device Repository] [Local SQL DB] and move it above [Endpoints Repository].

Authorization
On the Authorization tab, add the [Endpoints Repository], [Guest User Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below.
By default, authorization data is only fetched from the authentication source where the user/device was found.

So, for example, let’s say a guest user’s device is re-authenticating to the network within their account expiration window, you’ll find the MAC address in the [Endpoints Repository] with some data like guest role and expiration time but we also want to check with ClearPass Guest to make sure an administrator hasn’t disabled the account.
Roles
Role mapping is used to tag devices and users with as much prevalent information as possible for use in a policy decision.
This role map is an example of a typical MAC Authentication:

-
Conditions 1 and 2 are checking to see that a guest user account is still valid and returning the [MAC Caching] tag / TIPS role
-
Conditions 3-12 map user and device role IDs to tags / TIPS roles for use in policy
-
Conditions 13-15 map profiling data to a tag / TIPS role for use in policy
Enforcement
Let’s take apart this enforcement policy rule by rule:

| 1 |
If a device’s profiled category changes, ClearPass triggers the Conflict attribute. If the Conflict attribute is true, deny access to the network and also initiate an API call over to ServiceNow to open a ticket. Other options could include a captive portal redirect to notify the user, text message to the user, etc. |
|---|---|
| 2 |
This rule evaluates whether the profile Category exists for the authenticating endpoint. If it does not exist, the device has not been profiled and a dACL and
VLAN assignment are returned to the switch. The dACL allows both DHCP
and DNS: |
**
**
| 3 |
During role mapping, it was calculated that the device should still be MAC cached based on its expiration and the user’s account status. The EDGE_GUEST VLAN, internet-only dACL and the guest’s username will be returned to the switch. |
|---|---|
| 4 |
Like the previous rule, the Guest Role ID attribute is being checked for AD-User and the expiration time is being compared to the current time. |
| 5 |
Many headless devices have been registered via the Device Registration portal. This rule evaluates whether the authenticating device was registered as a game console, media player or printer and that the device account is enabled and hasn’t expired. The EDGE_HEADLESS VLAN is being returned along with Filter-ID = ALLOWALL which references the local ACL on the switch of the same name. |
| 6 |
Based on profiling data, we’re authorizing devices categorized as VoIP Phone and Video Conferencing by sending back a filter-id and device-traffic-class. This device-traffic-class=voice attribute/value pair tells the switch that this device should be treated as a voice device. Since the port’s host-mode is configured for multi-domain, the switch will tag the voice VLAN configured on the port down to the voice device.
EDGE-C2960#show authentication sessions interface fastEthernet
0/2 |
| 7 |
The last rule is effectively a “catch all” which handles unknown devices. Enforcement action #1 uses the url-redirect-acl Cisco-AVPair to tell the switch to use the local CLEARPASS-REDIRECT ACL to control which traffic is redirected the captive portal. Action #2 provides the redirect URL to the switch using the url-redirect Cisco-AVPair. Notice that we added a variable to dynamically appended the client MAC address to the URL. This is required for many guest workflows.
The second enforcement profile returns a dACL to control access during this captive portal pre-authentication state. We need to allow DNS and DHCP as well as HTTP and HTTPS traffic so that the switch will redirect all web traffic to ClearPass.
|
Profiler
The Profiler function allows for an unknown device to be automatically disconnected from the network once profile data has been collected and evaluated. This prevents a device from being “stuck” in a limited access role. During the second authentication, the new profile data can be used in the policy decision. This is a very common feature for MAC Authentication services.
In this case, we want to bounce the port for any type of new device because of rule 2 in the enforcement policy. Since this is a Cisco switch, the RADIUS CoA Action is [Cisco – Bounce-Host-Port].

NOTE: Use caution in voice environments where client devices are connected behind a VoIP device. Bouncing a port after profiling a new device connected behind the VoIP device could result in interruption of voice service.
ClearPass: 802.1X
Service Configuration
Create a new service of type 802.1X Wired.
Under More Options, check the Authorization boxes. The default service rules will work with a Cisco switch.
If there is a need to restrict the service to a particular group of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP rule to reference a NAD group as seen in rule 3 below.

Authentication
This service will be supporting both secure certificate-based authentication (EAP-TLS) and traditional, legacy username and password authentication (PEAPv0/EAP-MSCHAPv2).
The username and password based authentication will be used for two purposes:
-
Allow a BYOD device to initially connect and kick off the Onboard process to issue them a certificate
-
Allow for domain-joined assets to use their computer/machine account to authenticate to the network as well as support machine + user workflows
Based on the above requirements, remove all the default EAP methods from the Authentication Methods list on the Authentication tab except for [EAP PEAP] and [EAP TLS].
NOTE: The default [EAP TLS] method does not have OCSP authorization configured. OCSP is used to check real-time validity of a certificate and enabling it is highly recommended. Special care should be taken when authenticating certificates from different certificate authorities. This is outside the scope of this document.
For Authentication Sources, you’ll add our Active Directory identity store and also the [Local User Repository]. Authentication sources will vary in your environment.
The Local User Repository will be used in the example for infrastructure accounts like having an access point or VoIP phone authenticate securely to the network using the 802.1X framework.

Authorization
Since device profile information will be leveraged in policy, add the [Endpoints Repository] to the “Additional authorization sources…” list as shown below.

Roles
Role mapping is used to tag devices and users with as much prevalent information as possible for use in a policy decision.
These rules and tags will vary greatly by environment, but below you’ll find examples of device and user tagging.

-
Rules 1 and 4 are checking group membership from Active Directory
-
Rules 2-3 are matching on the common name of the issuing CA for the authenticating certificate
Enforcement
Let’s take apart this enforcement policy rule by rule:

| 1 |
When a Windows device authenticates to the network using its Active Directory computer account, the [Machine Authenticated] tag/TIPS role is added to the session automatically. If both a machine and user authentication have occurred, then return the EDGE_SECURE VLAN and the allowall filter-ID. This is commonly used to validate that the user is connecting from a corporate asset. |
|---|---|
| 2 |
Rule 2 is for a machine-only authentication. These typically occur when the device is sitting at the Windows logon screen and connectivity is required for updates, remote access or for new users to login. |
| 3 |
This is a typical rule to deal with a non-Windows corporate-managed asset that is managed by an EMM solution. The two endpoint attributes have been synced down from the EMM solution. In this case, the rule is evaluating whether the device has its device management enabled and that no compromise has occurred. The last condition checks for the tag/TIPS role from our role mapping to verify the certificate used to authenticate was issued from the Corporate Device CA. |
| 4 |
Most personal devices will perform Onboarding through the captive portal workflow after 802.1X fails, but some users may authenticate via PEAPv0/EAP-MSCHAPv2 when prompted by their device. This rule will catch those users who need to be using EAP-TLS authentication via ClearPass Onboard. Enforcement action #1 returns the EDGE_GUEST VLAN name. Enforcement action #2 uses the url-redirect-acl Cisco-AVPair to tell the switch to use the local CLEARPASS-REDIRECT ACL to control which traffic is redirected the captive portal. Rule number 2 provides the redirect URL to the switch using the url-redirect Cisco-AVPair. Notice that we added a variable to dynamically appended the client MAC address to the URL.
Enforcement action #3 returns a dACL to control access during this captive portal pre-authentication state. DNS and DHCP as well as HTTP and HTTPS traffic need to be allowed so that the switch will redirect all web traffic to ClearPass.
|
**
**
| 5 |
This is a basic rule as an example of a security exception for a group of users. These devices are dropped into the EDGE_GUEST VLAN with the INTERNET-ONLY ACL. |
|---|---|
| 6 |
After a device has been Onboarded, it will authenticate via EAP-TLS. Rule 6 uses the tag from the role mapping to check the common name of the issuing CA. These devices will be dropped into the EDGE_SECURE VLAN with the BYOD ACL. |
| 7 |
This rule uses the device category of Printer combined with a check of the Conflict flag. The authentication method (username/password vs certificate) does not really matter in this case, however, an additional condition could easily be added similar to rules 8 and 9 below. |
| 8 |
Many voice devices come from the factory with an embedded certificate that can be used for network authentication. The factory cert is being leveraged for EAP-TLS combined with profiling data. The device-traffic-class=voice Cisco-AVPair and allowall filter-id are being passed back. This device-traffic-class=voice attribute/value pair tells the switch that this device should be treated as a voice device. Since the port’s host-mode is configured for multi-domain, the switch will tag the voice VLAN configured on the port down to the voice device.
|
| 9 |
As discussed during the authentication section, a local user account was created in ClearPass for use by access points to authenticate. Rule 9 is comparing the tag/TIPS role, category, conflict status and verifying the authentication source was the [Local User Repository] |
ClearPass: Web Authentication
The Web Authentication service handles captive portal-based authentications with server-initiated workflows.
Service Configuration
Create a new service of type Web-based Authentication.
Check the Authorization box and select Matches ALL under Service Rule.
Add a second service rule with Application:ClearPass | Page-Name | EQUALS and then the page name.
For example: if the full page URL is https://<fqdn>/guest/wired_cisco_self-reg.php, then the page name is: wired_cisco_self-reg.

NOTE: The Page-Name attribute was added in ClearPass 6.7.0. Skip if using ClearPass 6.6.X.
Authentication
This service will be supporting both guest and Active Directory users for captive portal login.
For Authentication Sources, you’ll add the [Guest User Repository] and also our Active Directory identity store. Authentication sources will vary in your environment.

Authorization
We will need to assign a manual expiration time to AD users. This time is calculated by the [Time Source] so it will need to be added as an additional authorization source.

Roles
In this scenario, guests and contractors will go through a standard self-registration process and any employee who authenticates with their corporate credentials will get a temporary guest role. Since there is no specific mapping of AD group, you’ll use the [Guest Roles] role map.
If different enforcement actions will be taken for different groups or classifications of users, create a new role map like the in 802.1X configuration.

Enforcement
Because the server-initiated workflow is used with Cisco switching, the enforcement policy for the WEBAUTH service is very simple. The goal is to update the device endpoint record with attributes from the user authentication that will be stored and used for subsequent authentications and then bounce the port to trigger a reauthentication event. Note that if a VLAN change is not required, a re-authenticate session CoA can be used instead.
In this example, we’re authenticating both guest and Active Directory accounts.
For the guest accounts, we need to set up a basic enforcement profile for MAC caching the user so when they re-authenticate after the port bounce, the user will not be prompted to authenticate again until their account expires.
Create a new enforcement profile for the guest users (Configuration » Enforcement » Profiles » Add Enforcement Profile).
-
Select ClearPass Entity Update Enforcement from the Template dropdown
-
Give the profile a name
-
On the attributes tab, add the 3 entries below and then save
- Note that the value field will require manual entry (copy and paste the values below)
| TYPE | NAME | VALUE |
|---|---|---|
| Endpoint | Username | %{Authentication:Username} |
| Endpoint | Guest Role ID | %{GuestUser:Role ID} |
| Endpoint | MAC-Auth Expiry | %{Authorization:[Guest User Repository]:ExpireTime} |

Next, create an enforcement profile for the AD users following a similar process. Since captive portal-based access should only be temporary for employees, you’ll use a manual expiration of one day by using [Time Source], a pre-built information source. (Configuration » Authentication » Sources » [Time Source]).
| TYPE | NAME | VALUE |
|---|---|---|
| Endpoint | Username | %{Authentication:Username} |
| Endpoint | Guest Role ID | AD-User |
| Endpoint | MAC-Auth Expiry | %{Authorization:[Time Source]:One Day DT} |

The enforcement policy is very basic. The first rule checks for a TIPS role / tag of [Guest].
The second rule checks that the Authentication Source is Active Directory and then issues a CoA bounce port and the endpoint update enforcement profile that was created.

ClearPass: Guest
Configuring a self-registration workflow in Guest is outside the scope of the document. For the purposes of this guide, the only relevant settings on the guest side are the NAS Vendor Settings and the Login Delay.

Under NAS Vendor Settings, be sure the Vendor Settings are set to Cisco Systems which should automatically set the Login Method to Server-initiated. This is what tells Guest to craft a WEBAUTH request which we just built the service for.

Under Login Delay, set the value to a minimum of 30 seconds. This is required with server-initiated workflows because we don’t want the user to attempt to browse while the port is still down or their device is re-authenticating. You may need to adjust this value in your environment.

Useful Switch Troubleshooting Commands
show authentication sessions
EDGE-C2960#show authentication sessions
Interface MAC Address Method Domain Status Session ID
Fa0/4 0015.177b.b0d7 dot1x DATA Authz Success 6451000D0000010569EC4085
Fa0/1 90e2.ba69.2d5a mab DATA Authz Success 6451000D0000010469E9CAC0
Fa0/5 0004.f21e.f64a mab VOICE Authz Success 6451000D0000010669EF6C3F
show authentication sessions interface <x>
EDGE-C2960#show authentication sessions interface fastEthernet 0/1
Interface: FastEthernet0/1
MAC Address: 90e2.ba69.2d5a
IP Address: 100.81.2.10
User-Name: 90e2ba692d5a
Status: Authz Success
Domain: DATA
Oper host mode: multi-domain
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: 812
ACS ACL: xACSACLx-IP-DACL_CISCO_REDIRECT-3007-5
URL Redirect ACL: CLEARPASS-REDIRECT
URL Redirect: https://clearpass-demo.arubaboston.com/guest/wired_cisco_self-reg.php?mac=90:e2:ba:69:2d:5a
Session timeout: N/A
Idle timeout: N/A
Common Session ID: 6451000D0000010469E9CAC0
Acct Session ID: 0x00000139
Handle: 0x54000105
Runnable methods list:
Method State
dot1x Failed over
mab Authc Success
show dot1x interface <x> details
EDGE-C2960#show dot1x interface fastEthernet 0/4 details
Dot1x Info for FastEthernet0/4
PAE = AUTHENTICATOR
QuietPeriod = 60
ServerTimeout = 0
SuppTimeout = 15
ReAuthMax = 1
MaxReq = 2
TxPeriod = 10
Dot1x Authenticator Client List
EAP Method = (25)
Supplicant = 0015.177b.b0d7
Session ID = 6451000D0000010569EC4085
Auth SM State = AUTHENTICATED
Auth BEND SM State = IDLE
show epm session interface <x>
EDGE-C2960#show epm session interface fastEthernet 0/1
Legend:
Admission Method : (a)authproxy (e)eou (d)dot1x (m)mab (c)cts
Authorization Policies : (a)acl (s)sgt (u)url (r)urlacl (q)qos
Interface Admission Method Authorization
FastEthernet0/1 d aur
show ip device tracking all
EDGE-C2960#show ip device tracking all
IP Device Tracking = Enabled
IP Device Tracking Probe Count = 3
IP Device Tracking Probe Interval = 30
IP Device Tracking Probe Delay Interval = 0
IP Address MAC Address Vlan Interface STATE
100.81.2.13 90e2.ba69.2d5a 812 FastEthernet0/5 INACTIVE
100.81.3.10 0004.f21e.f64a 813 FastEthernet0/5 ACTIVE
100.81.2.10 90e2.ba69.2d5a 812 FastEthernet0/1 INACTIVE
100.81.2.10 2c41.387f.c880 812 FastEthernet0/2 INACTIVE
100.81.1.10 90e2.ba69.2d5a 811 FastEthernet0/7 INACTIVE
100.81.1.11 0015.177b.b0d7 811 FastEthernet0/4 ACTIVE
Total number interfaces enabled: 8
Enabled interfaces:
Fa0/1, Fa0/2, Fa0/3, Fa0/4, Fa0/5, Fa0/7, Fa0/9,
Fa0/11
SNMP-based Enforcement
Policy Enforcement
VLAN assignment via SNMP is the primary enforcement method with OnConnect. VLAN access control lists (ACLs) are commonly used to control traffic in this scenario.
Configuration Overview
Here are the hardware and software combinations used for this configuration:
-
Cisco Catalyst 2960 switch running Cisco IOS 15.0(2)SE10a with LAN base image
-
ClearPass Policy Manager 6.6.4 (required: 6.6.1+)
Quirks and Limitations
- Active user visibility is available for Windows domain-joined machines only
- OnConnect enforcement takes an average of 60 seconds with WMI enabled
Switch Configuration
Global switch configuration:
| snmp-server community OnC0nnect@Cisco2960RO! ro | create SNMP ro community for ClearPass |
| snmp-server community OnC0nnect@Cisco2960RW! rw | create SNMP rw community for ClearPass |
snmp-server enable traps snmp linkdown linkup snmp-server enable traps mac-notification snmp-server enable traps entity snmp-server enable traps bridge newroot topologychange snmp-server enable traps vlan-membership |
enable traps |
snmp-server trap link ietf snmp-server trap timeout 5 |
trap settings |
| snmp-server host 100.65.30.42 trap version 2c Cle@rPass0nConnect! snmp mac-notification | set ClearPass as the snmp-server and set trap community |
mac address-table notification change interval 1 mac address-table notification threshold mac address-table notification change |
MAC notifications configuration |
Interface configuration:
| interface FastEthernet0/1 | |
switchport mode access switchport access vlan 10 switchport mode access |
assign default VLAN and access mode |
snmp trap mac-notification change added snmp trap mac-notification change removed |
Enable MAC notifications |
ClearPass: Basics
Server Configuration
Enable OnConnect under Server Configuration (Administration » Server Manager » Server Configuration)
NOTE: This is only required in ClearPass 6.6.X

Configure the SNMP v2c Trap community string for under Administration » Server Manager » Server Configuration, Service Parameters, ClearPass network services.
This should match the community string define in this switch
configuration element:
snmp-server host 100.65.30.42 trap version 2c Cle@rPass0nConnect!
snmp mac-notification

After changing the trap community, the System auxiliary services service needs to be restarted.
Navigate to Administration » Server Manager » Server Configuration, Services Control and locate System auxiliary services.
Click
. Once the service has
stopped, click
to restart the service.
Network Device
Enable SNMP Read and configure the community strings for the device:

Enable SNMP Write and configure the community strings for the device:

Enable Policy Manager to perform OnConnect Enforcement.

Use the Query Ports button to test the SNMP configuration. The list will be populated with the switch ports if all is working correctly.
Individual interfaces can also be enabled for OnConnect enforcement by selecting them in the list and clicking Add to Port Names (or by manually adding them to the Port Names list).
Windows Management Instrumentation (WMI) Overview
During a port status change, ClearPass can query domain-joined Windows devices for the current logged in user. This information can then be compared with user account information in Active Directory during authorization.
Requirements:
-
Active Directory user account with WMI remote access privileges
-
Windows firewall must allow inbound access to WMI from ClearPass
WMI Configuration: ClearPass
Inside ClearPass, map the WMI credentials to the edge subnets under Configuration » Profile Settings » WMI Configuration.

WMI Configuration: ClearPass
Inside ClearPass, map the WMI credentials to the edge subnets under Configuration » Profile Settings » WMI Configuration.

ClearPass: Enforcement Profiles
Enforcement profiles for OnConnect are very basic.
For each enforcement VLAN, create a new SNMP Based Enforcement profile. Navigate to Configuration » Enforcement » Profiles » Add Enforcement Profile. Select SNMP Based Enforcement from the template dropdown.
Add the VLAN ID and Reset Connection attributes. You can also optionally add the Session Timeout attribute to trigger a re-evaluation of policy after a certain amount of time.

ClearPass: OnConnect Service
Service Configuration
Start with a new service of type ClearPass OnConnect Enforcement.
Under More Options, check the Authorization. This will enable the Authorization tab. The default service rules will work with an ArubaOS-Switch.
If there is a need to restrict the service to a particular set of switches, you can use a Connection | NAD-IP-Address | BELONGS_TO_GROUP service rule to reference a NAD group as seen in rule 2 below.

Authentication
Since OnConnect does not do any traditional user or device authentication, the only option available on the Authentication tab is the Strip Username Rules configuration.
If you are not planning to use WMI, nothing has to be configured on the Authentication tab.
If you are planning to use WMI to grab the currently logged in user, the Strip Username Rules will need to be configured. WMI returns the username in down-level logon format (REALM\username) so the REALM will need to be stripped off before an authorization check can be done against Active Directory.
Use the \user rule to strip the REALM from the down-level logon username.

Authorization
On the Authorization tab, add the [Endpoints Repository] and [Guest Device Repository] to the “Additional authorization sources…” list as shown below. If WMI-based authorization will be used, also add your Active Directory authentication source to the list so user properties can be evaluated.

Roles
Role mapping is used to tag devices and users with as much information as possible for use in a policy decision.
This example role map covers both headless devices and user mapping based off AD group membership. Headless devices are mapped using a mix of device registrations and raw profile data.

Enforcement
For the default policy, the default guest VLAN profile is specified. This is used when a request falls through the policy with no match which would be a guest in this case.
Let’s take apart the enforcement rules one by one:

| 1 |
If the logged in user is in the “Contractor” group, the USER_CONTRACTOR tag/TIPS Role is mapped. This device is then given the GUEST VLAN, 812 in this example. |
|---|---|
| 2 |
This rule just checks that the logged in user is a domain user. All domain users will have a UserDN attribute. These devices will be placed into the “SECURE” VLAN, 811 in this case. |
| 3 |
Profile data is being leverage in rule 3 to drop voice devices into VLAN 813, the voice VLAN. |
| 4 |
These tags/TIPS roles are mapped based on the role assigned during Device Registration. These registered devices will be dropped into the “HEADLESS” VLAN, 815 in this case. |
Useful Troubleshooting Commands and Tips
ClearPass
If OnConnect requests are not appearing in Access Tracker, take a look in Event Viewer. Below are some common error messages.
-
Traps are being sent by the switch, but the network device definition in ClearPass does not have the port listed for OnConnect enforcement.

-
The SNMP trap community is mismatched

Switch
debug snmp packets
2.4 - Using custom scripts to upgrade OnGuard Agents
HPE Networking ClearPass Policy Manager supports custom scripts through its OnGuard enforcement framework, enabling automated remediation and endpoint management. By combining Agent Script Enforcement profiles with ClearPass policy rules, administrators can trigger targeted actions on endpoints based on endpoint attributes without manual intervention.
This guide covers the configuration of custom script enforcement across Windows, macOS, and Linux, for both Persistent Agent and Agentless OnGuard deployments, for automatic OnGuard Agent upgrades as the working example. The steps illustrates the use of endpoint attributes such as client OS and current OnGuard Agent version in enforcement policies to determine under what conditions the custom scripts are used to auto-upgrade OnGuard Agents.
Custom Script Enforcement Workflow
- Create a custom script for the required task.
- Attach the script to an Agent Script Enforcement profile for the target operating system.
- Create an enforcement policy rule that triggers the profile when the defined conditions are met.
- Link the enforcement policy to the target service.
The Persistent Agent on Windows is used as the primary working example throughout this guide, demonstrating an automated agent upgrade use case. Supplementary scripts and configuration notes are provided for other agents and operating systems where applicable.
Upgrading OnGuard Agents on Windows using custom scripts
Persistent Agent on Windows
- Create a custom script by navigating to Administrator→Dictionaries→OnGuard Custom Scripts→Add.
- Use a suitable name for the custom script, Set the ‘Operating System’ as ‘Windows’ and the ‘Script Type’ as ‘Agent Script Enforcement Profile’.
- Set the below attributes with their respective values and click on Save. You can use a SHA checksum calculator tool to determine the SHA-256 checksum for the agent installer and the Download URL can be modified as needed to point to a node in the ClearPass cluster or to an external file server.
Path of the script: Installer file path on client machine. For example, “C:\OnGuardAgentUpdate\ClearPassOnGuardInstall.exe”
Download URL: Installer URL path on ClearPass or external file server. If you are using ClearPass, The URL can be found under the Installer section of OnGuard Settings.
Execution level: system. The installer requires elevated privileges to install the package on the client machine.
SHA256 Checksum: Checksum of installer file. Use the command below to generate it on Windows.
Get-FileHash ClearPassOnGuardInstall.exe -Algorithm SHA256
Command to Execute: This is the command which would run on the endpoint machine. In this example, this command silently installs the OnGuard agent on the client machine.
C:\OnGuardAgentUpdate\ClearPassOnGuardInstall.exe /S
-
Create an enforcement profile to apply the custom script to OnGuard clients that require an agent upgrade upon authentication with ClearPass. Navigate to Configuration → Enforcement → Profiles → Add to create a new enforcement profile.
-
Select Agent Script Enforcement as the template, provide a profile name, and click Next.
-
Under the Attributes tab, select Custom Script as the Agent Script attribute added to the dictionary in the previous steps, and click Save.
-
The next step is to create an enforcement policy with rules that trigger the enforcement profile upon client authentication with ClearPass. For instance, a rule can be configured to trigger the enforcement profile when the client’s OnGuard Agent version matches 6.11.x. When a client machine that meets this condition authenticates with ClearPass, the enforcement profile is triggered and executes the custom script to download and install the latest OnGuard Agent version on the client machine.
-
To add an enforcement policy, navigate to Configuration → Enforcement → Policies → Add. Provide a name, select WEBAUTH as the enforcement type, and click Next. For the default profile, either create a placeholder profile with no enforcement action or retain the existing value if modifying an existing enforcement policy.
-
Under the Rules tab, add the necessary rules to trigger the enforcement profile containing the custom script. In this example, AgentVersion and OSType are used as conditions. The Host:AgentType attribute is used to match both agent modes — OnGuard as an Agent and OnGuard as a Service — select one or both depending on your deployment settings. Once the conditions are configured, select the enforcement profile with the custom script to be applied when the conditions match. Click Save to complete the enforcement policy configuration.
-
The final step is to apply the enforcement policy to the service used for authentication by OnGuard Agents. When a client machine authenticates through that service, the enforcement policy is triggered and, if the conditions match, executes the custom script to download and install the latest OnGuard Agent version on the client machine.
-
Navigate to Configuration → Services and select the target service. If creating a new service, attach the enforcement policy directly. If editing an existing service, update the enforcement policy already mapped to that service by adding the rules, conditions, and enforcement profile containing the custom script for the agent upgrade, as described in the previous steps.
The steps above establish the baseline configuration required for upgrading OnGuard Agents using custom scripts. The following sections outline the modifications needed based on the agent type (Persistent, Agentless, or Dissolvable) and the client operating system.
Agentless OnGuard on Windows
When configuring the Custom Script for Agentless OnGuard, update the following configurations:
Under the General tab, configure the following:
- Operating System: Windows
- Script Type: Agent Script Enforcement Profile
Under the Attributes tab, configure the following:
-
Path of the Script: Installer file path on the client machine. For example,
C:\OnGuardAgentlessUpdate\AgentlessOnGuardWrapper.exe -
Download URL: The URL can be found under the Installer section of OnGuard Settings. For example,
https://<cppm-ip>/agent/AgentlessOnGuard/windows/AgentlessOnGuardWrapper.exe -
Execution Level: system
-
SHA256 Checksum: Checksum of the installer file. The checksum can be found under the Agentless OnGuard section of OnGuard Settings.
-
Command to Execute:
C:\OnGuardAgentlessUpdate\AgentlessOnGuardWrapper.exe
Within the Enforcement Policy, update the following rule condition for Agentless OnGuard on Windows:
- Agent Type: Agentless | OS Type: Windows with operator BEGINS_WITH, mapped to the relevant enforcement profile.
macOS
Persistent Agent on macOS
The following modifications apply to the baseline configuration described above.
Custom Script Changes
When configuring the custom script, apply the following adjustments:
General Tab
- Operating System: macOS
- Script Type: Agent Script Enforcement Profile
Attributes Tab
-
Path of the Script: Installer file path on the client machine. For example,
/var/tmp/OnGuardAgentUpdate/ClearPassOnGuardInstall.dmg -
Download URL: The URL can be found under the Installer section of OnGuard Settings. For example,
https://<cppm-ip>/agent/installer/mac/ClearPassOnGuardInstall.dmg -
Execution Level: system
-
SHA256 Checksum: Checksum of the installer file. Use the following command to generate it on macOS:
shasum -a 256 ClearPassOnGuardInstall.dmg -
Command to Execute: The following command mounts the DMG file and installs the OnGuard Persistent Agent on the client machine:
M=$(hdiutil attach /var/tmp/OnGuardAgentUpdate/ClearPassOnGuardInstall.dmg -nobrowse | awk '/\/Volumes\//{print substr($0,index($0,"/Volumes/"))}' | tail -1); sudo installer -pkg "$(find "$M" -maxdepth 2 -name '*.pkg' -print -quit)" -target / && hdiutil detach "$M"
Enforcement Policy Changes
Under the Rules tab, configure the following conditions:
- Condition 1: Agent Type: OnGuardAgent | OS Type: macOS, mapped to the relevant enforcement profile
- Condition 2: Agent Type: OnGuardAgentService | OS Type: macOS, mapped to the relevant enforcement profile
Agentless OnGuard on macOS
The following modifications apply to the baseline configuration described above.
Custom Script Changes
When configuring the custom script for Agentless OnGuard, apply the following adjustments:
General Tab
- Operating System: macOS
- Script Type: Agent Script Enforcement Profile
Attributes Tab
-
Path of the Script: Installer file path on the client machine. For example,
/var/tmp/OnGuardAgentlessUpdate/AgentlessOnGuardWrapper-mac.tar.gz -
Download URL: The URL can be found under the Installer section of OnGuard Settings. For example,
https://<cppm-ip>/agent/AgentlessOnGuard/mac/AgentlessOnGuardWrapper-mac.tar.gz -
Execution Level: system
-
SHA256 Checksum: Checksum of the installer file. The checksum can be found under the Agentless OnGuard section of OnGuard Settings.
-
Command to Execute: The following command extracts and executes the Agentless OnGuard installer on the client machine:
WP=/var/tmp/OnGuardAgentlessUpdate && tar -zxvf $WP/AgentlessOnGuardWrapper-mac.tar.gz -C $WP && chmod +x $WP/AgentlessOnGuardWrapper && $WP/AgentlessOnGuardWrapper && rm -rf $WP 2>&1
Enforcement Policy Changes
Under the Rules tab, configure the following condition:
- Condition 1: Agent Type: Agentless | OS Type: macOS, mapped to the relevant enforcement profile
Native Dissolvable Agent on macOS
Custom Script Enforcement is not supported for the Native Dissolvable Agent. Manual installation is required for agent upgrades. Follow the steps below:
- Once the user connects to the network, they are redirected to the Guest
web login page.
- The Web Agent attempts to upgrade but fails, displaying the following message:
“Installation failed. Please contact your administrator.”
- The Guest web login page remains on:
“Upgrading agent. Please wait…”
- To upgrade the Web Agent manually, navigate to the login page and download
the agent using the Download ClearPass OnGuard Web Agent Launcher (Mac)
link.
- Once downloaded, install the agent manually to complete the upgrade.
The Download Web Agent link is not displayed by default. One way to make it available to users within the weblogin page is to add the
following custom HTML and script which will provide them download link. If you wish to use this option then go to
Configuration → Pages → Web Logins → Footer HTML to add the custom HTML and script.
<div id="mac-only-message" style="display:none;">
{nwa_text id=7979}
<p>
Contact a staff member if you are experiencing difficulty logging in.
<br>
Download and install the ClearPass Web Agent from the link below if the
Web Agent fails to upgrade or "Upgrading Agent. Please wait..."
message is displayed.
<br><br>
<a href="https://<cppm-ip>/agent/webagent/mac/ClearPassOnGuardWebAgentLauncher">
Download ClearPass OnGuard Web Agent Launcher (Mac)
</a>
<br>
</p>
{/nwa_text}
</div>
{literal}
<script>
(function () {
var platform = (navigator.userAgentData && navigator.userAgentData.platform)
|| navigator.platform || "";
var ua = navigator.userAgent || "";
var isMac = /Mac/i.test(platform) || /Macintosh|Mac OS X/i.test(ua);
if (isMac) {
document.getElementById("mac-only-message").style.display = "block";
}
})();
</script>
{/literal}
Linux
Persistent Agent on Linux
The following modifications apply to the baseline configuration described above.
Custom Script Changes
When configuring the custom script, apply the following adjustments:
General Tab
- Operating System: Linux
- Script Type: Agent Script Enforcement Profile
Attributes Tab
-
Path of the Script: Installer file path on the client machine. For example,
/var/tmp/onguard-agent-update/ClearPassOnGuardInstall.tar.gz -
Download URL: The URL can be found under the Installer section of OnGuard Settings. For example,
https://<cppm-ip>/agent/installer/ubuntu/ClearPassOnGuardInstall.tar.gz -
Execution Level: system
-
SHA256 Checksum: Checksum of the installer file. Use the following command to generate it on Linux:
shasum -a 256 ClearPassOnGuardInstall.tar.gz -
Command to Execute: The following command extracts and installs the OnGuard Persistent Agent on the client machine:
rm -f /tmp/agent.conf && WP=/var/tmp/onguard-agent-update && tar zxvf $WP/ClearPassOnGuardInstall.tar.gz -C $WP && cd $WP && EXE=$(find $WP -type f -perm -111 | head -n 1) && $EXE --silent --auto-update > /dev/null 2>&1 && rm -rf $WP
Enforcement Policy Changes
Under the Rules tab, configure the following conditions:
- Condition 1: Agent Type: OnGuardAgent | OS Type: Linux, mapped to the relevant enforcement profile
- Condition 2: Agent Type: OnGuardAgentService | OS Type: Linux, mapped to the relevant enforcement profile
Agentless OnGuard on Linux
The following modifications apply to the baseline configuration described above.
Custom Script Changes
When configuring the custom script for Agentless OnGuard, apply the following adjustments:
General Tab
- Operating System: Linux
- Script Type: Agent Script Enforcement Profile
Attributes Tab
-
Path of the Script: Installer file path on the client machine. For example,
/var/tmp/onguard-agentless-update/AgentlessOnGuardWrapper-linux.tar.gz -
Download URL: The URL can be found under the Installer section of OnGuard Settings. For example,
https://<cppm-ip>/agent/AgentlessOnGuard/linux/AgentlessOnGuardWrapper-linux.tar.gz -
Execution Level: system
-
SHA256 Checksum: Checksum of the installer file. The checksum can be found under the Agentless OnGuard section of OnGuard Settings.
-
Command to Execute: The following command extracts and executes the Agentless OnGuard installer on the client machine:
WP=/var/tmp/onguard-agentless-update && tar zxvf $WP/AgentlessOnGuardWrapper-linux.tar.gz -C $WP && EXE=$(find $WP -type f -perm -111 | head -n 1) && $EXE && rm -rf $WP
Enforcement Policy Changes
Under the Rules tab, configure the following condition:
-
Condition 1: Agent Type: Agentless | OS Type: Linux, mapped to the relevant enforcement profile
2.5 - vMotion with ClearPass
Background
Customers become dependent on solutions and applications to help them run their business. Part of the deployment will typically include planning to ensure that the deployed systems are available and they provide a level of availability in line with the demands of the application and business. For example it’s not as important to plan for the same uptime in an application used to process luncheon-vouchers as that of an enterprise wide identity store providing authentication and authorization for the entire employees of a company, e.g. ClearPass Policy Manager.
Customers plan for availability in multiple ways and generally leverage multiple different hardware and software components. As an example many large enterprise customers will incorporate technology such as multiple Storage Area Networks to consolidate data, for high-availability this may include synchronous or asynchronous replication between them.Typically x86 and x64 environments will have been consolidated onto VMware ESXi. This virtualized technology encompasses multiple features to enable high availability for these virtualized servers. We will discuss the use of vMotion specifically in this Tech Note to assist in providing a layered HA solution.
In the area of availability, CPPM itself utilizes clustering at a software level to provide scale and Availability.
ClearPass High Availability
Multiple CPPM instances can be deployed locally or in a distributed environment to provide scale and to enable High-Availability. We will classify this solution as an active/passive software solution with regard to HA.
In a cluster of CPPM instances a CPPM can be either a Publisher or a Subscriber. Any CPPM instance can process authentications/authorization for clients but a Publisher is required in the cluster as this system is responsible for the configuration of the cluster and for database writes, such as the creation of Guest accounts or the creation of Onboard client certificates. If we lose the Publisher then we can still authenticate users to the network but we are unable to make configuration changes or create new Guest accounts.
In the event of a Publisher failure, CPPM provides for an automatic and a manual solution for this failure, as discussed below.
Manual Solution
A CPPM subscriber instance can be manually promoted to a Publisher via the GUI as shown below. Under Administration > Server Manager > Server Configuration > [select CPPM], then click the Promote to Publisher link, and click Yes to confirm the promotion as shown below.
A CPPM Subscriber can also be manually promoted to a Publisher via the CLI, using the command cluster make-publisher an example is shown below.
Automatic Solution
CPPM provides for a Subscriber to not only process authentications/authorizations etc. but it can also function in a role as a ‘Standby Publisher’. This provides for the Subscriber to monitoring the health and availability of the active-Publisher, it monitors for the availability of the Publisher DB every 60 seconds. In the event of a failure, i.e. it is not able to connect to the Publishers DB based upon the ‘Failover Wait Time’ it will begin the process of promoting itself to a Publisher. The default Timeout is 10 minutes, with a minimum value of 5 minutes and a maximum of 60 minutes. During this process all the necessary changes to its configuration and databases to allow it to function as a Publisher will be made. Any other Subscribers in the cluster that need to communicate with the Publisher are informed that this system is now the Active-Publisher and it is now responsible for any configuration changes and that they must now replicate changes from this node.
Configuring the automatic fail-over does depend on the fact that the ClearPass servers have previously been configured in a cluster.
Under Administration > Server Manager > Server Configuration > Cluster-Wide Parameters > Standby Publisher > set Enable Publisher Failover to TRUE, and then select the Designated Standby Publisher.
The option to have a CPPM node self-promoting itself to be the Active-Publisher is extremely useful. However there is a delay that could be deemed as too long by some. The time it takes for a system to effectively become the Active-Publisher from the time the Primary-Publisher fails can be as long as 7-8 minutes.
Applications for vMotion
Having discussed at a high-level that we have in our architecture the necessary features to provide for scale and availability in CPPM why would you want to invest in additional hardware/software to enable a more real-time active-active HA solution?
Some Enterprises who offer for example Guest access for Public Venues need to have the ability to constantly create accounts, a failure of 7-8 minutes may not be acceptable. Remember, when creating Guest accounts for users this must be performed on a Publisher.If this has failed or been taken out of service then no new accounts can be created.
Using a solution such as VMware vMotion allows an enterprise to provide an additional level of application availability. For example, if an ESXi host needs to be taken out of service for maintenance or upgrades then the process today to ensure that the availability of a standalone CPPM or the Publisher within a cluster is maintained is not real-time.
VMware vMotion provides the ability to Live Migrate a CPPM VM under load with little (approximately 2-3 seconds) to zero downtime. Most of the delay is dependent on the processing ability of the ESXi host, the amount of Memory in the VM and the underlying network to transport/replicate the memory pages between systems.
Requirements for vMotion
To successfully use vMotion requires a product like vSphere vCenter Server and multiple VMware vSphere Hypervisor (ESXi) hosts. There are many VMware products that include the functionality required to vMotion a VM. Refer to www.vmware.com/products to decide what is right for your environment.
Ensure that hosts that use vMotion are configured to use shared storage. During a migration with vMotion, the migrating VM must be on storage accessible to both the source and target hosts. Shared storage is typically a storage area network (SAN), but can also be implemented using iSCSI and NAS shared storage.
How vMotion works
To say we are moving a VM from one ESXi server to another with vMotion is a bit of a lie, we don’t actually move the data at all, this stays on the shared storage, it’s only the VM’s memory contents that are moved from one ESXi server to another. The VM on the first ESXi server is duplicated on to the second ESXi server and then the original is deleted, during vMotion the first ESXi server creates an initial pre-copy of memory from the running VM into the second ESXi server, during the copy process, a log file is generated to track all changes during the initial copy phase (it is referred to as a memory bitmap). Once the VM’s are practically at the same state, this memory bitmap is transferred to the second ESXi server, before the transfer of the bitmap file the VM on the first ESXi server is put into a quiescent state. This state reduces the amount of activity occurring inside the VM that is being migrated, it allows the bitmap to become so small that it can be transferred very quickly, it also allows for rollback if a network failure occurs, this means that the migration will have to be successful or unsuccessful. When the bitmap has been transferred the users are then switched to the new ESXi server and the original VM is removed from the first ESXi server.
You need the following to perform a vMotion, the below requirements are for both ESXi servers involved
-
Shared storage visibility between the source and destination ESXi servers
-
A VMkernel port group on a vSwitch configured with 1Gbps or faster (10GB ideally)on the vMotion network, it will require a separate IP address.
-
Access to the same network, preferably not going across L3 switches/routers, etc.
-
Consistently labeled vSwitch port groups
-
Compatible CPUs
vMotion Configuration
To configure vMotion on your ESXi hosts there are a few very basic requirements.
You must ensure that vMotion is enabled on your VMkernel management network. If not messages similar to the below will be shown when you try to run a vMotion on a VM.
If you do experience messages similar to the above then configuration changes will be required to the underlying VMware networking interfaces.
Note: We renamed our port to make it a more sensible name/label. We used ‘Mgmt and vMotion’. Click on ‘Properties’ and ensure as shown below that vMotion is enabled on the port on this vSwitch.
If vMotion is not enabled, click ‘Edit’ on the ‘vMotion and IP Storage Port’ and then enable and save as shown on the following screen.
Beyond the basics of configuring the base ESXi system and configuring a standard CPPM VM and ensuring that the vMotion as shown above is configured that is all you need to do.
Using vSphere Web Client to vMotion an active-CPPM VM
There are multiple methods available from within vCenter’s GUI to initiate a vMotion. Below we have shown one option. We have navigated to and we are displaying all the VM’s that are registered and managed by vCenter. Another option would be to view the individual ESXi host and see the VM’s installed on that host as another method.
By right clicking on the VM we have selected (CPPM – Prod VM (10.2.100.225), under ‘All vCenter Actions’ we can see an option to ‘Migrate’ the VM.
Choose what type of vMotion you want to perform; in our case we will change the hosting ESXi server, the first option.
Next select the target ESXi server that will be the destination server for the VM.
Once all your parameters have been selected, confirm and click on the Finish button. vCenter will now move the VM between the source and target ESXi servers.
Monitoring the Move
On the right-hand side of the main vCenter screen you see a visual indication under ‘Recent Tasks’ of the progress of the migration. Once the move is complete a green-tick indicator is displayed as shown below for the previous vMotion we performed. You can see that the current migration is 45% complete and that the previous vMotion completed successfully.
To see additional details about the underlying vMotion process, i.e. the time it took for them to complete you can look under the Monitor then Tasks tab. You can see the start/completion times (2:31:02-2:31:11),to/from ESXi hosts (10.2.100.50-10.2.100.51)
| Related events: | Related events: |
|---|---|
| January 24,2014 at 2:31:11 PM PST January 24,2014 at 2:31:02 PM PST | Migration of virtual machine CPPM-Prod VM (10.2.100.225) from 10.2.100.51, datastore-nas to 10.2,100.50, datastore-nas completed |
| January 24,2014 at 2:31:11 PM PST January 24,2014 at 2:31:02 PM PST | =Migrating CPPM-Prod VM (10.2.100.225) off host 10.2.100.51 in TME-LAB |
| January 24, 2014 at 2:31:02 PM PST | Migrating CPPM -Prod VM (10.2.100.225) from 10.2.100.51, datastore-nas to 10.2.100.50, datastore-nas in TME-LAB |
vMotion Failover Timings
As part of our research we performed multiple timings to understand the expected fail-over performance.
Several factors are directly related to the delay.
• Performance characteristics of the underlying ESXi Server
• Size of the CPPM VM in use
• Workload of the VM – more auth being process = more memory pages changing
• VM-500 (4GB of Memory [default] – minimum recommended size)
• VM-5k (8GB of Memory [default] – minimum recommended size)
• VM-25K (24GB of Memory [default] – minimum recommended size)
• Speed and Utilization of the underlying Network 1GB-Minimum / 10GB-Reccomended
Below is a collection of our timings; we’d expect your performance to be closely inline or better than our findings below. Whilst running the Under-load test we typically did not see any auth failures, we also ran a constant ping to the host with out loss of any packets.
As a rule when ran the vMotion test multiple times. The times below represent what is a $9 5 ^ { t h } +$percentile of the average process time.
| vMotion VM Type (RAM) | 1Gbps Idle | 1Gbps Under load | 10Gbps Idle | 10Gbps Under load |
|---|---|---|---|---|
| VM-500 (4MB) | ~9 seconds | 9 seconds | ||
| VM-5K (8MB) | ~12 seconds | ~14 seconds | ||
| VM-25K (24MB) | ~18 seconds | ~18 seconds |
To expand on the testing we performed. We utilized an in-house testing tool which simulates a number of users performing RADIUS authentication and Guest Users registering through an registration portal, we also ran a constant PING to the VM. Whilst the testing automation was running we performed a vMotion’ed on the active VM, we never experienced a missed PING but did at times experience very minor Guest registration failures. In a live network, the expected user experience is that they might have to re-enter the details into the registration portal again to complete their registration.
Following are copies of our vMotion logs showing the failover times under an idle environment.
2.6 - Configuring IPsec tunnels in ClearPass
IPsec Headers
The IPsec protocol defines two headers for authentication and encryption.
Authentication Header (AH)
The Authentication Header authenticates the sender and guarantees the integrity of the message; it does not provide privacy (encryption).
The sender generates a hash of the non-mutable fields in the IP header and the message data. The hash is encrypted with either the sender’s private key for certificate based authentication or the pre-shared key for PSK authentication to generate a digital signature (AH Header).
Encapsulating Security Header (ESP)
The Encapsulating Security Header authenticates the sender, guarantees the integrity of the message and provides privacy by encrypting the message data.
The message data is encrypted by the ESP header, and the ESP Auth Trailer provides the digital signature that authenticates the sender and guarantees the integrity of the data.
Deployment Modes
Site to Site
IPsec gateways encrypt traffic between sites. The IPsec gateways encrypt traffic on behalf of local hosts. In this mode the endpoints of the IPsec connection are the public addresses of the gateways. Local traffic between the host and the IPsec gateway is not encrypted.
Host to Host
In Host to Host mode traffic is encrypted end to end between hosts. The endpoints of the IPsec connection are the IP address of the local hosts.
IPsec Modes
Tunnel Mode
Tunnel mode is most commonly used between gateways, or between an end-station and a gateway, the gateway acts as a proxy for the hosts behind it.
In tunnel mode the ESP Header is placed in front of the original IP Header. The original IP destination and source addresses are encrypted. A new IP header is added to the front of the packet. Typically the new IP addresses are the public addresses of the IPsec gateways. Tunnel mode is typically used for Site to Site deployments.
Transport Mode
In Transport mode the ESP header is placed in front of the massage data. The original IP address of the end stations are exposed.
Transport mode is typically used between end-stations or between an end-station and a gateway where the gateway is being treated as a host. An example might be an encrypted Telnet session from a workstation to a router.
Internet Key Exchange (IKE)
IKE is a protocol that belongs to the IPsec protocols suite. Its responsibility is setting up security associations between two IPsec peers. IKE was introduced in 1998 and was later superseded by version 2 roughly 7 years later.
The primary differences between IKEv1 and IKEv2 are:
-
IKE2 requires fewer messages to establish the Security Association
-
IKEv2 supports EAP authentication as well as pre-shared key and certificate authentication. IKEv1 does not support EAP and can only choose between a pre-shared key and certificate authentication.
-
IKEv2 incorporates NAT traversal. NAT traversal is necessary when a router along the route performs Network Address Translation.
-
IKEv2 includes a check to detect whether the tunnel is still alive or not. If the check fails, IKEv2 will automatically re-establish the connection.
IKEv1 Modes
IKEv1 supports two modes; Main Mode and Aggressive mode. The difference is the number of messages required to establish the Security Association. Main mode requires six packets to establish the SA while Aggressive mode only needs four. Main Mode is considered slightly more secure.
IPsec Algorithms
Key Exchange Algorithms
Diffie-Hellman Key exchange algorithms are used to securely derive a shared secret value between two computers over an unsecured network connection. The computers exchange information that, when processed by the algorithm, produces the shared secret. A third computer listening on the network and intercepting network packets between the first two computers cannot determine the shared secret value. The shared secret value can then be used as a session key, or to generate a session key, to encrypt the rest of the communications used in the IPsec negotiations. Higher group numbers offer increased security but require additional time / computes to derive the shared secret,
Diffie-Hellman Groups
-
1 – Group 1 768 bit group Note: Group 1 is no longer considered secure
-
2 – 1024 bit group
-
5 – 1536 bit group
-
14 – 2048 bit group
-
19 – 256 bit elliptical curve group
-
20 – 384 bit elliptical curve group
Data Integrity Algorithms
Data integrity algorithms ensure that a packet received from a remote computer was not modified in transit. The sending computer calculates a hash value from the data payload of the network packet. This hash is then cryptographically signed and attached to the packet. The receiving computer performs the same calculation on the data payload of the packet and compares it to the hash that was attached by the sender. If the hashes match, then the data has not been modified. If the hash values do not match, then the packet was altered between the source and the destination and the receiving computer drops the packet. Data integrity algorithms do not encrypt the data; encryption protocols must be used for that purpose. Some Integrity Algorithms include:
-
HMAC-SHA
-
HMAC-SHA256
-
HMA-SHA384
-
HMAC-MD5
IKE2 supports the Pseudo Random Function (PRF) variant of the Integrity Algorithms. The HMAC variants support a truncated output while the PRF variant does not.
-
PRF-HMAC-SHA
-
PRF-HMAC-SHA256
-
PRF-HMA-SHA384
-
PRF-HMAC-MD5
Privacy Algorithms
Symmetric Privacy algorithms are used to encrypt message data. The symmetric keys are derived from the Diffie-Hellman Key Exchange algorithms. Longer keys are more secure and require more compute power for encryption and decryption.
-
3DES
-
AES128
-
AES192
-
AES256
ClearPass Configuration
ClearPass supports IPsec connections on both the Management and Data interfaces. Typically the connections are between ClearPass nodes or between ClearPass and controllers or switches.
ClearPass to ClearPass
Typical deployments include providing additional security for nodes in a local ClearPass cluster, between a local ClearPass node and a ClearPass node in the DMZ, or between a local ClearPass node and a ClearPass node at a remote site.
To configure the IPsec tunnel select Administration » Server Manager » Server Configuration – Network
Select Create IPsec Tunnel
The Create IPsec Tunnel screen configures the local Management or Data interface.
The IPsec Mode, IKE Version, IKEv1 Phase 1 mode and Authentication type are not negotiated between the IPsec peers and must match for the local and remote endpoints. If the authentication algorithms and encryption algorithms do not match they can be negotiated between the peers. To be sure the desired algorithms are chosen select the same ones for each peer.
Select the Local and remote IP address for the IPsec peers and select Tunnel or Transport mode.
Since this is a host to host deployment there are no IPsec gateways. If tunnel mode is selected the new IP header (unprotected) will be the same as the IP header (encrypted).
Next select the IKE parameters and Authentication Type
If IKE version 1 is selected choose the phase 1 mode; Main or Aggressive mode. Main mode is more secure but requires more bandwidth. If IKE version 2 is selected there are no phase 1 options.
There are two options for Authentication type; Pre-Shared Key and Certificate
Pre-Shared keys are simpler to configure but are generally considered less secure. The Pre-Shared key (IKE Shared Secret) is used for creating a digital signature (encrypting the authentication hash). The receiver uses the same key to decrypt the hash and if they match the peer is authenticated. Certificate based authentication is similar. The two peers exchange x509 certificates. The certificates contain the peer’s public keys and must be signed by a certificate authority the receiver trusts. The sender encrypts the authentication hash with its private key and the receiver authenticates by decrypting the hash with the public key from the sender’s certificate. Pre-Shared Keys and certificates are not used to encrypt message data
IKE uses Diffie-Hellman key exchange to derive a shared secret for the IPsec peers. The Diffie-Hellman Group selected should reflect the sensitivity of the information being encrypted. Higher group numbers are more secure. Groups 19 and 20 are Suite-B elliptical curve algorithms.
INFO
Group 1 is no longer considered secure and should not be used
If IKE version 1 has been selected the authentication algorithms available are;
Non FIPS Mode FIPS Mode
If IKE version 2 was selected the PRF variants are used
Non FIPS Mode FIPS Mode
MD5 has been shown to have collision weaknesses; different inputs may produce the same output. This may make it unsuitable for authentication hashing. MD5 hashing is disabled in FIPS mode.
The encryption algorithms available are;
Longer key lengths are more secure but require more compute power to encrypt and decrypt the data. AES (Advanced Encryption Standard) 256 provides the highest level of protection.
Pre-Shared Key Authentication Example
Configure both of the IPsec peers
Once the Security Association is negotiated and the connection established the status can be viewed by clicking on the Action icon
If the connection does not come up
It may be necessary to stop and restart the IP Service on both peers
Certificate Based Authentication Example
In certificate based authentication the IPsec peers exchange X509 certificates during the IKE protocol SA negotiation. The certificate contains the Pubic key of the IPsec peer and must be issued (signed) by a certificate authority the receiving peer trusts. The issuing certificate authority must be in the receiving peer’s “Trust List”
The HTTPS server certificate is used for IPsec connections.
Since the default CPPM server certificate is self signed it will not be trusted by the other IPsec peer. In this example we will use publicly signed certificates.
Configure the IPsec peers
INFO
The Hash Algorithm must match the Signature Algorithm in the Certificate.
Verify that the IPsec connection is established
If certificates issued by a Public Certificate Authority are not available the Onboard CA can be used to issue the certificates.
In Onboard create a new Certificate Authority
Make sure the Digest Algorithm is supported by the IPsec peers
After the CA is created select edit Certificate Authority
Select a Digest Algorithm that the IPsec Peers support.
After the new CA is configured correctly generate a Certificate Signing Request (CSR) on each of the IPsec Peers.
Upload the Certificate Signing Requests to the Certificate Authority.
Select Certificate Type: Trusted Certificate and Issue certificate immediately.
From the Manage Certificate screen select certificate type: Trusted and Export the Certificates for the IPsec peers
These will be uploaded as the HTTPS certificate for each Peer.
Next select Certificate type: Certificate Authority and export the Root and Intermediate (signing) certificates
These will be added to the trust list on each Peer.
Configure the IPsec peers for certificate based authentication
ClearPass to Aruba Controller
The following configuration will establish an IPsec tunnel between the Aruba Controller and the ClearPass Server. Since IPsec is Layer-3, this will work whether the two devices are on the same network or different networks, so long as the networks between the two devices allow IPsec.
Preshared Keys
ClearPass Configuration
Aruba Controller Configuration
The following procedure will describe how to setup the Controller-side of the IPsec tunnel.
-
Log in to the Aruba Controller and go to ‘Configuration > Advanced Services – VPN Services’ and go to the ‘Site-to-Site’ tab
-
Under ‘IPsec Maps’, click ‘Add’
-
Fill in the appropriate information to meet the IPsec settings required. The image below shows both a PSK-based IKEv1 AES256, as well as a PSK-based IKEv2 AES256 IPsec tunnel on the controller. Note that for IKEv2, the destination subnet mask is different than for IKEv1. This may be corrected in a later version of AOS.
-
Once done, click the ‘Done’ button, and then ‘Apply’ at the bottom of the page, and then save the configuration.
ClearPass IPsec Troubleshooting
INFO
For IKEv2, to address a transport-mode issue, the destination subnet mask on the controller for a single host needs to be set at 255.255.255.254’ to work properly. This may be corrected in a later version of AOS.
Verify IPsec Connection – Controller
Log in to the controller’s CLI and run the following commands:
-
Show crypto isakmp sa
-
Show crypto ipsec sa
Troubleshooting
ClearPass
There are three primary logs that provide valuable troubleshooting information
-
PolicyManagerLogs 🡪 Platform-ipsec
-
SystemLogs 🡪 ipsec-conn.txt
-
SystemLogs 🡪 Var 🡪 Log 🡪 messages
Ipsec-conn.txt
This file shows the IPsec Security Associations
Listening IP addresses:
192.168.1.204
Connections:
ipsec-3025: 192.168.1.204…192.168.1.205 IKEv1, dpddelay=30s
ipsec-3025: local: [OU=Domain Control Validated, CN=cp.dpblab.net] uses public key authentication
ipsec-3025: cert: “OU=Domain Control Validated, CN=cp.dpblab.net”
ipsec-3025: remote: uses public key authentication
ipsec-3025: child: dynamic === dynamic TUNNEL, dpdaction=restart
Security Associations (1 up, 0 connecting):
ipsec-3025[5]: ESTABLISHED 54 minutes ago, 192.168.1.204[OU=Domain Control Validated, CN=cp.dpblab.net]…192.168.1.205[OU=Domain Control Validated, CN=cp1.dpblab.net]
It also shows the Certificate used for the connection. In this example the certificate for cp.dpblab.net was issued by the public CA godaddy
List of X.509 End Entity Certificates:
altNames: cp.dpblab.net, www.cp.dpblab.net
subject: “OU=Domain Control Validated, CN=cp.dpblab.net”
issuer: “C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2”
serial: e6:a3:7f:bb:ce:4b:1d:68
validity: not before Mar 19 15:38:38 2015, ok
not after Dec 13 11:38:03 2015, ok (expires in 23 hours)
pubkey: RSA 2048 bits, has private key
keyid: 96:2f:67:06:7d:49:9e:15:6a:69:92:f4:b0:e2:3d:34:cd:6b:73:09
subjkey: ef:ca:0f:73:46:14:a5:f6:c9:c5:ab:f2:ce:04:d6:2c:3f:6d:a6:16
authkey: 40:c2:bd:27:8e:cc:34:83:30:a2:33:d7:fb:6c:b3:f0:b4:2c:80:ce
altNames: cp1.dpblab.net, www.cp1.dpblab.net
subject: “OU=Domain Control Validated, CN=cp1.dpblab.net”
issuer: “C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2”
serial: ba:a7:70:4d:8e:22:32:cd
validity: not before Oct 08 16:10:38 2015, ok
not after Oct 08 16:10:38 2016, ok
pubkey: RSA 2048 bits
keyid: aa:03:69:ea:a7:bd:c0:84:cb:e0:ac:15:da:75:df:ba:77:a5:99:68
subjkey: d7:26:a0:11:8d:90:88:ac:ec:66:cd:c7:02:2a:6c:c9:be:99:16:70
authkey: 40:c2:bd:27:8e:cc:34:83:30:a2:33:d7:fb:6c:b3:f0:b4:2c:80:ce
The next section is a list of Trusted certificate Authorities; this is from the ClearPass trust list. The CA that signed the IPsec Peers certificate must be in the trust list
List of X.509 CA Certificates:
subject: “C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2”
issuer: “C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2”
serial: 07
validity: not before May 03 03:00:00 2011, ok
not after May 03 03:00:00 2031, ok
pubkey: RSA 2048 bits
keyid: b4:55:50:14:83:45:1f:ee:8c:a0:a1:0c:f5:af:de:3a:4c:5e:11:59
subjkey: 40:c2:bd:27:8e:cc:34:83:30:a2:33:d7:fb:6c:b3:f0:b4:2c:80:ce
authkey: 3a:9a:85:07:10:67:28:b6:ef:f6:bd:05:41:6e:20:c1:94:da:0f:de
subject: “C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2”
issuer: “C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority”
serial: 1b:e7:15
validity: not before Jan 01 02:00:00 2014, ok
not after May 30 03:00:00 2031, ok
pubkey: RSA 2048 bits
keyid: 21:0f:2c:89:f7:c4:cd:5d:1b:82:5e:38:d6:c6:59:3b:a6:93:75:ae
subjkey: 3a:9a:85:07:10:67:28:b6:ef:f6:bd:05:41:6e:20:c1:94:da:0f:de
authkey: d2:c4:b0:d2:91:d4:4c:11:71:b3:61:cb:3d:a1:fe:dd:a8:6a:d4:e3
subject: “C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority”
issuer: “C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority”
serial: 00
validity: not before Jun 29 13:06:20 2004, ok
not after Jun 29 13:06:20 2034, ok
pubkey: RSA 2048 bits
keyid: ee:e5:9f:1e:2a:a5:44:c3:cb:25:43:a6:9a:5b:d4:6a:25:bc:bb:8e
subjkey: d2:c4:b0:d2:91:d4:4c:11:71:b3:61:cb:3d:a1:fe:dd:a8:6a:d4:e3
authkey: d2:c4:b0:d2:91:d4:4c:11:71:b3:61:cb:3d:a1:fe:dd:a8:6a:d4:e3
subject: “C=US, ST=California, L=Sunnyvale, O=Aruba Networks, CN=ClearPass Onboard Local Certificate Authority (Signing), E=dab@labnet.com”
issuer: “C=US, ST=California, L=Sunnyvale, O=Aruba Networks, CN=ClearPass Onboard Local Certificate Authority, E=dab@labnet.com”
serial: 0f
validity: not before Oct 13 11:32:54 2015, ok
not after Oct 13 12:02:54 2025, ok
pubkey: RSA 2048 bits
keyid: 69:4d:73:f1:6a:ec:2e:f5:a8:6d:e5:51:08:eb:d8:92:f2:de:14:ac
subjkey: 5d:39:61:4f:eb:3d:18:7d:21:9d:33:2c:53:0b:1b:cc:f6:06:20:8d
authkey: b5:42:f6:ed:db:d5:1f:c0:3a:c3:7f:b0:7d:09:c8:42:46:c4:b4:7d
Platform-ipsec
ipsec-3024[3] to 192.168.1.205
no private key found for ‘CN=cp.dpblab.net’
configuration uses unsupported authentication
tried to check-in and delete nonexisting IKE_SA
establishing connection ‘ipsec-3024’ failed
This shows a mismatch between the authentication algorithm negotiated by the IPsec peers and the authentication (signing) algorithm contained in the certificate
Messages
Dec 12 08:53:10 cp charon: 08[IKE] initiating Main Mode IKE_SA ipsec-3024[2] to 192.168.1.205
Dec 12 08:53:10 cp charon: 08[IKE] IKE_SA ipsec-3024[2] state change: CREATED => CONNECTING
Dec 12 08:53:10 cp charon: 08[IKE] no private key found for ‘CN=cp.dpblab.net’
Dec 12 08:53:10 cp charon: 08[CFG] configuration uses unsupported authentication
Dec 12 08:53:10 cp charon: 08[MGR] tried to check-in and delete nonexisting IKE_SA
This shows a mismatch between the authentication algorithm negotiated by the IPsec peers and the authentication (signing) algorithm contained in the certificate
Dec 10 10:07:29 cp charon: 01[CFG] selected proposal: IKE:AES_CBC_192/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
Dec 10 10:07:29 cp charon: 01[IKE] reinitiating already active tasks
Dec 10 10:07:29 cp charon: 01[IKE] ISAKMP_VENDOR task
Dec 10 10:07:29 cp charon: 01[IKE] MAIN_MODE task
Dec 10 10:07:29 cp charon: 01[ENC] generating ID_PROT request 0 [ KE No NAT-D NAT-D ]
Dec 10 10:07:29 cp charon: 01[NET] sending packet: from 192.168.1.204[500] to 192.168.1.205[500] (244 bytes)
Dec 10 10:07:29 cp charon: 14[NET] received packet: from 192.168.1.205[500] to 192.168.1.204[500] (244 bytes)
Dec 10 10:07:29 cp charon: 14[ENC] parsed ID_PROT response 0 [ KE No NAT-D NAT-D ]
Dec 10 10:07:29 cp charon: 14[IKE] reinitiating already active tasks
Dec 10 10:07:29 cp charon: 14[IKE] ISAKMP_VENDOR task
Dec 10 10:07:29 cp charon: 14[IKE] MAIN_MODE task
Dec 10 10:07:29 cp charon: 14[ENC] generating ID_PROT request 0 [ ID HASH ]
Dec 10 10:07:29 cp charon: 14[NET] sending packet: from 192.168.1.204[500] to 192.168.1.205[500] (76 bytes)
Dec 10 10:07:29 cp charon: 12[NET] received packet: from 192.168.1.205[500] to 192.168.1.204[500] (76 bytes)
Dec 10 10:07:29 cp charon: 12[ENC] parsed ID_PROT response 0 [ ID HASH ]
Dec 10 10:07:29 cp charon: 12[IKE] IKE_SA ipsec-3022[1] established between 192.168.1.204[192.168.1.204]…192.168.1.205[192.168.1.205]
Dec 10 10:07:29 cp charon: 12[IKE] IKE_SA ipsec-3022[1] state change: CONNECTING => ESTABLISHED
This shows a successful connection
Controller
Turn on debugging
config t
logging level debug security process l2tp
logging level debug security process crypto
logging level debug security subcat vpn
logging level debug security subcat IKE
Show Security Log
Then, while it is connecting, do a “show log security 50”
Jan 22 13:37:50 :103063: <DBUG> |ike| 192.168.1.206:500-> ike_phase_1_send_KE_NONCE 192.168.1.206
Jan 22 13:37:50 :103063: <DBUG> |ike| GetFirstMatchIsakmpPSK: entering
Jan 22 13:37:50 :103063: <DBUG> |ike| mask FFFFFFFF, ip C0A801CE, key_ip C0A801CE
Jan 22 13:37:50 :103060: <DBUG> |ike| ike_auth.c:ike_auth_get_key:603 Found isakmp policy for peer 192.168.1.206 client:no
Jan 22 13:37:50 :103063: <DBUG> |ike| ike_phase_1_post_exchange_KE_NONCE IV len:16
Jan 22 13:37:50 :103063: <DBUG> |ike| ike_phase_1_post_exchange_KE_NONCE done 192.168.1.206 g_x_len:128 skeyid_len:20
Jan 22 13:37:50 :103063: <DBUG> |ike| 192.168.1.206:500-> message_parse_payloads: invalid next payload type <Unknown 113> in payload of type 5
Jan 22 13:37:50 :103060: <DBUG> |ike| 192.168.1.206:500-> message.c:message_drop:2886 Message drop from 192.168.1.206 port 500 due to notification type INVALID_PAYLOAD_TYPE
Jan 22 13:37:50 :103053: <INFO> |ike| Drop message from 192.168.1.206 due to invalid IKE shared-secret
Jan 22 13:37:54 :103063: <DBUG> |ike| 192.168.1.206:500-> message_parse_payloads: invalid next payload type <Unknown 113> in payload of type 5
Jan 22 13:37:54 :103060: <DBUG> |ike| 192.168.1.206:500-> message.c:message_drop:2886 Message drop from 192.168.1.206 port 500 due to notification type INVALID_PAYLOAD_TYPE
Jan 22 13:37:54 :103053: <INFO> |ike| Drop message from 192.168.1.206 due to invalid IKE shared-secret
In this example the Peers shared secret does not match
2.7 - Updating after License Transfer
Customers who purchased ClearPass Policy Manager prior to 2019 likely will likely see their licenses in HPE Networking Support Portal https://networkingsupport.hpe.com/ as both ClearPass NL and ClearPass Legacy. When they upgraded to ClearPass 6.7 (or later) their licenses followed the conversion process outline in the ClearPass 6.7 License Conversion TechNote https://www.hpe.com/psnow/doc/a00108259en_us As the original purchased appliances reached the End of Support Life (EoSL) milestone they were provided the option to continue to maintain those licenses and transfer them to be independent of the original purchase through the ClearPass Access license transfer process.
When customers purchase one of the associated nine (9) transfer SKUs they are then able to continue to use those converted legacy licenses going forward. This document helps identify the steps required by the customer to correctly update their information in HPE Networking Support Portal to ensure that they do not have service disruptions with functionality or support.
Note that HPE is unable to automatically perform this task in many cases due to the legacy behavior that allowed customers to use the same Subscription ID in multiple ClearPass servers. To ensure that the proper licenses are correctly mapped, this does require customers to validate their records for accuracy.
Upon completing the to acquire transfer licenses, the customer should receive an Email with the electronic software delivery receipt information. An example of this from a customer purchasing the R9R50AAE part would look like the one shown below.
Because the transfer SKU does not issue a new license activation key, the resulting page will only indicate a new License Serian Number (LSN) for the purchase.
This License Serial Number should then be used to re-map the existing licenses that are desired to be used in HPE Networking Support Portal.
Prior to continuing, the customer is recommended to execute the “show license” command on their ClearPass Policy Manager systems that contain Access NL licenses. This is typically the publisher node only.
This will result in an output similar to the following taken from an evaluation system
[appadmin@clearpass1]# show license
Application : Access
License key : —–BEGIN ACCESS LICENSE KEY—–
H4sIAAAAAAACAwAAAv/9A22uXvNDg0MP9RIsoLWdKFv1zeRVqjD25ni/scMwh9VFwMjSuSb4rPo6
J3auJ6XOu8j0c9qBBGVZsr6WcJMnJMEu6cYluKmhWYv8fId1lEzjSb/Td0IPMzl/ryCBgBCOKLQr
mwaaBwC1NAzOEMT+SJ+j6SRLLhaQlvWYajY+ejrfhYSA0Sq90huNG3vPeEE/ZfcQPLTm3MJ57oCn
wiEOypk1hKgcHGh5NGad4X6+sIW1HafbJ2FhtZrCPt5KzxGlSN+GhC7Uj/HftD9vygxbLi3ZnJEc hLk90wDuF/x2+0Hy2cbDh4nRN210dLGacgth2yrMa6xIftqkyGbCSSFGoDRK3ZLq/WTsrYByOZ4r
yeWKaUhDJ+5gyRrupKmoelm641x4PFLCLOIpdvHlSvZokhjmqnt2K6fsc7uO62wgzjb2gjJ6rOT+
mJN2sCuHYidKVEmQhRR7ZvZdkI6CxWyYMVoeNN8CsTZn51PSZNurf++VQeoMUy/WDgZQVZt68p//
Wq/+DDDdsUBHlPLWHlDAUyKBAPAEhe/EEVOy+IjlVGYr9MF7JIgTKLcm+KRYulm/vxPfMT1JONTz
+GrXMAfhUSahHsfFXH/MkxBxUWf8shH+K3Prpb3eFONvA+U5fZ9+Y5AthIQcxFxlA7ACCaref1zT
lZxKsE42OJ5h6qJ8G+AAAAD//w==
—–END ACCESS LICENSE KEY—–
License key type : Permanent
License added on : 2024-03-04 07:34:47
Validity : <not applicable>
Issued for : 100 users
License Support End Date : 2024-09-04 07:34:53
Customer id : XNZE42XN
Licensed features : <not applicable>
Application : ClearPassPlatform
License key : —–BEGIN CLEARPASS PLATFORM LICENSE KEY—–
H4sIAAAAAAACAwAAAv/9nfG4hN7uG+VT032RrF6H0yULFFuAg+VqLXdKh8iwPuGM+V2BkQM6+GWE
rRSx4bCYHuz8YBGABz76lsEorHrzqmlDbqBgVshbj0KndgK7N01pBU+UAZfxcedHeI6ijPtWyRUV
AZb6iOsnXxnTspPAkUngI2ZbeXsRZENQ5a2g/f3726kJVxV92qZf51nmsD2v7pkQeze4AwYFZ1FN
kgzw54sr1F44D416SwyHyeFVCd7SpJuMNizcKZ/80SP2z5F/Yo0JmRqjhLrIKEP6YUMQuxAQLSUX
7Pw/nkD4y+zs+I4dH4XIjrsIuhEB0CpzrQooxDv5juiZJrek5G1LQ+bpHTpO0AyFu0ys48sLKLHf
7mzAaPgcCleSHaIbSYGZIb9QYcggnEUnwgfYd5uiGyA9ER4NwwMcmEs0eTh9xx4xZD6vBQnZq3HJ
yLR5xDUMUJMrjqvca2OGxfpnK3NDSC3LoqhVPZop3bbE+78bNvllKa+Gsqs3BcBXl782NXfyMfQt
/LtmBPV9oJGJrKxK+MIGDCi7/xF7HbK6IowbWl1x9asec1VgLQKrC8WH1vD/jh7ami/OfkFZJuVE
p3+D+gVSS2jhbYOP7klDJjstQgVrdgpCY3Zn6Ct+IuiNMD4lVkh6zfZ7nJrAeUaLpCANizOnSpP3
4Holh4+O6wIBa8/hG5MAAAD//w==
—–END CLEARPASS PLATFORM LICENSE KEY—–
License key type : Permanent
License added on : 2024-03-03 13:29:25
Validity : <not applicable>
License Support End Date : 2024-09-03 13:42:55
Customer id : XNZE42XN
Licensed features : <not applicable>
=======================================================
[appadmin@ clearpass1]#
Open HPE Networking Support Portal and select the License Management System option.
Within the License Management section, select “ClearPass NL”. If the licenses are already known to be matched up correctly this next step may be skipped.
Select the icon to export the list full list of licenses in Excel format in the upper left corner of the table
Use the exported file to then match the licenses in use to the listed license. This is easiest to accomplish through using only a portion of the license output. For example, to search for the above Access NL license it would be fastest to search only for the string “H4sIAAAAAAACAwAAAv/9A22uXvNDg0MP9RIs” (a portion of the top line of the full license). If more than one license is identified, extend the search string to the complete line and repeat. At this point, note the existing License Serial # value that is listed in the Excel file (also seen in the Licenses list).
At this point customers may select the “Replace LSN” button on the right side of the screen.
When the button is clicked, a new window will appear requesting the following information: Source Serial Number, New Serial Number, and SKU
Using the existing License Serial Number (the one currently displayed in the portal) that matches the Activation Key selected, enter the original (old) License Serial Number. The New Serial Number will be the one obtained in the Software Notification Message Receipt previously.
The SKU is a drop down list that provides the nine (9) available options to select from: R9R49AAE, R9R50AAE, R9R51AAE, S0V37AAE, S0V38AAE, S0V38AAE, S0V40AAE, S0V41AAE, or S0V42AAE. When completed, select the “Replace” button to complete the process. Repeat as required for all transferred licenses.
The process will then change the content from the initial state (before):
To then reflect the updated state (after):
This will then ensure that the proper License Serial Number is matched to the actual license in use.
2.8 - ClearPass MFA Workflows
Multi Factor Authentication (MFA) is a security mechanism that requires users to present two or more verification factors when accessing a network resource (VPN, Wi-Fi, wired network access, login portals, admin consoles, etc.). It goes beyond traditional username/password authentication to reduce the risk of unauthorized access. Password are inherently insecure with people using the same password in multiple places, choosing weak and easily guessed words, and is highly susceptible to social engineering attacks. MFA provides mitigation from brute force attacks, phishing, and exposed login credentials. MFA is also increasingly becoming part of compliance requirements as well.
While MFA does provide more security than just password, it can also lead to poor user experience if not implemented correctly. Certain workflows are more tolerant of the delays when the user has to access a registered device to respond to the MFA prompt.
The different factors that are used to verify identity and authorize access to network or applications are:
Something you know
- Password
- PIN
- Security Question
Something you have
- TOTP (Time based One Time Password) with mobile authenticator apps (Google Authenticator, Microsoft Authenticator, Okta Verify, Duo Mobile, etc.)
- Push notification approval
- Hardware tokens (Yubikey, RSA Secure ID, Smartcards/CAC),FIDO2 / WebAuthn security keys, HOTP, etc.)
- SMS one time passcode
- Email one time passcode
- Device certificates
Something you are
- Fingerprint (TouchID, biometrics readers)
- Facial Recognition (Windows Hello, Face ID)
MFA workflows with ClearPass
With respect to ClearPass implementation, the following workflows are MFA friendly and commonly deployed:
Management login to ClearPass using SAML SSO
ClearPass supports using SAML SSO for logging into different management interfaces like ClearPass Policy Manager admin UI, Insight module and Guest module. This is standard web based authentication and MFA can be embedded into the login flow itself. Identity providers like Google, Okta, and Microsoft Entra all support adding MFA to web-based login workflows.
Operator login to ClearPass Guest
User can log into ClearPass Guest with different personas to create or manage guest accounts, create or manage device registrations, and approve guest accounts as a sponsor. Operator logins can also be enabled with SAML SSO which can be secured with MFA workflows supported by the IDP.
Management login to other applications and network devices
ClearPass can also act as IDP where the credentials are validated against authentication sources like active directory, Okta, Google workspace etc. This allows using ClearPass for logging into web interface of applications like HPE GreenLake and network elements like firewalls, load balancers, cloud management portals, etc. This is useful when you want to leverage a local identity source like Active Directory or LDAP without having to configure SAML on those identity sources.
TACACS+/RADIUS authentication for management login to network devices
Logging into devices whether its the command line interface or the web can also be secured by using MFA. Typically the authentication protocols used are either RADIUS or TACACS+. ClearPass enables MFA for device logins by either making API calls against the MFA provider or by forwarding the auth request to a RADIUS agent. For example, Okta has a RADIUS agent for triggering MFA. Okta RADIUS agent uses API calls to Okta to authenticate the user and evaluate MFA; either by triggering a push notification or evaluating the MFA token within the password attribute. Below is the flow diagram of how the integration with Okta works:
More details about this integration with Okta can be found at:
https://arubanetworking.hpe.com/techdocs/NAC/tech-corner/okta-mfa/
The integration with PingID uses a direct API integration using the PingID extension in ClearPass. Details about this integration can be found at:
Web login using SAML SSO / Cloud Identity
ClearPass allows captive portal login using SAML SSO and also uses OAuth to authenticate users against a list of cloud identity providers. This is useful when employees need to connect to guest network to maybe onboard their device or to perform some recovery or remediation action. The SAML SSO can be combined with different web based MFA to verify the identity of the user. Cloud identity providers also support a wide range of MFA options.
VPN authentication
RADIUS is typically used for VPN authentication and it can be secured by adding MFA in the form of push notification, FIDO2/WebAuthn, OTP, etc. The primary authentication would validate the user credentials and then a range of MFA options like TOTP, Push, Okta Verify, etc. can be used to further secure the VPN authentication. Note that while CHAP / MS-CHAPv2 can be used for primary authentication, it cannot be combined with MFA since the server needs the password in cleartext to trigger MFA.
802.1X authentication
The most common way to implement MFA with 802.1X is using EAP-GTC protocol. It supports MFA factors like push / TOTP, passcode, RSA tokens, Yubikey OTP but does not support interactive MFA factors like WebAuthn/FIDO2 or security questions. The default supplicants on common OS platforms do not support EAP-GTC natively and hence need a custom supplicant which adds to the complexity of the deployment.
INFO
It is generally not recommended to use MFA for 802.1X authentication on a wireless network. This is due to the user having to go through MFA every time the device gets disconnected from the wireless. 802.1X supplicants are also sensitive to overall time taken for authentication and hence adding extra factors to the authentication flow could result in increase in timeouts depending upon the level of interaction needed from the end user.
Another way to approach securing 802.1X authentication is to use EAP-TLS for authentication and use MFA during the device provisioning or onboarding process so that user identity is verified at the time of the certificate provisioning. Alternatively, it is also possible to use a captive portal after 802.1X to force a web based MFA. However the latter approach leads to a sub optimal user experience and is not generally used outside of environments that have very stringent and specific security requirements.
MFA Providers and ClearPass
ClearPass can integrate with MFA providers in different ways:
- RADIUS proxy: Many MFA providers have a RADIUS interface which can be used to trigger MFA. ClearPass in this case would just proxy the authentication request to the RADIUS interface of the MFA provider. The MFA solution would then handle the secondary factor validation like push notification, OTP validation etc. This requires that the user credentials are in cleartext so supported authentication methods are PAP, EAP-TTLS, and EAP-GTC.
There are different ways in ClearPass to proxy requests to an external RADIUS server like:
- Proxy Target Server used with RADIUS Proxy service type
- Authentication Source of type RADIUS / RadSec
- Token Server Authentication Source
Of these methods, the token server authentication source is best suited for MFA use cases since it allows doing an authorization lookup before sending the request to the MFA provider. This means ClearPass can validate that the user exists in identity source and is a valid user before triggering MFA thus preventing the MFA provider from being overwhelmed by invalid requests.
Popular MFA providers that have a RADIUS interface:
- Okta through Okta RADIUS Agent
- Ping ID through Ping Federate RADIUS Proxy
- Cisco Duo through Duo Authentication Proxy
- Microsoft / Entra ID through NPS
- RSA Secure ID
-
API integration: ClearPass extensions provide ability to integrate with third party applications. At present, there is an extension for PingID that allows ClearPass to use API calls to trigger push notification instead of using the RADIUS interface. The modular and flexible design of extensions allow the development of similar integrations with other provider if needed.
-
HTTP Authorization: The HTTP authentication source in ClearPass can be used to trigger REST API calls against external systems like MFA providers. Most of the providers have REST APIs which can be used to trigger MFA workflows. A HTTP authorization workflow can be used to craft a REST API call to MFA provider which results in a 200 OK response if the validation is successful. Note that each provider has different set of REST APIs and processes to trigger MFA which will not be covered in this document. Please refer to vendor API documentation for more information.
Popular MFA providers that have REST API to trigger push notifications are:
- Okta
- Ping ID
- Cisco Duo
- OneLogin
INFO
Microsoft Graph APIs do not support triggering MFA using API calls so the only way to work with Microsoft Entra for MFA is to proxy the request to a NPS server and have the NPS extension interface with Entra to validate the secondary factors.
https://learn.microsoft.com/en-us/entra/identity/authentication/howto-mfa-nps-extension
ClearPass MFA Matrix
Note that this table lists some MFA providers which are known to work but this is not a comprehensive list. The RADIUS based MFA options can be used with any MFA provider that has a RADIUS interface and the HTTP / API based MFA options can be used with any provider that has REST APIs to trigger MFA.
Most MFA / Identity providers support SAML and OAuth based workflows so that should work with any of the third party providers






































































