My OpenID status update

Brad Fitzpatrick brad at danga.com
Wed May 18 21:01:29 PDT 2005


Things I'm working on:

-- LWPx::ParanoidAgent.  A subclass of LWP::UserAgent so it's a
   drop-in replacement for LWP::UserAgent in any case.  LiveJournal has
   used something like it for years, but it's called "SafeAgent" and it's
   not a subclass, so that's sometimes annoying.  My ParanoidAgent will be
   released on CPAN in the next couple days. It prevents:
   malicious/accidental tarpitting using absolute max time (better than
   LWP's timeout parameter, and not using non-portable signals), not
   connecting to private/loopback/multicast addresses, and configurable
   lists of strings/regexps of hosts not to connect to.  (your internal
   addresses/hostnames)

-- OpenID::Consumer library to use a configurable UserAgent (or
   fall back to LWP::UserAgent) to fetch claimed identity URLs off the
   net, do auto-discovery, and return a OpenID::ClaimedIdentity object
   with the final URL found (if following redirects, safely).  From that,
   you can generate return-to URLs based on your base return-to address
   and parameters.  It'll also have a hook you can set so your own logic
   can choose the OpenID server if the client has declared multiple.
   It'll default to the first.

   The OpenID::Consumer object has a configurable cacher attribute
   to cache the mapping from claimed URL to declared OpenID servers.
   Because when you get the return_to HTTP hit, you have to verify
   the server hitting you is one of the declared OpenID servers, and
   not a rogue site that's just returning (with a valid signature!)
   and claiming to be a user, even though that user doesn't trust that
   server.  The default will be no caching (has to refetch from network),
   but a filesystem cacher will be included.

       my $csr = OpenID::Consumer->new;
       $csr->cacher(OpenID::Cacher::FileSystem->new(Dir => "/var/openid/"));

   So you can make your own database-backed cacher.

   The library will also then validate signatures once you get the
   returned response.

-- OpenID::Server library, similarly extensible, to do the reverse.  The
   current LiveJournal server code will be changed to use this.

-- documentation on the website

-- LiveJournal client support, so DeadJournal users (or
   whoever) can reply to LJ posts with auth.  This is where things get
   fun.


- Brad





More information about the yadis mailing list