[drupal-devel] login once for multiple sites
Moshe Weitzman
weitzman at tejasa.com
Sun Apr 24 11:17:21 UTC 2005
I implemented a system very similar to this in in sso.module. See
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/sso/Attic/
sso.module?rev=1.2&hideattic=0&view=log. It was an experiment of mine,
and to my knowledge not yet tested on a pod of production sites. It is
unmaintained, by now.
-moshe
On Apr 23, 2005, at 11:02 PM, Allie Micka wrote:
> This would be exceedingly useful for us as well. But you don't want
> to rely on PHPSESSID because (hopefully) the various sites do not have
> access to the same session info. Additionally, a site can't set a
> cookie for another domain. You can set a cookie that works on various
> subdomains ( a.drupal.org, b.drupal.org, etc.) but that's nowhere near
> flexible enough.
>
> One way to do this is to query a central site for logged-in status:
>
> - A user preference on each site includes a "log me into the network"
> option. This sets a persistent cookie on the user's machine that
> represents some kind of universal id for them.
>
> - Upon successful authentication on a network site, the logged-in
> status is reported to the central server for that universal id.
>
> - When a user attempts to authenticate, check for the presence of that
> cookie. If it exists, query the central server to see if that id has
> been logged in somewhere else
>
> - During subsequent hits and/or login status changes, the central site
> is notified of the users' status.
>
> notes:
>
> This has usability issues, which would have to be identified and
> addressed.
>
> It sounds shockingly insecure, but can be made "good enough" through
> the use of SSL, session cookies, secure hash and shared secrets among
> the network sites.
>
> The persistent cookie is a definite problem for multi-user systems.
> Off the top of my head, I don't know a way around it.
>
>>> I think it would be a good idea to provide administrators who use one
>>> Drupal installation for multiple sites and share users and sessions
>>> across
>>> those sites (via $db_prefix) with a new option that would let users
>>> who
>>> log into one of the sites to be automatically logged into some or
>>> all of
>>> the other companion sites.
>>>
>>> I'm envisioning this working by adjusting user_login() function in
>>> user.module. Once a login is successful, have the function send out
>>> PHPSESSID cookies for the desired sites, each containing the same
>>> session
>>> id.
>>>
>>> Your thoughts?
>>
>> I've been thinking about implementing this feature. But there is
>> always
>> this lack of time...
>>
>> Cheers,
>> Gerhard
>
> Allie Micka
> pajunas interactive, inc.
> http://www.pajunas.com/
>
> scalable web hosting and open source solutions
>
More information about the drupal-devel
mailing list