This documentation may be out of date!
This documentation site is for the versions of Synapse maintained by the Matrix.org Foundation (github.com/matrix-org/synapse ), available under the Apache 2.0 licence.
Since version 1.99, Synapse is now maintained by Element under a new licence (github.com/element-hq/synapse ).
If you are interested in the documentation for a later version of Synapse, please click here to navigate to this same page on the latest Element Synapse documentation site , if it's available.
The django-mama-cas project is an
easy to run CAS implementation built on top of Django.
Create a new virtualenv: python3 -m venv <your virtualenv>
Activate your virtualenv: source /path/to/your/virtualenv/bin/activate
Install Django and django-mama-cas:
python -m pip install "django<3" "django-mama-cas==2.4.0"
Create a Django project in the current directory:
django-admin startproject cas_test .
Follow the install directions for django-mama-cas
Setup the SQLite database: python manage.py migrate
Create a user:
python manage.py createsuperuser
Use whatever you want as the username and password.
Leave the other fields blank.
Use the built-in Django test server to serve the CAS endpoints on port 8000:
python manage.py runserver
You should now have a Django project configured to serve CAS authentication with
a single user created.
Modify your homeserver.yaml
to enable CAS and point it to your locally
running Django test server:
cas_config:
enabled: true
server_url: "http://localhost:8000"
service_url: "http://localhost:8081"
#displayname_attribute: name
#required_attributes:
# name: value
Restart Synapse.
Note that the above configuration assumes the homeserver is running on port 8081
and that the CAS server is on port 8000, both on localhost.
Then in Element:
Visit the login page with a Element pointing at your homeserver.
Click the Single Sign-On button.
Login using the credentials created with createsuperuser
.
You should be logged in.
If you want to repeat this process you'll need to manually logout first:
http://localhost:8000/admin/
Click "logout" in the top right.