Cisco Identity Services Engine (ISE) version 2.0 supports 3rd Party Integration. This is configuration example presenting how to integrate wireless network managed by Aruba IAP 204 with ISE for bring your own device (BYOD) services.
Documents explains how to troubleshoot 3rd Party Integration feature on ISE and can be used as a guide for integration with the other vendors and flows.
Notice: Please be aware that Cisco is not responsible for configuration or support of devices from other vendors.
Cisco recommends that you have knowledge of these topics:
Basic knowledge of Aruba IAP configuration
Basic knowledge of BYOD flows on ISE
Basic knowledge of Identity Services Engine (ISE) configuration for password and certificate authentication
The information in this document is based on these software versions:
Aruba IAP 204 software 188.8.131.52
Cisco ISE, Release 2.0 and later
There are two wireless networks managed by Aruba AP. The first one (mgarcarz_byod) is being used for 802.1x EAP-PEAP access. After successful authentication Aruba controller should redirect user to ISE BYOD portal - Native Supplicant Provisioning (NSP) flow. User is redirected, Network Setup Assistant application is executed and certificate is provisioned and installed on Windows client. ISE internal CA is used for that process (default configuration). Network Setup Assistant is also responsible for creation of wireless profile for the second SSID managed by Aruba (mgarcarz_byod_tls) - that one is used for 802.1x EAP-TLS authentication.
As a result corporate user is able to perform onboarding of personal device and get secure access into corporate network.
The following example could be easily modified for different types of access, for example:
Central Web Authentication (CWA) with BYOD service
802.1x authentication with Posture and BYOD redirection
Typically for EAP-PEAP authentication Active Directory is used (to keep this article short internal ISE users are used)
Typically for Certificate Provisioning external SCEP server is being used, commonly Microsoft Network Device Enrollment Service (NDES) to keep this article short internal ISE CA is used.
Challenges with 3rd party support
What are the challenges when using ISE Guest flows (like BYOD, CWA, NSP, CPP) with 3rd party devices ?
Cisco Network Access Devices (NAD) is using Radius cisco-av-pair called audit-session-id to inform AAA server about session id. That value is used by ISE to track the sessions and provide the correct services for each flow. Other vendors does not support cisco-av pair. So ISE has to rely on IETF attributes received in Access-Request and Accounting Request.
After receiving Access-Request ISE builds synthesized Cisco Session ID (from Calling-Station-ID, NAS-Port, NAS-IP-Address and shared secret). That value has a locally significance only (not sent via network). As a result it's expected from every flow (BYOD, CWA, NSP, CPP) to attach correct attributes - so ISE is able to recalculate Cisco Session ID and perform a lookup to correlate it with the correct session and continue the flow.
ISE is using Radius cisco-av-pair called url-redirect and url-redirect-acl to inform NAD that specific traffic should be redirected.
Other vendors does not support cisco-av pair. So typically those devices should be configured with static redirection URL pointing to specific service (Authorization Profile) on ISE. Once the user is initiating HTTP session those NADs are redirecting to that url and are also attaching additional arguments (like ip address or mac address) to allow ISE identify specific session and continue the flow.
ISE is using Radius cisco-av-pair called subscriber:command, subscriber:reauthenticate-type to indicate what actions should NAD take for a specific session. Other vendors does not support cisco-av pair. So typically those devices are using RFC CoA (3576 or 5176) and one of two defined messages:
disconnect request (called also packet of disconnect) - that one is used to disconnect the session (very ofter to force reconnection)
coa push - that one is used to change session status transparently without disconnection (for example VPN session and new ACL applied)
ISE supports both Cisco CoA with cisco-av-pair and also both RFC CoA 3576/5176.
Solution on ISE
To support 3rd party vendors ISE 2.0 introduced a concept of Network Device Profiles which describes how specific vendor behaves - how Sessions, URL Redirect and CoA is supported.
Authorization Profiles are of specific type (Network Device Profile) and once the authentication occurs ISE behavior is derived from that profile. As a result devices from other vendors can be managed easily by ISE. Also configuration on ISE is flexible and allows to tune or create new Network Device Profiles.
This article presents the usage of default profile for Aruba device.
Step1 Add Aruba wireless controller to network devices
Go to Administration > Network Resources > Network Devices. Choose correct Device Profile for selected vendor, in that case: ArubaWireless. Make sure to configure Shared Secret and CoA port.
In case there is no available profile for the desired vendor it can be configured under Administration > Network Resources > Network Device Profiles.
Step2 Configure authorization profile
From Policy > Policy Elements > Results > Authorization > Authorization Profiles choose the same Network Device Profile as in step 1: ArubaWireless. Following profile was configured:
Aruba-redirect-BYOD with BYOD Portal as shown below:
Missing part of the Web Redirection configuration, where static link to Authorization Profile is generated. While Aruba doesn't support dynamic redirection to guest portal, there is one link assigned to each Authorization profile, which is then configured on Aruba.
Step3 Configure authorization rules
Under Policy > Authorization rules were configured in following way:
First, user connects to SSID "mgracarz_aruba" and ISE returns Authorization Profile "Aruba-redirect-BYOD" which redirect client to default BYOD portal. After completing BYOD process client connects using EAP-TLS and full access to network is granted.
Step1 Captive Portal Configuration
In order to configure Captive Portal on Aruba 204, navigate to Security > External Captive Portal and add new one. Following is needed for proper configuration:
Type: Radius Authentication,
IP or hostname: ISE server,
URL: link that is created on ISE under Authorization Profile configuration; it is specific to particular Authorization Profile and can be found below the Web Redirection configuration,
Port: port number on which selected portal is hosted on ISE (by default: 8443).
Step2 Radius Server Configuration
From Security > Authentication Servers make sure that CoA port is the same as configured on ISE. (By default on Aruba 204 it is set to 5999, however that is not compliant with RFC 5176 and it is also not working with ISE).
Step3 SSID configuration
Access tab: choose Network-based Access Rule to configure captive portal on SSID:
Use captive portal that was configured in Step1. You can add it using "New" button, choosing Rule type: Captive portal and Splash page type as External.
In addition allow all traffic to ISE server (TCP ports in range 1-20000), while rule configured by default on Aruba: Allow any to all destinations seems to be not working properly.
Step1 Connection to SSID mgarcarz_aruba using EAP-PEAP
First authentication log on ISE appears. Default authentication policy has been used, Aruba-redirect-BYOD authorization profile has been returned:
ISE is returning Radius Access-Accept message with EAP Success. Please notice that no additional attributes are being returned (no Cisco av-pair url-redirect or url-redirect-acl)
Aruba reports the session is established (EAP-PEAP identity is cisco) and selected Role is mgarcarz_aruba:
That role is responsible for the redirection to the ISE (captive portal functionality on Aruba).
In Aruba CLI it's possible to confirm what is the current authorization status for that session:
04:bd:88:c3:88:14# show datapath user Datapath User Table Entries --------------------------- Flags: P - Permanent, W - WEP, T- TKIP, A - AESCCM R - ProxyARP to User, N - VPN, L - local, I - Intercept, D - Deny local routing FM(Forward Mode): S - Split, B - Bridge, N - N/A
IP MAC ACLs Contract Location Age Sessions Flags Vlan FM --------------- ----------------- ------- --------- -------- ----- --------- ----- ---- -- 10.62.148.118 04:BD:88:C3:88:14 105/0 0/0 0 1 0/65535 P 1 N 10.62.148.71 C0:4A:00:14:6E:31 138/0 0/0 0 0 6/65535 1 B 0.0.0.0 C0:4A:00:14:6E:31 138/0 0/0 0 0 0/65535 P 1 B 172.31.98.1 04:BD:88:C3:88:14 105/0 0/0 0 1 0/65535 P 3333 B 0.0.0.0 04:BD:88:C3:88:14 105/0 0/0 0 0 0/65535 P 1 N 04:bd:88:c3:88:14#
And to check ACL id 138 for the current permissions:
04:bd:88:c3:88:14# show datapath acl 138 Datapath ACL 138 Entries ----------------------- Flags: P - permit, L - log, E - established, M/e - MAC/etype filter S - SNAT, D - DNAT, R - redirect, r - reverse redirect m - Mirror I - Invert SA, i - Invert DA, H - high prio, O - set prio, C - Classify Media A - Disable Scanning, B - black list, T - set TOS, 4 - IPv4, 6 - IPv6 K - App Throttle, d - Domain DA ---------------------------------------------------------------- 1: any any 17 0-65535 8209-8211 P4 2: any 172.31.98.1 255.255.255.255 6 0-65535 80-80 PSD4 3: any 172.31.98.1 255.255.255.255 6 0-65535 443-443 PSD4 4: any mgarcarz-ise20.example.com 6 0-65535 80-80 Pd4 5: any mgarcarz-ise20.example.com 6 0-65535 443-443 Pd4 6: any mgarcarz-ise20.example.com 6 0-65535 8443-8443 Pd4 hits 37 7: any 10.48.17.235 255.255.255.255 6 0-65535 1-20000 P4 hits 18 <....some output removed for clarity ... >
That matches with what was configured in GUI for that Role:
Step2 Web browser traffic redirection for BYOD
Once user open web browser and type any address redirection occurs:
Looking at the packet captures it's confirmed that Aruba is spoofing destination (184.108.40.206) and returning HTTP redirection to ISE. Please notice that is the same static url as configured in ISE and copied to Captive Portal on Aruba - but additionally multiple arguments are being added:
cmd = login
mac = c0:4a:00:14:6e:31
essid = mgarcarz_aruba
ip = 10.62.148.7
apname = 4bd88c38814 (mac)
url = http://220.127.116.11
Because of those arguments ISE is able to recreate Cisco Session ID, find out the corresponding session on ISE and continue with BYOD (or any other configured) flow. For Cisco devices audit_session_id would be normally used but that is not supported by other vendors.
To confirm that from ISE debugs it's possible to see the generation of audit-session-id value (which is never sent over the network):
In subsequent requests client is redirected BYOD page 3 where Network Setup Assistant is downloaded and executed
Step3 Network Setup Assistant execution
NSA has the same task as web browser. First it needs to detect what is the ip address of ISE. That is achieved via HTTP redirection. But since this time user does not have a possibility to type ip address (as in the web browser) that traffic is generated automatically. Default gateway is being used (also enroll.cisco.com could be used):
Response it exactly the same as for the web browser. This way NSA is able to connect to ISE, get xml profile with configuration, generate SCEP request, send it to ISE, get signed certificate (signed by ISE internal CA), configure wireless profile and finally connect to the configured SSID. Correct logs from the client (on Windows are in %temp%/spwProfile.log). Some outputs omitted for clarity:
Logging started SPW Version: 18.104.22.168 System locale is [en] Loading messages for english... Initializing profile SPW is running as High integrity Process - 12288 GetProfilePath: searched path = C:\Users\ADMINI~1.EXA\AppData\Local\Temp\ for file name = spwProfile.xml result: 0 GetProfilePath: searched path = C:\Users\ADMINI~1.EXA\AppData\Local\Temp\Low for file name = spwProfile.xml result: 0 Profile xml not found Downloading profile configuration... Downloading profile configuration... Discovering ISE using default gateway Identifying wired and wireless network interfaces, total active interfaces: 1 Network interface - mac:C0-4A-00-14-6E-31, name: Wireless Network Connection, type: wireless Identified default gateway: 10.62.148.100 Identified default gateway: 10.62.148.100, mac address: C0-4A-00-14-6E-31
redirect attempt to discover ISE with the response url DiscoverISE - start Discovered ISE - : [mgarcarz-ise20.example.com, sessionId: 0a3011ebXbiuDA3yUNoLUvtCRyuPFxkqYJ7TT06foOZ7G1HXj1M] DiscoverISE - end Successfully Discovered ISE: mgarcarz-ise20.example.com, session id: 0a3011ebXbiuDA3yUNoLUvtCRyuPFxkqYJ7TT06foOZ7G1HXj1M, macAddress: C0-4A-00-14-6E-31
GetProfile - start GetProfile - end Successfully retrieved profile xml using V2 xml version parsing wireless connection setting Certificate template: [keysize:2048, subject:OU=Example unit,O=Company name,L=City,ST=State,C=US, SAN:MAC] set ChallengePwd
creating certificate with subject = cisco and subjectSuffix = OU=Example unit,O=Company name,L=City,ST=State,C=US Installed [LAB CA, hash: fd 72 9a 3b b5 33 72 6f f8 45 03 58 a2 f7 eb 27^M ec 8a 11 78^M ] as rootCA Installed CA cert for authMode machineOrUser - Success
HttpWrapper::SendScepRequest - Retrying:  time, after:  secs , Error: , msg: [ Pending] creating response file name C:\Users\ADMINI~1.EXA\AppData\Local\Temp\response.cer Certificate issued - successfully ScepWrapper::InstallCert start ScepWrapper::InstallCert: Reading scep response file [C:\Users\ADMINI~1.EXA\AppData\Local\Temp\response.cer]. ScepWrapper::InstallCert GetCertHash -- return val 1 ScepWrapper::InstallCert end
Wireless profile: [mgarcarz_aruba_tls] configured successfully Connect to SSID Successfully connected profile: [mgarcarz_aruba_tls] WirelessProfile::SetWirelessProfile. - End
Those logs are exactly the same as for BYOD process with Cisco devices.
Please notice Radius CoA is not required here. It's the application (NSA) which forces reconnection to a newly configured SSID.
At that stage user can see that system is trying to associate to a final SSID. If having more then one user certificate should select the correct one:
After successful connection NSA reports that:
That can be confirmed also on ISE - the second log hits EAP-TLS authentication, matching all the conditions for Basic_Authenticated_Access (EAP-TLS, Employee, and BYOD Registered true):
Also endpoint identity view can confirm that endpoint has BYODRegistered flag set to true:
On Windows PC new wireless profile has been created automatically as preferred (and configured for EAP-TLS):
At that stage Aruba confirms the user is connected to the final SSID.
The role which is created automatically and named the same as Network is providing full network access:
Other flows and CoA support
CWA with CoA
While in BYOD flow there is no CoA messages, CWA flow with Self Registered Guest Portal is demonstrated below:
Following Authorization Rules were configured:
User connects to the SSID using MAB authentication and once trying to connect to some web page, redirection to Self Registered Guest Portal happens, where Guest can create new account or use existing one:
After guest is successfully connected CoA message is send from ISE to Network Device in order to change authorization state.
It can be verified under Operations > Authenitcations:
2015-11-02 18:47:49,737 DEBUG [Thread-147] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- DynamicAuthorizationFlow,DEBUG,0x7fc0e9eb4700,cntx=0000000561,sesn=c59aa41a-e029-4ba0-a31b -44549024315e,CallingStationID=c04a00157634,[DynamicAuthorizationFlow:: onResponseDynamicAuthorizationEvent] Handling response ID c59aa41a-e029-4ba0-a31b-44549024315e, error cause 0, Packet type 41(DisconnectACK)., DynamicAuthorizationFlow.cpp:303
Packet captures with CoA Diconnect-Request (40) and Diconnect-ACK (41):
Please notice that RFC CoA has been used for authentication related to Device Profile Aruba (default settings). For authentication related to Cisco device it would have been Cisco CoA type reauthenticate.
Aruba Captive Portal with ip address instead of FQDN
If Captive Portal on Aruba is configured with IP address instead of FQDN of ISE PSN Network Setup Assistant fails:
Warning - [HTTPConnection] Abort the HTTP connection due to invalid certificate CN
The reason for that is strict certificate validation when connecting to ISE. When using ip address to connect to ISE (as a result of redirection url with ip address instead of FQDN) and being presented with ISE certificate with Subject Name = FQDN validation fails.
Please notice that web browser continues with BYOD portal (with warning which needs to be approved by user).
Aruba Captive Portal incorrect access policy
By default Aruba Access-Policy configured with Captive Portal allows for tcp ports 80, 443 and 8080.
Network Setup Assistant is not be able to connect to tcp port 8905 to get xml profile from ISE. The following error is be reported:
Failed to get spw profile url using - url [https://mgarcarz-ise20.example.com:8905/auth/provisioning/evaluate? typeHint=SPWConfig&referrer=Windows&mac_address=C0-4A-00-14-6E-31&spw_version= 22.214.171.124&session=0a3011ebXbiuDA3yUNoLUvtCRyuPFxkqYJ7TT06foOZ7G1HXj1M&os=Windows All] - http Error:  HTTP response code: 0] GetProfile - end Failed to get profile. Error: 2
Aruba CoA port number
By default Aruba provides port number for CoA Air Group CoA port 5999. Unfortunately Aruba 204 was not responding to such requests.
Using CoA port 3799 as described in RFC 5176 would be the best option here.
Redirection on some Aruba devices
On Aruba 3600 with v6.3 it was noticed that redirection is working slightly different then on other controllers. Packet capture and explanation can be found below:
packet 1: PC is sending GET request to google.com
packet 2: Aruba is returning HTTP 200 OK with following content:
<meta http-equiv='refresh' content='1; url=http://www.google.com/&arubalp=6b0512fc-f699-45c6-b5cb-e62b3260e5'>\n
packet 3: PC is going to link with Aruba attribute returned in packet 2:
packet 4: Aruba is redirecting to the ISE (302 code):