[ANN] Ruby OpenID 1.0

Brian Ellin brian at janrain.com
Fri May 12 04:38:05 UTC 2006


Hello Ruby OpenID friends,

It has been a while since the last update, and this 1.0 release comes
with some exciting new features and some significant internal changes.

=API Changes=

Both the consumer and server have significant API changes.  These
changes are not backward compatible, and were made in an effort to
keep both objects easy to use while adding the flexibility to extend.
Several changes are purely naming related in which objects with an
OpenID in their name had that part removed because they already exist
in the OpenID namespace.  For example, OpenID::OpenIDConsumer is now
OpenID::Consumer.

The consumer object changed in several ways, and supports a couple of
new features:

   1. Yadis service discovery, with server fallback.  If a user has
more than one OpenID server in her Yadis file, alternate servers will
be tried in the case where the primary server is unable to be reached
or an error is encountered.  This means that users may assert their
identity using multiple different servers.  This change requires a
library dependency on the Yadis library, and requires the consumer to
have a reference to the user's session object.  The library still
speaks older OpenID "link rel" style discovery is the case where Yadis
is not supported.

   2. OpenID extension support.  The new interface makes it easy
implement lightweight extensions to the OpenID protocol, for example
simple registration.  Servers and consumers that support this
extension provide the user a way to easily transfer stuff like email
address and nickname during the traditional "sign-up" step of site
registration.  Servers only reveal registration data with the user's
consent, and the user doesn't have to enter those annoying fields that
they type most everywhere.

   3. Ability to verify server SSL certificates.  You may now
optionally verify SSL server certificates against a certificate
authority file, to make sure you are talking to the correct host.  See
the OpenID::Consumer API documentation for details.

For details on how to upgrade you current installation, please have a
look at the examples/consumer.rb.

All server specific code has been moved into the OpenID::Server module
inside the OpenID module, and the internal objects have been
completely revamped.  The new design is less monolithic, and easier to
extend for implementing OpenID extensions.  The server test suite now
has expanded coverage, and the rails server example implements the new
API.  Please look at the API documentation and the code in
examples/rails_server/app/controllers/server_controller.rb for
implementation details.

=Ruby Gems=

As of today the Ruby OpenID library and the Ruby Yadis library are
available via rubygems and the rubyforge.org gem server.  Installing
the library is as simple as typing:

    gem install ruby-openid

That's it!  You still have the option to download the package and
install it yourself, if you like.

Download and enjoy! Please send all questions, comments, feedback and
bug reports to brian -at- janrain.com

Thanks,
Brian Ellin, JanRain Inc.
brian at janrain.com


More information about the yadis mailing list