diff options
author | Fly <3713548+flyinghuman@users.noreply.github.com> | 2023-02-23 18:54:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-23 12:54:03 -0500 |
commit | 452b009eb085387cec0b967a114e722624d276fb (patch) | |
tree | 9cc5334f1544aea0afc8c0f726c20509ef404393 /docs/openid.md | |
parent | Update .git-blame-ignore-revs for #15103. (diff) | |
download | synapse-452b009eb085387cec0b967a114e722624d276fb.tar.xz |
Documentation using Shibboleth with OIDC Plugin for SSO. (#15112)
Diffstat (limited to 'docs/openid.md')
-rw-r--r-- | docs/openid.md | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/docs/openid.md b/docs/openid.md index 6ee8c83ec0..73f1e06121 100644 --- a/docs/openid.md +++ b/docs/openid.md @@ -590,6 +590,47 @@ oidc_providers: Note that the fields `client_id` and `client_secret` are taken from the CURL response above. +### Shibboleth with OIDC Plugin + +[Shibboleth](https://www.shibboleth.net/) is an open Standard IdP solution widely used by Universities. + +1. Shibboleth needs the [OIDC Plugin](https://shibboleth.atlassian.net/wiki/spaces/IDPPLUGINS/pages/1376878976/OIDC+OP) installed and working correctly. +2. Create a new config on the IdP Side, ensure that the `client_id` and `client_secret` + are randomly generated data. +```json +{ + "client_id": "SOME-CLIENT-ID", + "client_secret": "SOME-SUPER-SECRET-SECRET", + "response_types": ["code"], + "grant_types": ["authorization_code"], + "scope": "openid profile email", + "redirect_uris": ["https://[synapse public baseurl]/_synapse/client/oidc/callback"] +} +``` + +Synapse config: + +```yaml +oidc_providers: + # Shibboleth IDP + # + - idp_id: shibboleth + idp_name: "Shibboleth Login" + discover: true + issuer: "https://YOUR-IDP-URL.TLD" + client_id: "YOUR_CLIENT_ID" + client_secret: "YOUR-CLIENT-SECRECT-FROM-YOUR-IDP" + scopes: ["openid", "profile", "email"] + allow_existing_users: true + user_profile_method: "userinfo_endpoint" + user_mapping_provider: + config: + subject_claim: "sub" + localpart_template: "{{ user.sub.split('@')[0] }}" + display_name_template: "{{ user.name }}" + email_template: "{{ user.email }}" +``` + ### Twitch 1. Setup a developer account on [Twitch](https://dev.twitch.tv/) |