@@ -21,6 +21,7 @@ such as [Github][github-idp].
21
21
22
22
[ google-idp ] : https://developers.google.com/identity/protocols/oauth2/openid-connect
23
23
[ auth0 ] : https://auth0.com/
24
+ [ authentik ] : https://goauthentik.io/
24
25
[ okta ] : https://www.okta.com/
25
26
[ dex-idp ] : https://github.com/dexidp/dex
26
27
[ keycloak-idp ] : https://www.keycloak.org/docs/latest/server_admin/#sso-protocols
@@ -209,6 +210,39 @@ oidc_providers:
209
210
display_name_template: "{{ user.name }}"
210
211
` ` `
211
212
213
+ # ## Authentik
214
+
215
+ [Authentik][Authentik] is an open-source IdP solution.
216
+
217
+ 1. Create a provider in Authentik, with type OAuth2/OpenID.
218
+ 2. The parameters are :
219
+ - Client Type : Confidential
220
+ - JWT Algorithm : RS256
221
+ - Scopes : OpenID, Email and Profile
222
+ - RSA Key : Select any available key
223
+ - Redirect URIs : ` [synapse public baseurl]/_synapse/client/oidc/callback`
224
+ 3. Create an application for synapse in Authentik and link it to the provider.
225
+ 4. Note the slug of your application, Client ID and Client Secret.
226
+
227
+ Synapse config :
228
+ ` ` ` yaml
229
+ oidc_providers:
230
+ - idp_id: authentik
231
+ idp_name: authentik
232
+ discover: true
233
+ issuer: "https://authentik.company/application/o/app-slug/"
234
+ client_id: "*client id*"
235
+ client_secret: "*client secret*"
236
+ scopes:
237
+ - "openid"
238
+ - "profile"
239
+ - "email"
240
+ user_mapping_provider:
241
+ config:
242
+ localpart_template: "{{ '{{ user.name }}' }}"
243
+ display_name_template: "{{ '{{ user.name|capitalize }}' }}"
244
+ ` ` `
245
+
212
246
# ## GitHub
213
247
214
248
[GitHub][github-idp] is a bit special as it is not an OpenID Connect compliant provider, but
0 commit comments