Authorization Rules
Overview
Authorization rules determine what access profile to assign based on identity and other attributes. Rules are evaluated in order (by rank).
Base URL |
|
Methods |
GET, POST, PUT, DELETE |
Key Fields |
name, condition, profile, rank, securityGroup |
Setup
dsource d000 dev/network
ISE_HOST="${ISE_PAN_IP}"
ISE_AUTH="${ISE_API_USER}:${ISE_API_PASS}"
POLICY_ID="your-policy-set-id"
List Authz Rules
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization" \
-H "Accept: application/json" | jq '.response[] | {name, rank, profile}'
Get Authz Rule
RULE_ID="rule-uuid"
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization/${RULE_ID}" \
-H "Accept: application/json"
Create Authz Rule
EAP-TLS Full Access
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization" \
-H "Content-Type: application/json" \
-X POST -d '{
"rule": {
"name": "EAP-TLS Full Access",
"rank": 1,
"state": "enabled",
"condition": {
"conditionType": "ConditionAndBlock",
"children": [
{
"conditionType": "ConditionAttributes",
"attributeName": "IdentityGroup:Name",
"operator": "equals",
"attributeValue": "Endpoint Identity Groups:Linux-Workstations"
},
{
"conditionType": "ConditionAttributes",
"attributeName": "Network Access:EapAuthentication",
"operator": "equals",
"attributeValue": "EAP-TLS"
}
]
}
},
"profile": ["Linux-EAP-TLS-Access"],
"securityGroup": "Linux_Workstations"
}'
MAB Onboarding
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization" \
-H "Content-Type: application/json" \
-X POST -d '{
"rule": {
"name": "MAB Onboarding",
"rank": 10,
"state": "enabled",
"condition": {
"conditionType": "ConditionAttributes",
"attributeName": "Radius:Service-Type",
"operator": "equals",
"attributeValue": "Call-Check"
}
},
"profile": ["MAB-Onboarding"]
}'
Update Authz Rule
RULE_ID="rule-uuid"
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization/${RULE_ID}" \
-H "Content-Type: application/json" \
-X PUT -d '{
"rule": {
"id": "'${RULE_ID}'",
"name": "EAP-TLS Full Access (Updated)",
"rank": 1,
"state": "enabled"
},
"profile": ["Linux-EAP-TLS-Access-v2"]
}'
Delete Authz Rule
RULE_ID="rule-uuid"
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization/${RULE_ID}" \
-X DELETE
Reorder Rules
Rules are evaluated by rank. Lower rank = higher priority.
# Move rule to rank 1 (top priority)
RULE_ID="rule-uuid"
curl -sk -u "${ISE_AUTH}" \
"https://${ISE_HOST}/api/v1/policy/network-access/policy-set/${POLICY_ID}/authorization/${RULE_ID}" \
-H "Content-Type: application/json" \
-X PUT -d '{
"rule": {
"id": "'${RULE_ID}'",
"rank": 1
}
}'
Common Condition Attributes
| Attribute | Example Value |
|---|---|
IdentityGroup:Name |
|
Network Access:EapAuthentication |
|
Radius:Service-Type |
|
CERTIFICATE:Subject - Common Name |
|
AD:ExternalGroups |
|