Aurora Simple Authentication Server
Get Version
0.0.1→ ‘aurora’
What
A small scale authentication server to provide multiple applications one point of contact for authentication against LDAP et al data stores. The system will respond with a temporary Authenticated Token to be used for the session. There will also be a client-side library for use in Ruby available.
The authentication server will also have a component for user management including permissions and access management.
Installing
sudo gem install aurora
Basics
An Aurora server is created on a specific port which listens diligently for all
requests and are routed accordingly. The most basic part of an Aurora server is
the authenticate block. This passes the username and password to pass auth-
entication with and will return either a new Token for future authentication
requests or false. (NOTE: These details could change.)
Essentially what you have to do is set up hooks for the server to call when a
particular action is requested, starting with authenticate and then moving
on to more custom functionality.
Because the server is not designed with any actual authentication checks, it is totally up to the implementer to authenticate users, be it through an LDAP data store or a MySQL database. This provides a great deal of flexibility, but a good deal of burden and responsibility. Aurora just makes it possible to centralize your authentication outside of your applications (though, with a little creativity, you could certainly decentralize it with Aurora as well).
usage
Here’s a quick sample of how to set up the most basic of Aurora authentication servers.
Aurora::Server::Base.new('http://localhost:2828/', :logger_level => Logger::INFO) do |serv, uri, logger| serv.authenticate do |user, pass| # perform authentication here if authenticated # successfully bound/authenticated Aurora::Server::Token.new(user, pass) else false end end end
The authenticated value is something that would be set by the developer/user
in the perform authentication here segment and is not something magical
provided by Aurora. It is simply a boolean value.
Forum
http://groups.google.com/group/aurora-dev
How to submit patches
Read the 8 steps for fixing other people’s code and for section 8b: Submit patch to Google Groups, use the Google Group above.
The trunk repository is svn://rubyforge.org/var/svn/aurora/trunk for anonymous access.
License
This code is free to use under the terms of the MIT license.
Contact
Comments are welcome. Send an email to Matt Todd email via the forum
FIXME full name, 27th November 2007
Theme extended from Paul Battley