ISE 3.4 Certificate-Based API Authentication Roadmap
1. Overview
ISE 3.4 introduces the ability to use separate identity sources for API authentication, decoupling API credentials from admin portal credentials. This enables certificate-based authentication for API calls using certificates issued by HashiCorp Vault PKI.
1.1. ISE 3.4 New Feature
Prior to ISE 3.4, API authentication was tied to admin portal credentials (username/password or SAML). ISE 3.4 adds:
-
ERS API: Certificate-based authentication option
-
OpenAPI: Separate identity source configuration
-
Decoupled credentials: API clients can authenticate independently of admin users
2. Current State
2.1. API Authentication Methods (Pre-3.4)
| API Surface | Auth Method | Credential Source |
|---|---|---|
ERS |
Basic Auth (username/password) |
ISE Internal User or AD |
OpenAPI |
Bearer Token or Basic Auth |
ISE Admin credentials |
MnT |
Basic Auth |
ISE Internal User |
DataConnect |
Oracle JDBC (username/password) |
ISE DataConnect credentials |
pxGrid |
Client Certificate (already cert-based) |
Vault PKI |
2.2. Target State (ISE 3.4)
| API Surface | Auth Method | Credential Source |
|---|---|---|
ERS |
Client Certificate |
Vault PKI ( |
OpenAPI |
Client Certificate |
Vault PKI ( |
MnT |
Basic Auth (no cert option) |
ISE Internal User |
DataConnect |
Oracle JDBC (no cert option) |
ISE DataConnect credentials |
pxGrid |
Client Certificate |
Vault PKI (already implemented) |
3. Phase 1: Vault PKI Role for API Clients
3.1. Create Automation Role
Create a dedicated Vault PKI role for API client certificates:
vault write pki_int/roles/domus-automation \
allowed_domains="inside.domusdigitalis.dev" \
allow_subdomains=true \
allow_bare_domains=false \
max_ttl="8760h" \
key_type="rsa" \
key_bits=2048 \
key_usage="DigitalSignature,KeyEncipherment" \
ext_key_usage="ClientAuth" \
require_cn=true \
organization="Domus Digitalis" \
ou="Automation"
3.2. Issue netapi Client Certificate
vault write pki_int/issue/domus-automation \
common_name="netapi-client.inside.domusdigitalis.dev" \
ttl="8760h" \
-format=json > /tmp/netapi-client.json
Extract components:
jq -r '.data.certificate' /tmp/netapi-client.json > ~/.config/netapi/client.crt
jq -r '.data.private_key' /tmp/netapi-client.json > ~/.config/netapi/client.key
chmod 600 ~/.config/netapi/client.key
4. Phase 2: ISE Certificate Authentication Profile
4.1. Create Certificate Authentication Profile
In ISE Admin UI:
-
Navigate to: Administration > Identity Management > External Identity Sources > Certificate Authentication Profile
-
Click Add
-
Configure:
| Setting | Value |
|---|---|
Name |
|
Certificate Attribute |
|
Match Certificate Template |
No (Vault doesn’t use MS templates) |
Allow SHA-1 Certificates |
No |
5. Phase 3: ERS API Certificate Configuration
6. Phase 4: netapi CLI Integration
6.1. Update netapi Configuration
Add certificate configuration to netapi:
# ~/.config/netapi/config.yaml
ise:
host: ise-01.inside.domusdigitalis.dev
auth_method: certificate # New option
client_cert: ~/.config/netapi/client.crt
client_key: ~/.config/netapi/client.key
ca_cert: /etc/ssl/certs/DOMUS-CA-CHAIN.pem
7. Phase 5: Certificate Rotation Automation
7.1. Vault Agent Template
Create Vault Agent configuration for auto-renewal:
template {
source = "/etc/vault.d/templates/netapi-cert.tpl"
destination = "/home/evanusmodestus/.config/netapi/client.crt"
perms = "0644"
}
template {
source = "/etc/vault.d/templates/netapi-key.tpl"
destination = "/home/evanusmodestus/.config/netapi/client.key"
perms = "0600"
}
8. Implementation Checklist
8.1. Vault PKI
-
Create
domus-automationrole with ClientAuth EKU -
Issue netapi client certificate
-
Test certificate validity
8.2. ISE Configuration
-
Create Certificate Authentication Profile
-
Create Identity Source Sequence
-
Enable ERS certificate authentication
-
Enable OpenAPI certificate authentication
-
Test certificate-based API calls
9. Security Benefits
| Benefit | Description |
|---|---|
No password exposure |
Certificates can’t be easily copied like passwords |
Mutual TLS |
Both client and server authenticate |
Audit trail |
Certificate CN logged in ISE - identifies caller |
Automated rotation |
Vault Agent handles renewal before expiry |
Service identity |
Non-human principals (netapi) have unique identity |
Revocation |
Compromised certs can be revoked via CRL/OCSP |
10. Limitations
-
MnT API: No certificate auth support (still requires password)
-
DataConnect: Oracle JDBC uses password auth
-
SAML Admin SSO: Unaffected (browser-based flow)