You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Richard van der Hoff f85ec19465
Allow users to pick a username on login (#1)
This is essentially a rewrite to collect the username from the user when they first log in, rather than try to determine it algorithmically from SAML attributes.
4 years ago
doc Allow users to pick a username on login (#1) 4 years ago
matrix_synapse_saml_mozilla Allow users to pick a username on login (#1) 4 years ago
tests Allow users to pick a username on login (#1) 4 years ago
.gitignore Initial commit 4 years ago
LICENSE Initial commit 4 years ago
MANIFEST.in Allow users to pick a username on login (#1) 4 years ago
README.md Allow users to pick a username on login (#1) 4 years ago
requirements.txt Initial commit 4 years ago
setup.cfg Allow users to pick a username on login (#1) 4 years ago
setup.py Allow users to pick a username on login (#1) 4 years ago
tox.ini Allow users to pick a username on login (#1) 4 years ago

README.md

Synapse Mozilla SAML MXID Mapper

A Synapse plugin module which allows users to choose their username when they first log in.

Installation

This plugin can be installed via PyPi:

pip install matrix-synapse-saml-mozilla

Config

Add the following in your Synapse config:

   saml2_config:
     user_mapping_provider:
       module: "matrix_synapse_saml_mozilla.SamlMappingProvider"

Also, under the HTTP client listener, configure an additional_resource as per the below:

listeners:
  - port: <port>
    type: http

    resources:
      - names: [client]

    additional_resources:
      "/_matrix/saml2/pick_username":
        module: "matrix_synapse_saml_mozilla.pick_username_resource"

Configuration Options

Synapse allows SAML mapping providers to specify custom configuration through the saml2_config.user_mapping_provider.config option.

There are no options currently supported by this provider.

Implementation notes

The login flow looks something like this:

login flow

Development and Testing

This repository uses tox to run linting and tests.

Linting

Code is linted with the flake8 tool. Run tox -e lint to check for linting errors in the codebase.

Tests

This repository uses unittest to run the tests located in the tests directory. They can be ran with tox -e tests.