How to store account information separately and across multiple applications?

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.

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

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