[drupal-devel] remote auth and required email/password fields
Mark
mark at nullcraft.org
Wed Mar 16 23:45:57 UTC 2005
Sorry for the delayed response, but thank you all for your comments.
Moshe Weitzman wrote:
>>> I can see one problem arising from the profile edit page's current
>>> design. What happens when a user changes their name from
>>> "user at authserver" to be just plain "user" (or vice/versa)?
>>> Will that same account no longer be authenticated against the remote
>>> server?
>>
>>
>> Right.
>
>
> Wrong. The authmap table maps the remote username to local uid. Look
> at the source in user_login()
>
Ok, after a little code browsing and some empirical study, I've seen
that neither of these scenarios is a problem.
>
>> I dob't get what you want to do.
>>
>>> What happens to normal, locally authenticated users who change their
>>> username from "someuser" to "someuser at someotherauthserver"?
>>
>>
> you can't put an @ in your username unless you register via remote auth
>
Yes you can, but it doesn't confuse the auth system. You can, however,
keep a user authenticated through a remote site from registering with
your site using remote auth. For instance, I could register as a local
user 'javanaut', then change my username to 'weitzman at drupal.org'. If a
user attempted to register using 'weitzman at drupal.org', the name would
already be taken. Not a huge problem, but perhaps something to consider.
>>> Many auth servers provide full name, email address, etc., but
>>> there's currently no way of attriibuting these values to a local
>>> account. What about changing the hook_auth mechanism so that
>>> profile data collected at the time of signup can be applied to a new
>>> user's account.
>>
>
> we already have this capability in foaf.module. That module takes
> advantage of hook_user('login'). Once you see that module, and read
> up on user.module, I think many of your doubts will be answered. You
> can use hook_user('login') too with these auth servers if they don't
> use foaf.
>
>> This has been discussed in the "social software" session at the code
>> sprint. The problem is to establish a connection of the remote server's
>> fields to local Drupal fields (for example: we use "name" for the
>> Drupal name, another software could think that is the given name).
>
> again, see foaf module. it does this mapping
I'll look at this module. For my current purposes, livejournal does
offer foaf data for its users.
>
>> An idea (proposed by somebody else) for secure remote auth would be to
>> let the user authenticate at the "home server" and only send a "yes" or
>> "no" to the remote server. The remote server would pass the session ID
>> along and get it back if authentication was succesfull. I am not
>> completely sure, if this process is safe from exploits, though.
>>
>
> see http://alec.bohemiandrive.com/perm/2005/02/18/distributed-
> authentication for the vision of where we intend to go with this.
> noone has volunteered to code it yet.
Excellent read. The only concerns I would have would be with sites that
aren't located at or have access to the root of a domain (like
http://example.com/~user/drupal/). His suggestion was to make doc root
level assumptions about the location of various config files and to use
SSL for server-to-server communication, which might not be available
everywhere. I would think the encryption method/communication channel
should be configurable and allow for minimum-security arrangements
(assuming all site admins supported this). This article definitely
deserves its own thread, and from the looks of it, I missed out on that
thread already :(
>
>> Ideally, the whole process should be encrypted.
>
> not necessary.
As mentioned above, I would think that some commonly available
encryption scheme could be used. Perhaps a public key system? I would
want to accommodate the lowest common drupal denominator with a very
basic hosting package.
>
>> In general, the whole remote authentication process is not of much
>> value
>> (at least to me) as long as there is no way to have a closed set of
>> sites that can build a trusted network.
>
>
> yes there is. you can use sso.module if you have a central
> authoritative drupal site for identity. or if all sites share a
> database server, you can use a solution as described at
> http://lists.drupal.org/archives/drupal-devel/2004-07/msg00737.html.
> but even if you just have a bunch of independant trusted sites, you
> may employ username validation rules to shut out untrusted servers.
>
I'll have to look into this module. I'm currently dreading the thought
of using the ldap module to talk to an active directory server for
various intranet sites :(
>> I also rather create a new
>> account because firefix remembers my passwords for me and the remote
>> auth process has thus not much benefit for me. ;)
>>
What happens when your desktop gets stolen? ;)
Thank you for your comments. One question, though, I didn't see any
conversations here or on drupal.org regarding the revised distributed
auth conversation. Was there one?
Thanks,
-Mark
More information about the drupal-devel
mailing list