This file will explain some basics concepts about the Single Sign-On modular providers present in Vtenext.

In Vtenext there are several Single Sign-On providers ready to use: OAuth 2.0, OpenID Connect and SAML,
but it's possible to add any other provider easily.

There are 2 main types of providers:
. password : the user is requested a username and password in the login form, 
	then the credentials are passed to the SSO provider to be validated, which will
	answer with a yes/no status, indicatin whether the user is authenticated.
	Example of this provider is the LDAP

. redirect : the user will only type the username and will be redirected to an
	external page, where the authentication will take place. After successful login
	the user is redirected back to vte with some kind of token, and after verification
	the user is logged in in vte.
	Examples of this provider: SAML, OpenID Connect, OAuth 2.0

To create a new provider see the examples in the modules/SDK/examples/Login folder.

Standard providers are in include/vtenext/Auth/SSO folder, which contains the abstract base class
and the interfaces to implement:

AbstractSSO: all providers must extend this class
BaseRedirectAuthenticator: class with some useful methods that can be extended to create a redirect provider
	Can be used instead of extending the AbstractSSO

IPWDAuthenticator: implement this interface to create a password provider
IRedirectAuthenticator: implement this interface to create a redirect provider
IRemoteLogout: implement this interface to support the remote logout (logout initiated by the IdP)
IUserSearch: implement this interface to be able to search for users in the external system when creating a user.
	Used by LDAP, for example.
	

Providers support a configuration panel where the vte administrator can set up the necessary parameters
(ex: client_id and client_secret for OAuth2, or tenant_id for Azure OIDC...).
These parameters are configurable in the provider's class and will be automaticallly displayed in the settings page.
See the LoginPwdConfig for a complete description of the supported fields
