Device Manager
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:
DEVICE_MANAGER_BENCH_PATH=/home/frappe/frappe-bench
DEVICE_MANAGER_SITE=your-site-name
Example mods-available/python3 module stanza:
python3 device_manager {
module = device_manager.freeradius
instantiate = ${.module}
authorize = ${.module}
post_auth = ${.module}
}
Then call the module from the relevant virtual server:
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 CLI:
cd $PATH_TO_YOUR_BENCH
bench get-app $URL_OF_THIS_REPO --branch version-16
bench install-app device_manager
Contributing
This app uses pre-commit for code formatting and linting. Please install pre-commit and enable it for this repository:
cd apps/device_manager
pre-commit install
Pre-commit is configured to use the following tools for checking and formatting your code:
- ruff
- eslint
- prettier
- pyupgrade
License
apache-2.0