Actually, it is a simple session-fixation protection. Since we create
the session object before the user is authenticated, we can be
vulnerable to session fixation attacks in the presence of a buggy web
application somewhere in the domain. The AuthToken protects against
that by setting a new cookie after login, and checking the session
against that.
> 2) Session ID : If you are using PHPSESS then both IDP & SP will have
> different session ID, this is just for local use?
I'm not sure that I understand what you mean by "local use". The
session ID is usually local to the current domain, the IDP and SP
will therefore typically have two session IDs. As the name implies,
this is the ID that we use when loading and saving an user's session.
> 3) Track ID : I understand the whole process can involve different
> servers (at least one for SP, one for IDP), and each process can have
> different "actions" e.g. login, logout, authenticating.. how I
> understand Track ID is the ID to group related actions/processes
> together.
It is actually more of a non-sensitive session ID. It allows us to
group log messages by the session they belong to, which makes it
easier to debug errors by filtering out information from other
sessions. It is also displayed on various error pages and included in
error reports that are sent.
> 4) Auth State ID : If we use simpleSAMLphp for both SP & IDP, each of
> them got its own "State", for example at IDP, when processing
> SAMLRequest is one state, when authenticating is another state. Each
> state is saved in session, and each state got its own ID?
Yes, one state ID "identifies" one login or logout request, so that we
can keep track of information from the time we receive the request
until we send the response.
This also allows one user to have multiple login/logout requests
occuring more or less simultaneously.
Regards,
Olav Morken
UNINETT / Feide