wasm-oidc-plugin
wasm-oidc-plugin copied to clipboard
[BREAKING] feat/refactor/docs: multiple providers, large refactor, configurable ticking interval, fix for jwks endpoint has different host
Please describe your changes and why you made them
Multiple OpenID providers
- the plugin can now be configured to use multiple providers for token issuing and validation
- the discovery fetches all information from the configured providers, loads the jwks etc.
- if there is more than one provider, then the user can select a provider to authenticate with on a dedicated page. this happens with a callback (
_wasm-oidc-plugin/provider-selection?authorize_with_provider=wwu&return_to=lw), which then redirect to theauthorization_endpoint, because otherwise we would not be able to know which server sent the code in the code callback. - if there is only one provider, the redirection will happen right away
Small features
- configurable ticking interval (
ticking_interval_in_ms) - logout path to clear cookies and end session (optional) as in #96
- get envoy request id and show it in the logs & error page when something fails #101
Refactor & fixes
- large refactor of the files and codebase (more to come)
- fix if open id providers had the
jwks_uriexposed at a different host than the openid-configuration host - get
:schemeto parseurlas in #98 - pretty print discovery and jwks responses when log level is debug
Does this PR introduce a breaking change?
[!WARNING] This PR introduces a breaking change: Please see
envoy.yamlfor the updated config structure
TODOs
- [x] Update k8s files
- [ ] Write a script to migrate config
- [x] Readme
- [ ] More comments, docs and logs
- [x] Error pages in html.rs
- [x] Include #98
- [x] Include #96
Other information and Screenshots (if appropriate)
🤫 It has darkmode
Linked
For #93
more to come