From RestAuth
Jump to: navigation, search

The RestAuth project is a system providing shared authentication, authorization and preferences. Shared authentication and preferences allow users to use a single account on multiple services (such as websites, mail, system accounts, ...), sharing preferences among those systems. Shared authorization allows administrators to manage permissions for users in a central and easy way.

RestAuth is a free and open project, so please feel free to participate.

The RestAuth protocol

At the core of the project is a detailed specification (simplified overview, examples with curl) for a network protocol loosely based on the REST paradigm. The primary design goal of the RestAuth protocol is to make it as easy as in any way possible to integrate existing services into the RestAuth system. If you need to use the protocol directly (i.e. because you are using a language where no library exists), the basic authentication service consists of just a few HTTP calls, you don't even need to use a JSON parser. Even more complex tasks require little more than a HTTP protocol implementation and a JSON parser. Our libraries make RestAuth even simpler to use, you need no knowledge of the protocol, you won't even notice that you are performing calls via the network.


The project provides a reference implementation based on the Django web framework.

Client libraries

The RestAuth project provides libraries for several popular programming languages: Python (the client reference implementation), PHP, incomplete libraries are available for [1], Perl and Ruby. Please see the Libraries page for a full list of available libraries.


There are ready-to-use plugins for many systems. The Plugins page provides a full list.