Skip to end of metadata
Go to start of metadata

Authentication:

Authentication is an operation which allows clients to prove to the server that they are who they claims to be.

Unauthenticated users have a certain set of rights usually permission to use the registration. But authenticated users have full access to the system.

Authenticator:

It is an interface which extends AuthenticationOperations? (which contain authenticate method) and AuthenticationManagement? interfaces. The Authenticator says that this username and password are correct.

Then we can implement the Authenticator interface with several implementations one for each type of authentication which can be SimpleAuthenticator?.

Authentication Backend:

The AuthenticationBackend? provides backend operations to store/add/remove/whatever on a backend that can be MySQL database for one implementation.

Authentication Credentials:

The AuthenticationCredentials? should be what the user provides username/password crypto certificate.
The Authentication will also depend on Backend and basically what we will have initially is a MySQL database.That would contain userID / Password where userID is the XMPP userID.

Authorization Manager:

The AuthorizationManager? should keep track of what AuthTokens? has been dispatched and their status and for each client operation we will fetch the user information from the cache get it's AuthToken? check with the AuthorizationManager? if it's correct token.
If correct then do whatever the user wants to do.
The authorizationManager will also be responsible for who can do what.


Notes :

- we have two interfaces Authenticator and AuthenticatorBackend? ... Authenticator provides the functionality of authenticating a client using AuthenticationCredential? and AuthenticatorBackend? gives the authenticator the ability to search in some backend for a match ( with the authCredits )

- we will have different implementations of Authenticator like SimpleAuthenticator? , XMPPAuthenticator , etc .
- we will have different implementations of AuthenticatorBackend? like MySQLAuthenticatorBackend , etc .

- Any Authenticator implementation will be coupled with any AuthenticatorBackend? implementation to provide the required functionality.

Labels: