## Lasso Architecture

Lasso handle the concepts of providers sharing identities, that can enable the creation of sessions following an authentication. The current provider is represented by the LassoServer object, which inherit from the LassoProvider. All known providers to the current provider must be registered inside the LassoServer object. Some providers are identity providers, by sending authentication request you can establish federation, materialised by LassoFederation objects, between identity stored by the identity provider and another stored by the current provider. Those federation are stored in the LassoIdentity object. Each time an authentication is done, an assertion reprenting it is stored in the LassoSession object. They are stored in a map, keyed by the originating identity provider, see lasso_session_get_assertion().

Protocols from the ID-FF 1.2 or the SAML 2.0 family are represented by object whose class inherit from LassoProfile. The constructor of those profile objects needs a LassoServer, and eventually a LassoIdentity and a LassoSession.

LassoNode is the base class for all Lasso classes, it gives XML serialization and deserialization support to all of them.

The LassoMiscTextNode allows to represent miscellenaous nodes for whose no mapping to a specific GObjectClass exists.