112 lines
3.2 KiB
ReStructuredText
112 lines
3.2 KiB
ReStructuredText
===============================================
|
|
Mandaye - modular reverse proxy to authenticate
|
|
===============================================
|
|
|
|
Mandaye is a modular rewriting reverse proxy. Its main use is to add external
|
|
authentication systems to legacy application, i.e. SSO.
|
|
It dispatches HTTP requests to your applications and allow you to transform and
|
|
filter the request and the response.
|
|
Mandaye allows to couple your authentication provider with incompatible web
|
|
applications.
|
|
|
|
Copying
|
|
-------
|
|
|
|
This software copyrighted by Entr'ouvert and is licensed under the GNU AGPL
|
|
version 3 for distribution.
|
|
|
|
Features
|
|
--------
|
|
|
|
* Mapping / dispatching::
|
|
With Mandaye you can define your own mapping files. This allows you to call your own filters
|
|
on the right HTTP requests. See the config part for more details.
|
|
* Filters::
|
|
You can define your own filters with Mandaye. This filter have access to the WSGI environment and
|
|
could modify the HTTP requests and / or responses.
|
|
* Local authentification::
|
|
Mandaye provide a sql local authentification but you can also implement your own
|
|
local authentification.
|
|
* Distant authentification::
|
|
At the moment Mandaye only support form replay for a distant authentification but we will provide
|
|
SAML 2.0, OpenID and CAS support.
|
|
|
|
|
|
Installation
|
|
============
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
You must install the following packages to use Mandaye
|
|
|
|
* Python >= 2.5:: http://python.org/
|
|
* Setuptools >= 0.6:: http://pypi.python.org/pypi/setuptools
|
|
* Gunicorn >= 0.13:: http://pypi.python.org/pypi/gunicorn
|
|
* Poster >= 0.8:: http://pypi.python.org/pypi/poster/
|
|
* SQLAlchemy >= 0.7:: http://pypi.python.org/pypi/SQLAlchemy
|
|
* Beaker >= 1.6:: http://pypi.python.org/pypi/Beaker
|
|
* Mako >= 0.4:: http://pypi.python.org/pypi/Mako
|
|
* lxml >= 2.3:: http://pypi.python.org/pypi/lxml
|
|
|
|
You can install all those dependencies quickly using pip::
|
|
|
|
pip install gevent poster SQLAlchemy Beaker Mako lxml gunicorn
|
|
|
|
or easy_install::
|
|
|
|
easy_install gevent poster SQLAlchemy Beaker Mako lxml gunicorn
|
|
|
|
or apt-get (Debian based distributions)::
|
|
|
|
apt-get install gunicorn python-poster python-sqlalchemy python-beaker python-mako python-lxml python-setuptools
|
|
|
|
It's recommanded to install the following modules
|
|
|
|
* PyCrypto >= 2.3:: http://pypi.python.org/pypi/pycrypto
|
|
* Static >= 0.4:: http://pypi.python.org/pypi/static
|
|
|
|
You can install this Python modules with pip::
|
|
|
|
pip install pycrypto static
|
|
|
|
Quick installation
|
|
------------------
|
|
|
|
Install at least Python >=2.5 and setuptools or distribute and enter this command in a shell::
|
|
|
|
$ python setup.py install
|
|
|
|
If you want to develop use this command line::
|
|
|
|
$ python setup.py develop
|
|
|
|
|
|
Quick Start
|
|
-----------
|
|
|
|
Configure MANDAYE_PATH/mandaye/config.py with your own preferences.
|
|
You must configure the database uri and the log file.
|
|
|
|
First create your database::
|
|
|
|
$ mandaye_admin.py --createdb
|
|
|
|
Launch mandaye server:::
|
|
|
|
$ mandaye_server.py
|
|
|
|
mandaye_server.py use gunicorn and gunicorn options (please read http://gunicorn.org/configure.html)
|
|
|
|
You could also use gunicorn.conf.py-sample (in the mandaye files)::
|
|
|
|
$ mandaye_server.py -c PATH_TO_THE_FILE/gunicorn.conf.py
|
|
|
|
or::
|
|
|
|
$ mandaye_server.py -c PATH_TO_THE_FILE/gunicorn.conf.py -b 0.0.0.0:4242
|
|
|
|
Configuration
|
|
=============
|
|
TODO
|