Problem: We have end-users using multiple email addresses to authenticate to our wireless network - either on the university vanity SSID or eduroam. We would like a blacklist which Information Security can audit and edit which will deny access to users where that email address is embedded in their certificate or in the PEAP login via eduroam.
Solution: well - I can figure out most of the solution except where to put the User Blacklist and how to make it accessible to Information Security. My first thought was to create a Custom DB on our IPAM system (which hold most of our customizations in general). I have a REST API call to the IPAM which works and returns a JSON of all the email addresses in question:
[
{
"custom_db_data_id": "36015",
"custom_db_name_id": "9",
"descr": "List of users which cannot use the network",
"errno": "0",
"label1": "Email Address",
"label10": "",
"label2": "",
"label3": "",
"label4": "",
"label5": "",
"label6": "",
"label7": "",
"label8": "",
"label9": "",
"name": "User-BlackList",
"read_only": "0",
"type": "WPI",
"value1": "bjhiggins@wpi.edu",
"value10": "",
"value2": "",
"value3": "",
"value4": "",
"value5": "",
"value6": "",
"value7": "",
"value8": "",
"value9": ""
}
]
As you can see, I was a bad boy and should not be able to access our network anymore. The question is how can ClearPass consume this data to make it usable. I was thinking about using an "Authentication Source" as that can query an HTTP source. But I'm not entirely certain which boxes to fill in and with what.
I assume I would put "http://10.215.32.106/rest" in the Primary -> Base URL field. Then in Attributes, I would create a new filter that I can put as Filter Query the remainder of the URL "/rest/custom_db_data_list/WHERE/name%3D%27User-Blacklist%27+and+value1+LIKE+%27%25%{Authentication:Username}%25%27" (forgive URL encoding) ... And that's as far as I get. So my questions become:
- Is this the right place to put an external User Blacklist?
- Is there a better way to do it either externally or internal to CPPM?
- Does CPPM understand JSON in this way? If so can I create a Boolean? If something is returned, the Boolean makes Attribute Denied TRUE ... if nothing is returned the Boolean makes Attribute Denied FALSE
This is mostly just spit-balling and testing - I would love to hear if anyone else had implemented this differently/better.
Thanks!
------------------------------
Ben Higgins
------------------------------