SOLVED: Captive Portal mit Voucher & FreeRADIUS: Steuerung per API ...

Started by white_rabbit, November 30, 2022, 12:12:59 PM

Previous topic - Next topic
Hallo.
Ich habe anhand der Anleitung ein Captive-Portal mit Voucher- und FreeRADIUS-Zugang gemacht.
(https://docs.opnsense.org/manual/how-tos/guestnet.html )

Funktioniert auch alles wunderbar. Allerdings hätte ich gerne die Mögichkeit die gerade laufenden Sessions per API abzurufen und ggf für gewisse Voucher einen Disconnect per API abzusetzen.

Was bereits funktioniert ist dies:

URL="https://$hostname/api/captiveportal/session/disconnect/0/"
curl -k -u "$key:$secret" "$URL" -d '{"sessionId":"QF9q7AhTXp69nWy2qMP6pg=="}' -H 'Content-Type: application/json'

Damit wird diese Session-ID getrennt.

Genauso funktioniert bereits dies:

URL="https://$hostname/api/captiveportal/session/list/"
curl -k -u  "$key:$secret" "$URL"

Das listet jedoch leider viel zu viel auf -- ich erhalte damit immer alle Verbindungen, also sowohl diejenigen, die sich über RADIUS als auch die, die sich über ein Voucher angemeldet haben. Das würde ich gerne weiter filtern/eingrenzen, doch das will leider noch nicht.
Hat jemand eine Idee, wie man das via API so eingrenzen kann, dass wirklich nur die Voucher-Verbindungen erscheinen?
Danke.

Hab's gefunden ... so kann man filtern (Paket jq vorausgesetzt):


curl -k -u  "$key:$secret" "$URL"  | jq '.[].ipAddress'


Damit bekommt man dann natürlich auch andere Filter hin, wie etwa:

| jq '.[].authenticated_via'