1
|
===============================================
|
2
|
Mandaye - modular reverse proxy to authenticate
|
3
|
===============================================
|
4
|
|
5
|
Mandaye is a modular rewriting reverse proxy. Its main use is to add external
|
6
|
authentication systems to legacy application, i.e. SSO.
|
7
|
It dispatches HTTP requests to your applications and allow you to transform and
|
8
|
filter the request and the response.
|
9
|
Mandaye allows to couple your authentication provider with incompatible web
|
10
|
applications.
|
11
|
|
12
|
Copying
|
13
|
-------
|
14
|
|
15
|
This software copyrighted by Entr'ouvert and is licensed under the GNU AGPL
|
16
|
version 3 for distribution.
|
17
|
|
18
|
Features
|
19
|
--------
|
20
|
|
21
|
* Mappers / dispatching::
|
22
|
With Mandaye you can define your own mapping files. This allows you to call your own filters
|
23
|
on the right HTTP requests. See the config part for more details.
|
24
|
* Filters::
|
25
|
You can define your own filters with Mandaye. This filter have access to the WSGI environment and
|
26
|
could modify the HTTP requests and / or responses.
|
27
|
* Local authentification::
|
28
|
Mandaye provide a sql local authentification but you can also implement your own
|
29
|
local authentification.
|
30
|
* Distant authentification::
|
31
|
At the moment Mandaye only support SAML 2.0 with password replay but we will provide
|
32
|
SAML 2.0, OAuth and CAS support.
|
33
|
|
34
|
|
35
|
Installation
|
36
|
============
|
37
|
|
38
|
Dependencies
|
39
|
------------
|
40
|
|
41
|
The dependencies are in define into requirements.txt
|
42
|
|
43
|
Quick installation
|
44
|
------------------
|
45
|
|
46
|
Install at least Python >=2.6 and pip in your system.
|
47
|
For example with Debian or a Debian based distribution::
|
48
|
|
49
|
sudo apt-get install python python-pip
|
50
|
|
51
|
Then install virtualenv ::
|
52
|
|
53
|
pip install virtualenv
|
54
|
|
55
|
Create your virtualenv activate it::
|
56
|
|
57
|
virtualenv mandaye
|
58
|
source mandaye/bin/activate
|
59
|
pip install -U pip
|
60
|
|
61
|
Install mandaye::
|
62
|
|
63
|
$ tar xfvz mandaye-VERSION.tar.gz
|
64
|
$ cd mandaye-VERSION
|
65
|
$ pip install -r requirements.txt
|
66
|
$ python setup.py install
|
67
|
|
68
|
If you want to develop use this command line::
|
69
|
|
70
|
$ python setup.py develop
|
71
|
|
72
|
|
73
|
Quick Start
|
74
|
-----------
|
75
|
|
76
|
First step is to create a mandaye project::
|
77
|
|
78
|
$ mandaye-admin.py --newproject PROJECT_NAME
|
79
|
$ cd PROJECT_NAME
|
80
|
|
81
|
Install your Mandaye project::
|
82
|
|
83
|
$ python setup.py install
|
84
|
$ ./manager.py --createdb
|
85
|
|
86
|
Launch mandaye server::
|
87
|
|
88
|
$ ./server.py
|
89
|
|
90
|
Use your own Mandaye configuration file::
|
91
|
|
92
|
$ cp PROJECT_NAME/default-config.ini PROJECT_NAME/config.ini
|
93
|
$ ./server.py --config=config.ini
|
94
|
|
95
|
server.py use gunicorn and gunicorn options (please read http://gunicorn.org/configure.html)
|
96
|
|
97
|
You could also use gunicorn.conf.py-sample (in the mandaye files)::
|
98
|
|
99
|
$ ./server.py --config=config.ini -c PATH_TO_THE_FILE/gunicorn.conf.py
|
100
|
|
101
|
or::
|
102
|
|
103
|
$ ./server.py --config=config.ini -c PATH_TO_THE_FILE/gunicorn.conf.py -b 0.0.0.0:4242
|
104
|
|
105
|
Upgrade Mandaye
|
106
|
---------------
|
107
|
|
108
|
You need to upgrade the update the repository and upgrade database::
|
109
|
|
110
|
~/new_mandaye $ python setup.py install
|
111
|
~/new_mandaye $ alembic upgrade head
|
112
|
|
113
|
Configuration
|
114
|
=============
|
115
|
TODO
|