Commit Graph

55 Commits

Author SHA1 Message Date
Quentin Gliech f9f2f4a3be Gate account recovery behing a configuration flag 2024-06-28 15:59:21 +02:00
Quentin Gliech 0e270d5449 hCaptcha support 2024-05-15 09:38:10 +02:00
Quentin Gliech f9ae7ae313 Cloudflare Turnstile support 2024-05-15 09:38:10 +02:00
Quentin Gliech a3beeb2398 Render reCAPTCHA challenge on the registration form 2024-05-15 09:38:10 +02:00
Quentin Gliech 3978acd94e Fix recently added Clippy lints
This also ignores the clippy::blocks_in_conditions lint in two crates,
until tracing gets fixed: https://github.com/tokio-rs/tracing/issues/2876
2024-05-07 07:32:02 +02:00
Quentin Gliech 90080235da Introduce config to restrict user capabilities 2024-04-30 13:33:47 +02:00
Quentin Gliech cd0ec35d2f Soft-delete upstream OAuth 2.0 providers on config sync 2024-04-03 09:51:22 +02:00
Quentin Gliech 58fd6ab4c1 Allow disabling registrations (#2553) 2024-04-03 09:27:14 +02:00
Quentin Gliech 8e7bb26a51 Simplify ConfigurationSection trait & skip default values when serializing
This removes the `test` and `generate` methods from the
`ConfigurationSection` trait, as they did not really had a reason to
exist in the trait itself.
2024-03-22 13:33:09 +01:00
Quentin Gliech fc7489c5f8 Flatten the upstream_oauth2 config section 2024-03-22 13:33:09 +01:00
Quentin Gliech aa6178abe6 Flatten the telemetry config section 2024-03-22 13:33:09 +01:00
Quentin Gliech 809fe16d29 Flatten the secrets config section 2024-03-22 13:33:09 +01:00
Quentin Gliech 156dc08280 Clean up the default policy config data 2024-03-22 13:33:09 +01:00
Quentin Gliech f5b34b5b18 Flatten the passwords config section 2024-03-22 13:33:09 +01:00
Quentin Gliech 8bc35f63d8 Flatten the http config
Also properly remove the `spa` resource
2024-03-22 13:33:09 +01:00
Quentin Gliech 6d77d0ed25 Flatten the email config 2024-03-22 13:33:09 +01:00
Quentin Gliech bf50469da1 Flatten the database config 2024-03-22 13:33:09 +01:00
Quentin Gliech cba431d20e Flatten the clients config 2024-03-22 13:33:09 +01:00
Quentin Gliech eb950151af Upgrade OTEL and remove support for Jaeger and Zipkin exporters 2024-03-18 17:26:40 +01:00
Quentin Gliech 25fbbf96b9 Load the additional OAuth parameters from the config 2024-03-01 14:36:37 +01:00
Quentin Gliech 46c565cc89 Move schemars to workspace dependencies
Also enables the `preserve_order` feature, hence the big schema output diff.
2024-03-01 14:36:37 +01:00
Quentin Gliech a980bc79cf Update config schema
Because enabled the serde_json feature which preserves the order in
dicts, keys moved around in the generated schema.
2024-02-08 15:28:43 +01:00
Quentin Gliech 20fa1d516e Make the claims_imports optional in the config 2023-11-22 15:13:28 +01:00
Quentin Gliech 5126d36b2e Add upstream OAuth 2.0 providers name and branding 2023-11-20 17:23:02 +01:00
Quentin Gliech 7315dd9a7a Allow endpoints and discovery mode override for upstream oauth2 providers
This time, at the configuration and database level
2023-11-17 16:18:39 +01:00
Quentin Gliech 6ded397977 Use minijinja templates to map OIDC claims to user attributes 2023-11-08 12:05:58 +01:00
Quentin Gliech 8984cc703b Add instance privacy policy, TOS and imprint, and loads of design cleanups 2023-10-30 15:55:15 +01:00
Quentin Gliech 9b5c8fb44b Allow running the authentication service on a different base path 2023-10-06 14:07:55 +02:00
Quentin Gliech 15ad89aa82 templates: add translations function 2023-10-05 19:29:23 +02:00
Quentin Gliech f20c8d8ef3 Infer client IP address from the peer address and the X-Forwarded-Proxy header 2023-09-20 20:24:30 +02:00
Quentin Gliech 21d3d3a5d4 Rename the 'hack' configuration section to 'experimental' 2023-08-31 18:05:00 +02:00
Quentin Gliech bc04860afb Make the access tokens TTL configurable 2023-08-31 18:05:00 +02:00
Quentin Gliech ae3213fe87 Make the email verification state more configurable on upstream OAuth 2.0 registration
This also marks the email as primary
2023-08-31 14:20:06 +02:00
Quentin Gliech 7fcd022eea Make sure we validate passwords & emails by the policy at all stages
Also refactors the way we get the policy engines in requests
2023-08-30 19:39:39 +02:00
Quentin Gliech 7c83dce66e Move some common dependencies on the workspace level
Also deprecates the AWS SESv2 transport for emails
2023-08-14 13:00:01 +02:00
Quentin Gliech 76653f9638 Better frontend assets handling and move the react app to /account/ (#1324)
This makes the Vite assets handling better, namely:

 - make it possible to include any vite assets in the templates
 - include the right `<link rel="preload">` tags for assets
 - include Subresource Integrity hashes
 - pre-compress assets and remove on-the-fly compression by the Rust server
 - build the CSS used by templates through Vite

It also moves the React app from /app/ to /account/, and remove some of the old SSR account screens.
2023-07-06 15:30:26 +02:00
Quentin Gliech 125a6bdf11 Allow setting a different issuer from the public base URL 2023-06-27 12:53:15 +02:00
Quentin Gliech de13d3ef19 CLI tool to sync the upstream IDPs with the config 2023-06-26 17:24:56 +02:00
Quentin Gliech 4f1b201c74 Define upstream OAuth providers in the config
And adds CLI tool to sync them with the database (WIP)
2023-06-26 17:24:56 +02:00
Quentin Gliech 08d9b0b886 Update the JSON schema 2023-06-14 12:53:48 +02:00
Quentin Gliech d2d68e9a27 Make password-based login optional 2023-05-23 17:02:02 +02:00
Quentin Gliech 2c937bda26 Lint 2023-04-14 10:22:22 +02:00
Quentin Gliech c602b29ffd Fix the default listener configuration 2023-03-14 12:14:06 +01:00
Quentin Gliech 311cad47c2 iana: manually implement JsonSchema/Display/FromStr/Serialize/Deserialize
This removes the dependency on serde_with and parse-display, and makes
the serde & schemars dependencies optional
2023-02-01 15:11:45 +01:00
Quentin Gliech 875025467e Log more errors and setup Sentry integration 2023-01-30 18:04:44 +01:00
Quentin Gliech ee42250660 Remove the dependency on sqlx in the config crate 2022-12-15 16:51:43 +01:00
Quentin Gliech ff2f009b0e Password schemes configuration 2022-12-14 16:04:36 +01:00
Hugh Nimmo-Smith 1c735664aa Config schema is auto-generated 2022-12-09 23:27:13 +01:00
Hugh Nimmo-Smith 9197e997d9 client_ids are required to be ULIDs 2022-12-09 23:27:13 +01:00
Quentin Gliech 9c0ece7512 Do not embed the templates and static files in the binary 2022-11-18 22:37:55 +01:00