We are currently working on a solution to centralize our userbase.
The central userbase will contain primary account information that
will be extended on an application-specific basis. For instance, all
users of our applications will have the following:
first_name
last_name
email
phone
…etc…
Application ‘X’, however, might extend this account information so
that it includes application_x_admin, application_x_group, etc. so
that these attributes are only available to Application ‘X’.
Application ‘Y’ could similarly have added attributes or it could
simply utilize the defaults for our userbase.
The questions follows – How do we store account information separate
from application-specific user data and share that account information
across multiple applications?
The solution needs to…
–Store the account information in a separate database
–Avoid as much duplication as possible to avoid unnecessary
difficulty for modifications
–Easily allow a login, logout, authenticate ability from within an
application (registration, etc. will be in a separate application)
–Easy to retrieve/search the userbase from within applications,
including direct access to userbase attributes (first_name, etc.) and
find methods (find_by_first_name, etc.)
Any suggestions/guidance is appreciated. Thanks.