跳至主要内容

3.3 登入流程

Zitadel OIDC SSO · App JWT(HS256)· 本機管理者帳密 fallback

使用者前端LoginViewBackendZitadel IdP開啟 https://ticket.fmt.com.tw/login點「使用 SSO 登入」GET /api/auth/oidc/login(整頁導轉)簽發 HttpOnly cookie oidc_state(10 分鐘)302 導向 Zitadel authorize URL使用者於 Zitadel 完成登入302 回呼 GET /api/auth/oidc/callback?code=...驗證 state cookie、交換 code、驗證 claims以 email 比對既有使用者(保留 Admin/Deploy_User 角色)找不到則新建,預設 General_User簽發 App JWT(HS256)302 導向 PostLoginURL + "#token=<jwt>"consumeOidcRedirect() 解析 fragment,存 localStorageGET /api/auth/me(Bearer){username, displayName, role}導向首頁「填寫上線單」

圖 5 — Zitadel OIDC SSO 登入流程

本機管理者帳密登入:登入頁預設隱藏,點連結「管理者帳密登入」展開帳號/密碼表單。此路徑僅用於 GKE 環境連不到內網 AD 時的 fallback(透過 LOCAL_ADMIN_USER / LOCAL_ADMIN_PASSWORD 設定),登入成功自動賦予 Admin 角色。除此帳號外,其他任何帳密登入嘗試一律被拒絕(401 USE_SSO,訊息「請使用 SSO 登入」)。

SSO 失敗會導回登入頁並顯示「SSO 登入失敗,請重試或聯絡管理員。」