Skip to content

feat(auth): trusted SSO login via forwardAuth-injected identity - #79

Merged
edospadoni merged 2 commits into
mainfrom
sso
Oct 6, 2026
Merged

edospadoni merged 2 commits into
mainfrom
sso

Conversation

@edospadoni

@edospadoni edospadoni commented Sep 2, 2026 •

Copy link
Copy Markdown
Member

Part of NethServer/dev#8142 — pluggable authentication methods with SAML2 Single Sign-On.

Adds an optional trusted-SSO login: when NETHVOICE_MIDDLEWARE_SSO_TRUSTED_SECRET is set, a login request carrying the pre-authenticated username in the configured header (default Remote-User, injected by Traefik forwardAuth from the SAML2 SP) is accepted without a user password; the middleware forwards X-SSO-User/X-SSO-Secret to the V1 server, which mints the token.

  • dedicated no-strip mint endpoint POST /api/sso-login, reachable only through the Traefik forwardAuth guard (a single set-route is enough, no custom Traefik config)
  • separate NETHVOICE_MIDDLEWARE_SSO_TOKEN_KEY for legacy-token derivation, distinct from the mint-authorization secret (compatible fallback)
  • configurable JWT lifetime (NETHVOICE_MIDDLEWARE_JWT_TIMEOUT_HOURS, default unchanged)

Off by default: without the secret nothing changes.

edospadoni added a commit to nethesis/ns8-nethvoice that referenced this pull request Sep 2, 2026
Wire the module build to the SSO feature work (NethServer/dev#8142):
- nethcti-server: checkout commit fa98e63d (branch ns8-sso,
  nethesis/nethcti-server#357)
- nethcti-middleware: image tag sso (nethesis/nethcti-middleware#79)
- nethvoice-cti: image tag sso (nethesis/nethvoice-cti#558)

To be repointed to release tags before merge.
@edospadoni
edospadoni force-pushed the sso branch 2 times, most recently from d9803c7 to 246d596 Compare September 3, 2026 07:28
Add an optional trusted-SSO login: when NETHVOICE_MIDDLEWARE_SSO_TRUSTED_SECRET
is set, a login request carrying the pre-authenticated username in the
configured header (default Remote-User, injected by Traefik forwardAuth from
the SAML2 SP) is accepted without a user password; the middleware forwards
X-SSO-User/X-SSO-Secret to the V1 server which mints the token.

- dedicated no-strip mint endpoint POST /api/sso-login, reachable only
  through the Traefik forwardAuth guard (single set-route, no custom
  Traefik config needed)
- separate NETHVOICE_MIDDLEWARE_SSO_TOKEN_KEY for legacy-token derivation,
  distinct from the mint-authorization secret (fallback for compatibility)
- configurable JWT lifetime (NETHVOICE_MIDDLEWARE_JWT_TIMEOUT_HOURS,
  default unchanged at 336h)

Disabled by default: without the secret nothing changes.
@edospadoni
edospadoni marked this pull request as ready for review October 6, 2026 07:36
@edospadoni
edospadoni merged commit 8e230e5 into main Oct 6, 2026
4 checks passed
@edospadoni
edospadoni deleted the sso branch October 6, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant