login sso 1048 - sebiboga/testlink-upgraded GitHub Wiki
- Auto-SSO: when
$tlCfg->authentication['SSO_enabled']istrue, the legacylogin.php?action=loginformwith an emptynoteautomatically runs the configured SSO handshake (WEBSERVER_VARvia$_SERVER[$SSO_uid_field], orCLIENT_CERTIFICATEwhen TLS is present) and redirects on success or falls back to the form with a note on failure. - Bypass:
login.php?ssodisable=1(or any presence ofssodisable) disables SSO for that login and shows the interactive form. - Modern parity (
gui/templates/auth/login.html+api/auth/index.php): the page readsssoEnabled,ssoMethod,ssoOnlyfrom/api/auth/config; if SSO is enabled, nossodisableand nonoteare present, it POSTs to/api/auth/ssoand, on soft failure/skipped, falls back to the form — matching legacy behavior. Thessodisableflag is propagated to the post-login redirect so the bypass is not lost on session expiry.
-
GET /api/auth/config→ includesssoEnabled,ssoMethod(CLIENT_CERTIFICATE/WEBSERVER_VAR/""),ssoOnly. -
POST /api/auth/sso→ runs the same handshake as legacy; returns{status,success,skipped,destination|reason}. Identity source:$_SERVER[…](no body/header input). -
POST /api/auth/login→ acceptsssodisableand includes&ssodisable=1in the returneddestinationwhen set.
New keys added to all locale bundles: auth.ssoInProgress, auth.ssoFailed, auth.ssoUnavailable, auth.ssoDisabled, auth.ssoSkipped.
Refs: #1048