ISE BYOD Policy Configuration
Configure Cisco ISE to authenticate BYOD devices (iOS/Android) using EAP-TLS certificates issued by HashiCorp Vault PKI.
Overview
This guide configures ISE to support BYOD (Bring Your Own Device) scenarios where mobile devices authenticate to the Domus-Secure SSID using 802.1X EAP-TLS with Vault-issued client certificates.
Mobile Device (zfold7)
↓ EAP-TLS (Vault cert)
Wireless Controller (WLC)
↓ RADIUS Access-Request
ISE ({ise-psn-ip})
↓ Certificate Validation
- Check CA: DOMUS-ISSUING-CA → DOMUS-ROOT-CA
- Check CN: *.byod.{domain}
- Check EKU: Client Authentication
- Match policy: BYOD_Mobile
↓ RADIUS Access-Accept
- VLAN: 10 (DATA_VLAN)
- dACL: BYOD_INTERNET_ONLY (optional)
Prerequisites
-
ISE certificate authentication profile configured (DOMUS-ISSUING-CA trusted)
-
DOMUS-ROOT-CA and DOMUS-ISSUING-CA imported to ISE Trusted Certificates
-
Wireless network "Domus-Secure" configured on WLC
-
WLC configured as RADIUS client in ISE (Network Device)
-
BYOD device with Vault-issued certificate (see BYOD Certificate Enrollment with HashiCorp Vault)
Policy Set Configuration
Verify Existing Policy Set
Check if Domus-Secure 802.1X policy set exists (handles Domus-Secure SSID):
netapi ise get-policy-sets | grep -i "domus-secure"
│ Domus-Secure 802.1X │ 9557d91c-591b-4d8d-9898-657a62f28d76 │ enabled │
|
netapi documentation: See |
If not present, create the policy set:
netapi ise create-policy-set "Domus-Secure 802.1X" \
--condition "Wireless_802.11-SSID EQUALS Domus-Secure" \
--description "Enterprise WiFi policy for Domus-Secure SSID"
Authentication Policy
Allowed Protocols
The Domus-Secure 802.1X policy set should allow EAP-TLS for certificate-based authentication:
-
EAP-TLS: Enabled (certificate authentication)
-
PEAP-MSCHAPv2: Disabled (username/password - not for BYOD)
-
EAP-TTLS: Disabled
# Verify allowed protocols (GUI required for creation)
# netapi does not yet support allowed protocols management
|
Allowed Protocols configuration requires ISE GUI:
|
Authentication Rules
Domus-Secure 802.1X policy set should have a default authentication rule using certificate authentication:
| Rule Name | BYOD_Certificate_Auth |
|---|---|
Conditions |
If Wireless_802.11-SSID EQUALS Domus-Secure |
Allowed Protocols |
Domus-Secure-Protocols (EAP-TLS only) |
Identity Source |
Certificate Authentication Profile: DOMUS-ISSUING-CA |
Action |
CONTINUE (proceed to authorization) |
Authorization Policy
Create Authorization Profile
Authorization profiles define what network access to grant BYOD devices:
# Create authorization profile for BYOD devices
netapi ise create-authz-profile BYOD_Mobile_Access \
--vlan 10 \
--descr "BYOD mobile devices - Internet access only"
# Optional: Add dACL for restricted access
netapi ise create-authz-profile BYOD_Mobile_Restricted \
--vlan 10 \
--dacl "BYOD_INTERNET_ONLY" \
--descr "BYOD with internet-only dACL"
| Attribute | Value |
|---|---|
Name |
BYOD_Mobile_Access |
Access Type |
ACCESS_ACCEPT |
VLAN |
10 (DATA_VLAN) |
dACL (optional) |
BYOD_INTERNET_ONLY |
AirSpace-ACL-Name (optional) |
Not set (use VLAN ACL instead) |
Create Authorization Rules
Authorization rules match BYOD certificates and apply the authorization profile:
netapi ise add-authz-rule "Domus-Secure 802.1X" \
"BYOD_Android" \
"BYOD_Mobile_Access" \
--dict "Session" \
--attr "EapChainingResult" \
--value "android" \
--operator "contains" \
--rank 1
|
The above command is INCOMPLETE - netapi does not yet support complex certificate attribute matching. Use ISE GUI for initial configuration, then document the equivalent netapi command once supported. |
| Condition | Operator | Value |
|---|---|---|
Certificate: Subject Common Name |
MATCHES |
|
Certificate: Subject Alternative Name - DNS |
CONTAINS |
|
Session: EapTunnel |
EQUALS |
EAP-TLS |
-
Authorization Profile: BYOD_Mobile_Access
-
Security Group: BYOD (optional, for TrustSec tagging)
Network Device Configuration
Verify the wireless controller is configured as a RADIUS client in ISE:
# List network devices (NADs)
netapi ise get-nads | grep -i wlc
# Expected output shows WLC with RADIUS secret configured
If not present, add WLC as network device:
# Add WLC as network device
netapi ise add-nad \
--name "WLC-Primary" \
--ip "10.50.1.10" \
--secret "<radius-shared-secret>" \
--device-type "Cisco Wireless LAN Controller"
Downloadable ACL (Optional)
For granular control, create a dACL to restrict BYOD devices to internet-only access (no internal resources):
# Create dACL for BYOD internet-only access
netapi ise create-dacl BYOD_INTERNET_ONLY << 'EOF'
permit udp any host 10.50.1.1 eq 53
permit tcp any host 10.50.1.1 eq 53
permit ip any host 10.50.1.21 eq 1812
permit ip any host 10.50.1.21 eq 1813
deny ip any 10.0.0.0 0.255.255.255
deny ip any 172.16.0.0 0.15.255.255
deny ip any 192.168.0.0 0.0.255.255
permit ip any any
EOF
-
Permit DNS to internal DNS server (10.50.1.1)
-
Permit RADIUS to ISE (10.50.1.21) for re-authentication
-
Deny RFC1918 - block all internal networks (10/8, 172.16/12, 192.168/16)
-
Permit internet - allow all other traffic (internet destinations)
Testing BYOD Authentication
Pre-Flight Checklist
Before connecting device to Domus-Secure:
-
Device has Vault-issued certificate imported
-
Certificate is trusted (CA chain verified)
-
Domus-Secure SSID is visible
-
ISE policy set "Domus-Secure 802.1X" is enabled
-
Authorization profile "BYOD_Mobile_Access" exists
-
WLC is configured as RADIUS client in ISE
Connect Device to Domus-Secure
Android Connection Steps
-
Settings → Network & Internet → Wi-Fi
-
Tap "Domus-Secure" SSID
-
Configure EAP method:
-
EAP method: TLS
-
Phase 2 authentication: None
-
CA certificate: Use system certificates (or select DOMUS-ROOT-CA)
-
User certificate: Select "Domus BYOD - Z Fold 7"
-
Identity: zfold7-evanusmodestus.byod.inside.domusdigitalis.dev
-
Anonymous identity: Leave blank
-
-
Tap "Connect"
Verify Connection
Device-Side Verification
Android:
# Via ADB
adb shell ip addr show wlan0
# Expected: IP in VLAN 10 range (10.50.10.x/24)
# Check DNS
adb shell getprop net.dns1
# Expected: 10.50.1.1
iOS:
Settings → Wi-Fi → Domus-Secure → (i) icon
-
Should show IP: 10.50.10.x
-
Subnet: 255.255.255.0
-
Router: 10.50.10.1
-
DNS: 10.50.1.1
ISE-Side Verification
Monitor ISE RADIUS live logs during authentication:
# Get ISE session for device MAC address
netapi ise mnt session <device-mac-address>
# Example for Z Fold 7
netapi ise mnt session a4:50:46:12:34:56
# Check authentication details
netapi ise mnt session <device-mac-address> --details
Session ID: 0a3201150000xxxx
User Name: zfold7-evanusmodestus.byod.inside.domusdigitalis.dev
MAC Address: a4:50:46:12:34:56
IP Address: 10.50.10.105
VLAN: 10
Authorization Profile: BYOD_Mobile_Access
Authentication Method: EAP-TLS
Certificate CN: zfold7-evanusmodestus.byod.inside.domusdigitalis.dev
Policy Set: Domus-Secure 802.1X
Troubleshooting
Authentication Fails: "Certificate Not Trusted"
Symptoms:
-
Device shows "Could not connect"
-
ISE logs show: "Certificate validation failed"
Cause: Device does not trust DOMUS-ROOT-CA
Fix:
-
Android: Settings → Security → Trusted credentials → User tab → Verify DOMUS-ROOT-CA is present
-
iOS: Settings → General → About → Certificate Trust Settings → Enable full trust for DOMUS-ROOT-CA
Authentication Fails: "No Authorization Rule Matched"
Symptoms:
-
ISE live logs show: "11001 No matching authorization rule"
Cause: Authorization rule conditions don’t match the certificate attributes
Debug:
# Check certificate attributes in ISE session
netapi ise mnt session <device-mac> --attributes
# Verify certificate CN matches rule condition
# Expected: CN=*.byod.inside.domusdigitalis.dev
Fix:
-
Verify authorization rule condition matches certificate CN pattern
-
Check that EapTunnel attribute is "EAP-TLS"
Device Connects But No Network Access
Symptoms:
-
Device shows "Connected" but cannot reach internet
-
IP address is correct (10.50.10.x)
Cause: dACL blocking traffic or firewall rules
Debug:
# Check applied dACL on switch/WLC
netapi ios exec "show wireless client mac-address <device-mac> detail" | grep -i acl
# Test connectivity from device
ping 8.8.8.8
ping 10.50.1.1 # Should be blocked if using BYOD_INTERNET_ONLY dACL
Fix:
-
If using dACL, verify ACL permits DNS, DHCP, and internet traffic
-
Check dACL ordering (permits before denies)
-
See Hardened dACL Configuration for ACL ordering rules
Device Gets Wrong VLAN
Symptoms:
-
Device receives IP in different VLAN (e.g., 10.50.40.x instead of 10.50.10.x)
Cause: Wrong authorization profile applied
Debug:
# Check which authorization profile was applied
netapi ise mnt session <device-mac> | grep "Authorization Profile"
# Verify authorization rule matching
netapi ise get-authz-rules "Domus-Secure 802.1X" --format json
Fix:
-
Verify authorization rule conditions match the device certificate
-
Check rule ordering (BYOD rule should be before default deny)
Certificate Expired
Symptoms:
-
Device previously worked, now fails to connect
-
ISE logs show: "Certificate expired"
Cause: BYOD certificates have 90-day TTL and expired
Fix:
-
Issue new certificate from Vault (see BYOD Certificate Enrollment with HashiCorp Vault)
-
Export to PKCS#12
-
Import to device (will overwrite old certificate)
-
Reconnect to Domus-Secure
|
Future Enhancement: Set up certificate expiration alerts at 80 days to proactively renew before expiration. |
Monitoring and Reporting
Active BYOD Sessions
# List all active BYOD sessions
netapi ise mnt sessions --filter "AuthorizationProfile=BYOD_Mobile_Access"
# Count BYOD devices by platform
netapi ise mnt sessions --filter "AuthorizationProfile=BYOD_Mobile_Access" \
--group-by "Device Type"
BYOD Authentication Failures
# Get failed authentications in last 24 hours
netapi ise mnt failures --hours 24 --filter "PolicySet=Domus-Secure 802.1X"
# Common failure reasons:
# - 11001: No matching authorization rule
# - 12301: Certificate validation failed
# - 12302: Certificate expired
# - 22037: Certificate chain incomplete
Security Considerations
Certificate Validation
ISE validates BYOD certificates using:
-
CA Trust: Certificate signed by DOMUS-ISSUING-CA (chains to DOMUS-ROOT-CA)
-
Validity Period: Current time within NotBefore and NotAfter
-
Revocation Status: CRL/OCSP check (not yet configured)
-
Extended Key Usage: Must include "Client Authentication" (1.3.6.1.5.5.7.3.2)
|
CRL/OCSP Not Configured Revoked certificates will still authenticate until Vault CRL endpoint is configured in ISE. Future enhancement: Configure ISE to check Vault CRL at |
Network Segmentation
BYOD devices should be isolated from critical internal resources:
-
VLAN 10 (DATA_VLAN): General-purpose network with internet access
-
dACL: Block access to management VLANs (VLAN 1, 50, 60)
-
Firewall Rules: pfSense rules to restrict BYOD VLAN to internet-only
See Network Topology for network segmentation design.
TrustSec Integration (Future)
Cisco TrustSec can tag BYOD devices with Security Group Tag (SGT):
-
SGT 10: BYOD_Devices
-
SGT Policy: Allow internet, deny internal resources
-
Propagation: SGT propagated via SXP or inline tagging
|
TrustSec configuration is beyond the scope of this document. See Cisco ISE TrustSec documentation. |