The Authentication Process

=The Authentication Process=

The UI Version
By default the 'Home' page has a block on it with a ZName AuthenticationBlock, this contains the process with a ZName 'Authentication' which is in most respects a normal process but uses class='Authentication' Zymonic::Process::Authentication to remove a handful of default behaviours.

The XML definition of the Authentication process then adds conditions to the login and logout transitions of a class 'Hook' (see Zymonic::Condition::Hook) - these 'Hook' conditions call methods on Zymonic::Hooks::AuthHook (either log_in or log_out).

Zymonic::Hooks::AuthHook then call methods in Zymonic::Auth to perform the login (authenticate) or logout - see further down for Zymonic::Auth. the default is 'db'.

The Webservice (API) Version
The webservice API calls Zymonic::Auth::authenticate directly - see next section for Zymonic::Auth.

Zymonic::Auth and sub-classes
Zymonic::Auth is the base class and is sub-classed based on where the directory of users are held e.g. Zymonic::Auth::db, Zymonic::Auth::ldap etc. which class is used can be determined in SystemOptions.xml either as a user selectable choice:

 allowed_auth_types LDAP=ldap,Database=db 

or fixed:

 authtype ldap 

This is also possible to be set via the SystemOptions in the UI.