feat: Implement first pass at Radius Device Management suite

This commit is contained in:
UGAIF
2026-06-17 16:20:24 +00:00
parent 1a77266a2f
commit 5c8fd52e1b
39 changed files with 1149 additions and 2 deletions
+36
View File
@@ -2,6 +2,42 @@
Device Manager is a device registration and access management portal for laboratory, research, and institutional networks. It enables users to register and manage devices, supports RADIUS-based authentication workflows, and facilitates secure network access through WPA3-Enterprise authorization policies and credential management.
### FreeRADIUS module
Device Manager includes an `rlm_python` bridge at `device_manager.freeradius`. FreeRADIUS stays responsible for EAP/password authentication; this module evaluates registered device identity, records the RADIUS request, creates an auditable access decision, and returns VLAN or reply attributes for allow, quarantine, or reject outcomes.
Set these environment variables for the FreeRADIUS service:
```bash
DEVICE_MANAGER_BENCH_PATH=/home/frappe/frappe-bench
DEVICE_MANAGER_SITE=your-site-name
```
Example `mods-available/python3` module stanza:
```text
python3 device_manager {
module = device_manager.freeradius
instantiate = ${.module}
authorize = ${.module}
post_auth = ${.module}
}
```
Then call the module from the relevant virtual server:
```text
authorize {
device_manager
}
post-auth {
device_manager
}
```
The module reads common request attributes such as `Calling-Station-Id`, `User-Name`, `NAS-Identifier`, `NAS-IP-Address`, and SSID attributes, then writes `DM Radius Auth Event`, `DM Access Decision`, and `DM Device Audit Event` records.
### Installation
You can install this app using the [bench](https://github.com/frappe/bench) CLI: