Sindre Rødseth Hansen
ca77435d6a
feat(http): propagate traceparent for httpclient
...
Co-authored-by: tronghn <trong.huu.nguyen@nav.no >
2025-01-30 14:03:30 +01:00
Trong Huu Nguyen
bf83a58795
wip: tracing for http transport
2025-01-30 14:03:30 +01:00
Trong Huu Nguyen
e1ed2033cf
refactor(middleware): extract tracing to separate handler
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:29 +01:00
Trong Huu Nguyen
10360958c0
feat(middleware): clean up logging middleware, add span attributes
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:29 +01:00
Trong Huu Nguyen
98cc534806
feat(middleware): use trace_id as correlation id, if available
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:28 +01:00
Trong Huu Nguyen
1f730a3d68
refactor: move logging to observability package
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:27 +01:00
Trong Huu Nguyen
81058458e0
feat: add logrus hook for opentelemetry
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:27 +01:00
Sindre Rødseth Hansen
b882c31585
feat(config): automatically enable otel if OTEL_EXPORTER_OTLP_ENDPOINT env var is set
...
Co-authored-by: tronghn <trong.huu.nguyen@nav.no >
2025-01-30 14:03:23 +01:00
Trong Huu Nguyen
57f5bf951e
fix(config): set correct defaults for resolving version
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:23 +01:00
Trong Huu Nguyen
b7524f516d
refactor(otel): move to observability package
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-30 14:03:21 +01:00
Trong Huu Nguyen
9c8055bcd6
feat(openid/client): fall back to default value for invalid parameter values
...
Instead of erroring when receiving non-empty, invalid parameters, we fall back to
the configured (if any) default value for the identity provider, which
is already validated with its metadata document on start-up.
This prevents end-users from being exposed to unnecessary errors.
2025-01-27 08:44:07 +01:00
Sindre Rødseth Hansen
c07077a148
refactor: extract method for making authCodeURL
...
Co-authored-by: tronghn <trong.huu.nguyen@nav.no >
2025-01-24 10:02:15 +01:00
Trong Huu Nguyen
39207677b5
feat(middleware/logentry): add fields for sec-fetch headers
2025-01-24 09:13:59 +01:00
Trong Huu Nguyen
c147a5a19e
refactor(openid): extract request params for remaining grants, minor cleanups
2025-01-24 08:07:54 +01:00
Trong Huu Nguyen
062e7b09ce
fix(openid/client): prompt parameter is optional
2025-01-24 08:07:54 +01:00
Trong Huu Nguyen
0b32d8839c
test(openid/client): add negative assertions for unwanted parameters
2025-01-24 08:07:52 +01:00
Trong Huu Nguyen
110dd64750
refactor(openid/client): extract authorization code parameters
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-23 12:03:42 +01:00
Trong Huu Nguyen
642457b950
refactor(openid/client): extract oauth request method
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-23 10:17:13 +01:00
Trong Huu Nguyen
ab418c456c
fix(handler/reverseproxy): add nil check for session
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-23 10:16:13 +01:00
Trong Huu Nguyen
837323d728
refactor(mock): use oauth error response for all idp errors
2025-01-23 09:02:19 +01:00
Sindre Rødseth Hansen
ade44f0950
refactor: remove indirection layer for login client
...
Co-authored-by: tronghn <trong.huu.nguyen@nav.no >
2025-01-23 08:48:32 +01:00
Sindre Rødseth Hansen
c442000be4
feat: implement PAR for relying party
...
Fixes #235
Co-authored-by: tronghn <trong.huu.nguyen@nav.no >
2025-01-23 08:48:32 +01:00
Trong Huu Nguyen
6be5a1ebe5
wip: implement PAR for relying party
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-23 08:48:32 +01:00
Trong Huu Nguyen
909060d8fd
feat(mock): implement PAR for identity provider
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-23 08:48:28 +01:00
Trong Huu Nguyen
f2def8d00d
fix(session/data): next refresh time should account for inactivity timeouts
...
The default auto-refresh behaviour occurs 5 minutes before tokens
expire, at the earliest. Without inactivity however, tokens are still
refreshed at any point after this, as long as the session has not ended.
This however, means that refreshes don't occur often enough when inactivity
timeouts are enabled. In practice, the session is only refreshed if a
request is received within the 5 minute leeway window between a token's expiry
and the inactivity timeout.
This commit will apply auto-refreshes at the half-life of the inactivity
timeout instead, so that users' sessions and timeouts are properly
extended on activity.
2025-01-22 15:58:53 +01:00
Trong Huu Nguyen
c1dd4f1177
refactor(handler/login): improve logging when rate limiting
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-22 12:03:01 +01:00
Trong Huu Nguyen
b6bfb817a4
feat(handler/login): add rate limit to prevent redirect loops
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-22 09:46:45 +01:00
Trong Huu Nguyen
64e9167e05
refactor(openid/client): remove indirection layer for login callback
...
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-21 09:39:23 +01:00
Trong Huu Nguyen
75f98debc5
feat(openid/client): validate iss parameter if provider declares authorization_response_iss_parameter_supported
...
Fixes #306 .
Co-authored-by: sindrerh2 <sindre.rodseth.hansen@nav.no >
2025-01-21 09:39:21 +01:00
Sindre Rødseth Hansen
2feb6a3b77
feat: Add option for propagating id_token to upstream app
...
Fixes #315
Co-authored-by: tronghn <trong.huu.nguyen@nav.no >
2025-01-20 13:07:54 +01:00
Trong Huu Nguyen
3a4f656f33
style: make fmt [ci skip]
2025-01-17 14:22:48 +01:00
Trong Huu Nguyen
3e42d001f0
feat(handler/forwardauth): reduce log severity for not-existent sessions
2025-01-17 14:19:00 +01:00
Trong Huu Nguyen
3143940b08
feat: remove feature flags for session refresh
...
These feature flags were enabled by default. We specifically disallowed
the use of automatic refresh with the SSO mode, though this poses some
complexity if using the forward-auth feature.
To simplify configuration and code, we remove the flags in their
entirety as session refresh behaviour is mostly already handled by the
implementation of GetSession() in the handlers. Specifically:
- the Standalone handler needs to refresh sessions when reverse-proxying
to the upstream.
- the SSO server handler needs to refresh sessions only when using the
forward-auth feature. It does not have an upstream to reverse proxy
to.
- the SSO proxy handler is a read-only upstream proxy and does not
possess the ability to refresh sessions itself, though it will
delegate traffic for the session endpoints to the configured SSO server.
Automatic refreshing is thus only disabled when running in SSO mode
without the forward-auth feature.
2025-01-16 10:14:15 +01:00
Trong Huu Nguyen
0258ce7cfd
feat: add handler for forward-auth
2025-01-14 13:44:49 +01:00
Trong Huu Nguyen
c96e457675
test: assert unauthenticated response for session endpoints
2025-01-14 13:33:35 +01:00
Trong Huu Nguyen
724132e51c
test: correct description for secure cookie test
2024-11-06 10:17:11 +01:00
Trong Huu Nguyen
2d5d99f5ee
fix(openid): don't ignore existence check for key mutator
2024-11-06 09:40:56 +01:00
Trong Huu Nguyen
b4b38f30ef
test(openid): add missing token validation cases
2024-11-06 09:27:27 +01:00
Trong Huu Nguyen
3761d40bf6
feat(crypto): log warning for ephemeral encryption key
2024-11-06 08:47:05 +01:00
Trong Huu Nguyen
5c63a2a743
refactor(openid/client): inline unnecessary variables
2024-11-05 22:15:48 +01:00
Trong Huu Nguyen
b7b43e9793
refactor(openid): remove more indirection layers
2024-11-05 21:58:38 +01:00
Trong Huu Nguyen
d2e01b2ead
refactor: consolidate cookie config, correct documentation
2024-11-05 21:24:25 +01:00
Trong Huu Nguyen
bfb4929dc7
feat: allow disabling secure cookies for localhost
...
This is geerally only necessary when using Safari.
Most other browsers respect the Secure attribute when using localhost.
2024-11-05 21:14:14 +01:00
Trong Huu Nguyen
6b46d57422
refactor(openid): consolidate validation and verification of id_tokens
...
Also remove some indirection layers.
2024-11-05 21:10:44 +01:00
Trong Huu Nguyen
e6297750d6
feat(openid): set expected default public JWK algorithm if the OP doesn't set them
...
This allows us to verify signatures without relying on heuristics used
by jws.WithInferAlgorithmFromKey() that may introduce security and
performance implications.
2024-11-05 21:08:46 +01:00
Trong Huu Nguyen
db060a4caf
feat(handler): do not automatically retry token redemption failures
2024-11-05 19:57:48 +01:00
Trong Huu Nguyen
4c2d1f4813
docs(config): clarify description of openid.scopes flag
2024-11-05 11:44:45 +01:00
Trong Huu Nguyen
192b196d3f
refactor(config): inline samesite options
2024-11-05 08:48:46 +01:00
Trong Huu Nguyen
7c2d6d3f71
feat(templates): clean up error page after feedback
2024-10-16 12:46:29 +02:00
Trong Huu Nguyen
a4b832839c
feat(templates): make error page more generic and ✨ responsive ✨
...
Co-authored-by: Morten Lied Johansen <morten.lied.johansen@nav.no >
2024-10-09 08:58:36 +02:00