Add developer documentation for running a local CAS server (#7147)
parent
b7da598a61
commit
c5f89fba55
|
@ -0,0 +1 @@
|
||||||
|
Add documentation for running a local CAS server for testing.
|
|
@ -0,0 +1,64 @@
|
||||||
|
# How to test CAS as a developer without a server
|
||||||
|
|
||||||
|
The [django-mama-cas](https://github.com/jbittel/django-mama-cas) project is an
|
||||||
|
easy to run CAS implementation built on top of Django.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
1. Create a new virtualenv: `python3 -m venv <your virtualenv>`
|
||||||
|
2. Activate your virtualenv: `source /path/to/your/virtualenv/bin/activate`
|
||||||
|
3. Install Django and django-mama-cas:
|
||||||
|
```
|
||||||
|
python -m pip install "django<3" "django-mama-cas==2.4.0"
|
||||||
|
```
|
||||||
|
4. Create a Django project in the current directory:
|
||||||
|
```
|
||||||
|
django-admin startproject cas_test .
|
||||||
|
```
|
||||||
|
5. Follow the [install directions](https://django-mama-cas.readthedocs.io/en/latest/installation.html#configuring) for django-mama-cas
|
||||||
|
6. Setup the SQLite database: `python manage.py migrate`
|
||||||
|
7. Create a user:
|
||||||
|
```
|
||||||
|
python manage.py createsuperuser
|
||||||
|
```
|
||||||
|
1. Use whatever you want as the username and password.
|
||||||
|
2. Leave the other fields blank.
|
||||||
|
8. 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.
|
||||||
|
|
||||||
|
## Configure Synapse (and Riot) to use CAS
|
||||||
|
|
||||||
|
1. Modify your `homeserver.yaml` to enable CAS and point it to your locally
|
||||||
|
running Django test server:
|
||||||
|
```yaml
|
||||||
|
cas_config:
|
||||||
|
enabled: true
|
||||||
|
server_url: "http://localhost:8000"
|
||||||
|
service_url: "http://localhost:8081"
|
||||||
|
#displayname_attribute: name
|
||||||
|
#required_attributes:
|
||||||
|
# name: value
|
||||||
|
```
|
||||||
|
2. 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.
|
||||||
|
|
||||||
|
## Testing the configuration
|
||||||
|
|
||||||
|
Then in Riot:
|
||||||
|
|
||||||
|
1. Visit the login page with a Riot pointing at your homeserver.
|
||||||
|
2. Click the Single Sign-On button.
|
||||||
|
3. Login using the credentials created with `createsuperuser`.
|
||||||
|
4. You should be logged in.
|
||||||
|
|
||||||
|
If you want to repeat this process you'll need to manually logout first:
|
||||||
|
|
||||||
|
1. http://localhost:8000/admin/
|
||||||
|
2. Click "logout" in the top right.
|
|
@ -18,9 +18,13 @@ To make Synapse (and therefore Riot) use it:
|
||||||
metadata:
|
metadata:
|
||||||
local: ["samling.xml"]
|
local: ["samling.xml"]
|
||||||
```
|
```
|
||||||
5. Run `apt-get install xmlsec1` and `pip install --upgrade --force 'pysaml2>=4.5.0'` to ensure
|
5. Ensure that your `homeserver.yaml` has a setting for `public_baseurl`:
|
||||||
|
```yaml
|
||||||
|
public_baseurl: http://localhost:8080/
|
||||||
|
```
|
||||||
|
6. Run `apt-get install xmlsec1` and `pip install --upgrade --force 'pysaml2>=4.5.0'` to ensure
|
||||||
the dependencies are installed and ready to go.
|
the dependencies are installed and ready to go.
|
||||||
6. Restart Synapse.
|
7. Restart Synapse.
|
||||||
|
|
||||||
Then in Riot:
|
Then in Riot:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue