docs/content/integration/openid-connect/clients/synapse/index.md
{{% oidc-common bugs="claims-hydration" %}}
This example makes the following assumptions:
https://synapse.{{< sitevar name="domain" nojs="example.com" >}}/https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/synapseinsecure_secretsynapse-users group exists and only members of this group are expected to be able to use Synapse.Some of the values presented in this guide can automatically be replaced with documentation variables.
{{< sitevar-preferences >}}
The following YAML configuration is an example Authelia client configuration for use with Synapse which will operate with the application example:
identity_providers:
oidc:
## The other portions of the mandatory OpenID Connect 1.0 configuration go here.
## See: https://www.authelia.com/c/oidc
clients:
- client_id: 'synapse'
client_name: 'Synapse'
client_secret: '$pbkdf2-sha512$310000$c8p78n7pUMln0jzvd4aK4Q$JNRBzwAo0ek5qKn50cFzzvE9RXV88h1wJn5KGiHrD0YKtZaR/nCb2CJPOsKaPK0hjf.9yHxzQGZziziccp6Yng' # The digest of 'insecure_secret'.
public: false
authorization_policy: 'two_factor'
require_pkce: false
pkce_challenge_method: ''
redirect_uris:
- 'https://synapse.{{< sitevar name="domain" nojs="example.com" >}}/_synapse/client/oidc/callback'
scopes:
- 'openid'
- 'profile'
- 'email'
- 'groups'
response_types:
- 'code'
grant_types:
- 'authorization_code'
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
To configure Synapse there is one method, using the Configuration File.
{{< callout context="tip" title="Did you know?" icon="outline/rocket" >}}
Generally the configuration file is named homeserver.yaml.
{{< /callout >}}
To configure Synapse to utilize Authelia as an OpenID Connect 1.0 Provider, use the following configuration:
oidc_providers:
- idp_id: authelia
idp_name: 'Authelia'
idp_icon: 'mxc://authelia.com/cKlrTPsGvlpKxAYeHWJsdVHI'
discover: true
issuer: 'https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}'
client_id: 'synapse'
client_secret: 'insecure_secret'
scopes:
- 'openid'
- 'profile'
- 'email'
- 'groups'
allow_existing_users: true
user_mapping_provider:
config:
subject_template: '{{ user.sub }}'
localpart_template: '{{ user.preferred_username }}'
display_name_template: '{{ user.name }}'
email_template: '{{ user.email }}'
attribute_requirements:
- attribute: 'groups'
value: 'synapse-users'
{{% oidc-escape-hatch-claims-hydration example="disable" %}}
oidc_providers:
- user_profile_method: 'userinfo_endpoint'