I am wondering if it is possible to centralize the users table and create a single sign in accross multiple sites. Please consider the following scenario:

www.domain.com - using www_domain_com database, this is the marketting site, one administrative user is required to update the site content, visitors to this site should be able to register an account in the central user table, and ideally would ideally be automatically redirected to a satellite site if they attempt to login through this site.

store.domain.com - using a store_domain_com database, used to sell products and services, and membership subscription to underlying sites
satellite1.domain.com - using a satellite1_domain_com database
satellite2.domain.com - using a satellite2_domain_com database

Users would ideally sign in once through www.domain.com, store.domain.com, or satellite1.domain.com.

Is a setup like this even possible? any comments/suggestions/best practices/alternatives/problems?

How complicated would a setup like this make user access?

Thanks for any help and suggestions!

Comments

mikedance’s picture

bump

venkat-rk’s picture

I am not a multisite expert, but it looks like you just have to share the users table of your central site across all the databases for the different domains. If you do a search for multisite on these forums, you will get plenty of pointers.

----
Previously user Ramdak. Feeling comfortable enough to use my real name after two years with drupal;-)

mikedance’s picture

thanks for the feedback, how do i share a users table in a differant database?

Dollars5’s picture

I just made a similar post over here - though I did a search before posting, seems like I didnot notice your request/post

http://drupal.org/node/101925
Dollars 5 Solution
Mobile Software Developer

mikedance’s picture

bump

TheFazz’s picture

[subscribing to this thread...]

http://www.my-kart.org/

mikedance’s picture

bump

K-O-N-G’s picture

Can do by edit your setting.php ( drupal/sites/default/ ). It require all database use same username and password.

$db_url = 'mysql://username:password@localhost/satellite1_domain_com';
 $db_prefix = array(
 'default'   => 'satellite1_domain_com.',
 'users'     => 'store_domain_com.',
 'sessions'  => 'store_domain_com.',
    );
TheFazz’s picture

thanks. that helps (with shared database).

but would this be possible on separate databases?

http://www.my-kart.org/

TheFazz’s picture

one problem with the shared database solution above...

the creation of new users in the satellite site does not follow the existing user index / numbering as per the main_users table.

the user ends up getting duplicate user number errors.

{edit: my mistake. i neglected to activate singlesignon. still need to know whether this can be done to separate databases}

http://www.my-kart.org/

bonobo’s picture

OpenID will do what you're looking for --

A few months back, I wrote about some of the uses of OpenID in an educational context -- although your situation is probably different, the examples I put in my post will help show what OpenID can or can't do.

Cheers,

Bill

-------
http://www.funnymonkey.com
Tools for Teachers

mikedance’s picture

Thanks for the feedback everyone, I will investigate each of these methods, and reply with any issues or caveats I come accross.

For each of these systems, how do they handle user roles/permissions accross sites?

mikedance’s picture

Here is a good link:

http://drupal.org/node/22268

miss_fiera’s picture

dear my new friends
can someone help me regarding SSO application? i'm thinking to come out with a portal that require a user to login only once and he/she can access all the systems inside that portal
currently all the systems are parking separately and user need to login 4 each of the system
how to cater with this problem: to centralize all these systems..since all of them developed by different vendors and have different structure.
is it possible to lump all the existing database in a single database( e.g: oracle 10g)? how to do this?
do we need a specific software to transfer all the database?
pls help me on this matter
tq