We got multiple small websites (microsites) and one main high traffic one with big users base. Right now the requirement is to build authentication system which should allow users to loign with the same identity across the network.

All website are running on different domains, powered by Drupal 6 CMS and have separate databases (so sharing tables with prefix is not an option + it creates a huge mess in the db).

Here is the set of core requirements I came up with:

  1. Users should be able to login with the same credentials to all sites within the network
  2. User’s data sharing between Main site (storage) and all micro sites within the network
  3. Data synchronization across the network when user changes the data (update email or password for example)
  4. The login/registration process should be seamless and consistent
  5. Register on any of the sites across the network and use that identity to login later on.

In the future there might be a need to add openid authentication options.

Basically we are looking at something similar stackexchange does, but not sure if they have central users base on not.

I was thinking about custom solution which will include 2 parts (modules), one will be stored on the Main site for users data storing and responding to requests from clients. Second part (module) will be placed on each microsite, which is going to send requests to the Master. Some kind of client - server setup.

One of the complications I see right away is #3. Data Synhcronization across the network.

I just don't want to reinvent the wheel and maybe some work is already done in this direction.

Looking forward to your ideas on how to approach this project.


We use MySQL database


I think this module may help http://drupal.org/project/multisite_login

storing and sharing user data is the tough part.(not sure if the above module helps with that)

| improve this answer | |

What type of database are you using?

If you're using MySQL, you can keep the user database on the Main site and just make remote queries for login information, registration, etc. That would hit everything that you need and avoid huge headaches.

Looking at some security, I read that the query is sent with plain-text, so you could use SSL or SSH to make it a bit more secure for your users.

Here is how to do a cross-domain MySQL connection.

| improve this answer | |
  • Just make sure that it's secure. – Kzqai May 11 '11 at 22:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.