diff --git a/docs/sso_mapping_providers.md b/docs/sso_mapping_providers.md
index d6c4e860ae..e09b733ce7 100644
--- a/docs/sso_mapping_providers.md
+++ b/docs/sso_mapping_providers.md
@@ -10,9 +10,9 @@ As an example, a SSO service may return the email address
to turn that into a displayname when creating a Matrix user for this individual.
It may choose `John Smith`, or `Smith, John [Example.com]` or any number of
variations. As each Synapse configuration may want something different, this is
-where SAML mapping providers come into play.
+where SSO mapping providers come into play.
-SSO mapping providers are currently supported for OpenID and SAML SSO
+SSO mapping providers are currently supported for OpenID SSO
configurations. Please see the details below for how to implement your own.
It is up to the mapping provider whether the user should be assigned a predefined
@@ -119,90 +119,3 @@ A custom mapping provider must specify the following methods:
Synapse has a built-in OpenID mapping provider if a custom provider isn't
specified in the config. It is located at
[`synapse.handlers.oidc.JinjaOidcMappingProvider`](https://github.com/element-hq/synapse/blob/develop/synapse/handlers/oidc.py).
-
-## SAML Mapping Providers
-
-The SAML mapping provider can be customized by editing the
-[`saml2_config.user_mapping_provider.module`](usage/configuration/config_documentation.md#saml2_config)
-config option.
-
-`saml2_config.user_mapping_provider.config` allows you to provide custom
-configuration options to the module. Check with the module's documentation for
-what options it provides (if any). The options listed by default are for the
-user mapping provider built in to Synapse. If using a custom module, you should
-comment these options out and use those specified by the module instead.
-
-### Building a Custom SAML Mapping Provider
-
-A custom mapping provider must specify the following methods:
-
-* `def __init__(self, parsed_config, module_api)`
- - Arguments:
- - `parsed_config` - A configuration object that is the return value of the
- `parse_config` method. You should set any configuration options needed by
- the module here.
- - `module_api` - a `synapse.module_api.ModuleApi` object which provides the
- stable API available for extension modules.
-* `def parse_config(config)`
- - **This method should have the `@staticmethod` decoration.**
- - Arguments:
- - `config` - A `dict` representing the parsed content of the
- `saml_config.user_mapping_provider.config` homeserver config option.
- Runs on homeserver startup. Providers should extract and validate
- any option values they need here.
- - Whatever is returned will be passed back to the user mapping provider module's
- `__init__` method during construction.
-* `def get_saml_attributes(config)`
- - **This method should have the `@staticmethod` decoration.**
- - Arguments:
- - `config` - A object resulting from a call to `parse_config`.
- - Returns a tuple of two sets. The first set equates to the SAML auth
- response attributes that are required for the module to function, whereas
- the second set consists of those attributes which can be used if available,
- but are not necessary.
-* `def get_remote_user_id(self, saml_response, client_redirect_url)`
- - Arguments:
- - `saml_response` - A `saml2.response.AuthnResponse` object to extract user
- information from.
- - `client_redirect_url` - A string, the URL that the client will be
- redirected to.
- - This method must return a string, which is the unique, immutable identifier
- for the user. Commonly the `uid` claim of the response.
-* `def saml_response_to_user_attributes(self, saml_response, failures, client_redirect_url)`
- - Arguments:
- - `saml_response` - A `saml2.response.AuthnResponse` object to extract user
- information from.
- - `failures` - An `int` that represents the amount of times the returned
- mxid localpart mapping has failed. This should be used
- to create a deduplicated mxid localpart which should be
- returned instead. For example, if this method returns
- `john.doe` as the value of `mxid_localpart` in the returned
- dict, and that is already taken on the homeserver, this
- method will be called again with the same parameters but
- with failures=1. The method should then return a different
- `mxid_localpart` value, such as `john.doe1`.
- - `client_redirect_url` - A string, the URL that the client will be
- redirected to.
- - This method must return a dictionary, which will then be used by Synapse
- to build a new user. The following keys are allowed:
- * `mxid_localpart` - A string, the mxid localpart of the new user. If this is
- `None`, the user is prompted to pick their own username. This is only used
- during a user's first login. Once a localpart has been associated with a
- remote user ID (see `get_remote_user_id`) it cannot be updated.
- * `displayname` - The displayname of the new user. If not provided, will default to
- the value of `mxid_localpart`.
- * `emails` - A list of emails for the new user. If not provided, will
- default to an empty list.
-
- Alternatively it can raise a `synapse.api.errors.RedirectException` to
- redirect the user to another page. This is useful to prompt the user for
- additional information, e.g. if you want them to provide their own username.
- It is the responsibility of the mapping provider to either redirect back
- to `client_redirect_url` (including any additional information) or to
- complete registration using methods from the `ModuleApi`.
-
-### Default SAML Mapping Provider
-
-Synapse has a built-in SAML mapping provider if a custom provider isn't
-specified in the config. It is located at
-[`synapse.handlers.saml.DefaultSamlMappingProvider`](https://github.com/element-hq/synapse/blob/develop/synapse/handlers/saml.py).
|