Wilmagate

WilmaGate is a collection of open-source tools for Authentication, Authorization and Accounting on an Open Access Network. It has been initially developed by the Computer Networks and Mobility Group at the University of Trento (Italy).

Its development has been part of the locally funded Wilma Project and is now being pursued by the Twelve Project under the name Uni-Fy. It is currently being used for wireless authentication at the Faculty of Science at the University of Trento and by the UniWireless network of Italian research groups participating in the Twelve Project.

Features
The system has been designed in order to separate the user authentication phase (which is usually performed by a possibly remote ISP) from internet access provided at the user's current location by a local carrier.

Therefore, a multiplicity of authentication providers and of access providers is envisioned. The WilmaGate system provides code for both purposes and for a variety of authentication methods. Its modular and object-oriented structure allows programmers to easily add plug-in code for new authentication or accounting protocols. See this article for details.

Steps
The following steps are performed in a normal user connection.


 * The user's mobile terminal (laptop or PDA) physically connects to a network, either by plugging in a cable (Ethernet or FireWire) or by associating with a wireless access point via Wi-Fi or Bluetooth.
 * The terminal automatically issues a DHCP handshake in order to set up an appropriate configuration for the network it is entering. By this action, the mobile terminal's existence is recognized by the Gateway component.
 * The client starts some form of authentication process, either by opening a web browser and having it redirected to an authentication provider of the admin's choice, or through some pre-installed authentication program.
 * After authentication the client has possibly full Internet access; however, some authentication-based restrictions are applicable.

Code
The access gateway is written in C++ and is executable both in Linux and Windows/Cygwin environments. The sample Captive portal authentication system is written in PHP.