44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
|
# OIDC and delegated authentication
|
||
|
|
||
|
## Compatibility/OIDC-aware mode
|
||
|
|
||
|
[MSC2965: OIDC provider discovery](https://github.com/matrix-org/matrix-spec-proposals/pull/2965)
|
||
|
[MSC3824: OIDC aware clients](https://github.com/matrix-org/matrix-spec-proposals/pull/3824)
|
||
|
This mode uses an SSO flow to gain a `loginToken` from the authentication provider, then continues with SSO login.
|
||
|
Element Web uses [MSC2965: OIDC provider discovery](https://github.com/matrix-org/matrix-spec-proposals/pull/2965) to discover the configured provider.
|
||
|
Wherever valid MSC2965 configuration is discovered, OIDC-aware login flow will be the only option offered.
|
||
|
|
||
|
## (🧪Experimental) OIDC-native flow
|
||
|
|
||
|
Can be enabled by a config-level-only setting in `config.json`
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"features": {
|
||
|
"feature_oidc_native_flow": true
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
See https://areweoidcyet.com/client-implementation-guide/ for implementation details.
|
||
|
|
||
|
Element Web uses [MSC2965: OIDC provider discovery](https://github.com/matrix-org/matrix-spec-proposals/pull/2965) to discover the configured provider.
|
||
|
Where OIDC native login flow is enabled and valid MSC2965 configuration is discovered, OIDC native login flow will be the only login option offered.
|
||
|
Element Web will attempt to [dynamically register](https://openid.net/specs/openid-connect-registration-1_0.html) with the configured OP.
|
||
|
Then, authentication will be completed [as described here](https://areweoidcyet.com/client-implementation-guide/).
|
||
|
|
||
|
#### Statically configured OIDC clients
|
||
|
|
||
|
Clients that are already registered with the OP can configure their `client_id` in `config.json`.
|
||
|
Where static configuration exists for the OP dynamic client registration will not be attempted.
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"oidc_static_clients": {
|
||
|
"https://dummyoidcprovider.com/": {
|
||
|
"client_id": "abc123"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|