How to store account information separately and across multiple applications?


#1

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.


#2

On Mar 18, 10:04 pm, ericindc removed_email_address@domain.invalid wrote:

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.)

When I’ve done this i’ve had a user class (whose attributes are login
and any app specific attributes) and user_detail which contains shared
info. The shared info is only changed in the user authentication app
and it propagates that info to the other apps.

Fred