Welcome to the Geteduroam technical documentation. This documentation is intended for client developers that are building a Geteduroam client. We try to cover most topics that are needed to build such a client.
This document is based on how existing clients work, including some assumptions on how they should work. Due to this, some documentation can be incorrect or incomplete. This documentation therefore still needs collaborative work, pull requests are always welcome. We want to make this document a standard to be used by Geteduroam apps, which needs agreeing on the aspects that we mention here.
Note that this documentation only describes the protocol to get the EAP metadata. Anything to do with mobile is not yet documented.
Overview
Configuring an eduroam connection needs to happen by parsing the Extensible Authentication Protocol (EAP) metadata and then importing the metadata using the correct user provided information into the OS specific network manager.
As an overview on how a Geteduroam app/client does this is the following:
- The app starts up
- A Discovery file is obtained that lists each instance and their way to get the EAP metadata. This file is gotten from a discovery server, it is possible that clients implement caching using a local copy
- This discovery file is parsed to list all the instances in it. This discovery file is parsed using JSON
- The user selects an instance either by clicking on one or filtering on it using a search box
- The selected instance is used to obtain the EAP metadata, either through OAuth or directly getting the configuration. It is possible that instead of getting the EAP metadata, the user is redirected to a webpage that handles the further setup
- The EAP metadata is parsed, using XML. Validating that the EAP metadata is correct can be done through XML schemas
- The app determines whether or not user provided credentials or secrets still need to be provided
- When the user has entered these credentials, the eduroam profile can be configured in the OS network manager
Next