Sydent: Reference Matrix Identity Server
Python Shell
Latest commit 9cca661 Jul 18, 2018



Dependencies can be installed using in the same way as synapse: see synapse/README.rst. For instance:

sudo apt-get install build-essential python2.7-dev libffi-dev
python-pip python-setuptools sqlite3 libssl-dev python-virtualenv libjpeg-dev libxslt1-dev

virtualenv -p python2.7 ~/.sydent source ~/.sydent/bin/activate pip install --upgrade pip pip install --upgrade setuptools pip install

Having installed dependencies, you can run sydent using:

$ python -m sydent.sydent

This will create a configuration file in sydent.conf with some defaults. You'll most likely want to change the server name and specify a mail relay.

Defaults for SMS originators will not be added to the generated config file, these should be added in the form:

originators.<country code> = <long|short|alpha>:<originator>

Where country code is the numeric country code, or 'default' to specify the originator used for countries not listed. For example, to use a selection of long codes for the US/Canda, a short code for the UK and an alphanumertic originator for everywhere else:

originators.1 = long:12125552368,long:12125552369
originators.44 = short:12345
originators.default = alpha:Matrix


The requests that synapse servers and clients submit to the identity server are, briefly, as follows:

Request the validation of your email address:

curl -XPOST 'http://localhost:8090/_matrix/identity/api/v1/validate/email/requestToken' -H "Content-Type: application/json" -d '{"email": "", "client_secret": "abcd", "send_attempt": 1}' {"success": true, "sid": "1"}

# receive 943258 by mail

Use this code to validate your email address:

curl -XPOST 'http://localhost:8090/_matrix/identity/api/v1/validate/email/submitToken' -H "Content-Type: application/json" -d '{"token": "943258", "sid": "1", "client_secret": "abcd"}' {"success": true}

Use the validated email address to bind it to a matrix ID:

curl -XPOST 'http://localhost:8090/_matrix/identity/api/v1/3pid/bind' -H "Content-Type: application/json" -d '{"sid": "1", "client_secret": "abcd", "mxid": ""}'

# lookup:

curl 'http://localhost:8090/_matrix/identity/api/v1/lookup?medium=email&'

# fetch pubkey key for a server

curl http://localhost:8090/_matrix/identity/api/v1/pubkey/ed25519