AAGID v0.2

From Armagetron
This wiki page has an associated Blueprint on launchpad.

AAGID is a specification that defines an authentication scheme originally designed to work with Armagetron Advanced. It is therefore probably suitable for use in other games. Additionally, some interfaces were done in order to have it working on websites around the community, to keep in line with the only one login goal.

AAGID stands for Armagetron Advanced Global IDentifier.

This specifications does NOT specify the way the authenticating user and the server communicate!

The need for a "v2"

The first version of what I call AAGID was kind of a mix between what's on Hash Based Authentication and Web Authentication. The only really complete documentation was the source code itself. That's a huge issue regarding expansion and overall clarity.

Web Authentication implementations made the need for a way to handle different authentication schemes apparent. This version will define a way to negotiate schemes as well as hash methods between the server and the authority.

Also, this fixes some annoyances, such as lists being separated by either spaces or commas, or even both, which is a pain to parse when you don't read the string character by character.

While it lets room for new schemes or hash methods, this specification also defines the aa and webform schemes. However these two schemes are still not mandatory.

Overview

An authentication process with AAGID is always done in the three following steps:

  1. Authentication scheme/hash method negotiation
  2. Prerequisites (handled by scheme)
  3. Hash check (handled by sheme + hash method)

An auth scheme CAN do stuff outside these three steps, but only using it's own external files.