# 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](https://pypi.org): ``` pip install matrix-synapse-saml-mozilla ``` ### Config Add the following in your Synapse config: ```yaml 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: ```yaml listeners: - 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](doc/login_flow.svg) ## 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`.