Beginnings of a description of the CaptivePortal project from a software engineering perspective.
Feature Requirements
- Opensource (GPL)
- Control access (authentication and authorization)
- Authentication plugins
- System (eg. passwd/shadow)
- LDAP
- Radius
- Client side certs
- Cross platfrom / Portable (perl)
- Scalable to X (enterprise, service provider etc)
- Per user bandwidth management rules
- Independant of link layer security
- Use of arbitrary protocols to access authentication server (eventually some may desire access without a browser)
- Modular use of firewall tools (IP Tables, IP Filter etc)
- Must provide unauthenticated access (guest access)
- Capable of billing for usage (not the actual billing)
- Audit trails for user access (especially when users log off)
- Authentication plugins
- Web based GUI administration ?
- Allow for different priviledge levels for administrators
- Internationalized (important to have in mind from day 1)
these aren't directly related to the initial project but long term it needs to be able to:
- deal with distributed monitoring (providing info and displaying info)
- access point wireless statistics
- client node wireless statistics
- users logged in
- run external commands on user login
- modify ospf tables
- configure ipsec tunnels
This is not a valid Dataflow Definition from a software engineering standpoint, but it gets the idea across, I believe.