JQuery教學手冊

jQuery 教學手冊 版本:jQuery 4.0+ 適用對象:具備 JavaScript 基礎的工程師 文件性質:企業內部技術文件 最後更新:2026 年 2 月 目錄 第一部分:基礎概念 jQuery 簡介與定位 1.1 jQuery 的核心理念 1.2 為何在現代系統中仍需要 jQuery 1.3 jQuery 與原生 JavaScript 的差異 1.4 jQuery 4.0 重大變更 環境準備與版本建議 2.1 jQuery 版本說明 2.2 CDN 安裝方式 2.3 本地安裝方式 2.4 專案目錄結構建議 2.5 與 HTML5 / ES6 的搭配 2.6 瀏覽器相容性 jQuery 核心語法與觀念 3.1 $() 選擇器原理 3.2 常用選擇器 3.3 Traversing(遍歷) 3.4 Chaining 設計模式 3.5 jQuery Object vs DOM Object 第二部分:核心操作 DOM 操作實戰 ...

February 4, 2026 · 30 min · 6189 words · Eric Cheng

C++語言教學手冊

C++ 語言教學手冊 版本: 1.0 最後更新: 2026年2月 適用對象: 主機系統開發團隊 技術層級: 基礎至進階 目錄 前言與學習指引 1.1 本手冊目的 1.2 學習路徑圖 1.3 主機系統開發的特殊考量 C++ 基礎語法與概念 2.1 程式結構 2.2 基本資料型別 2.3 變數與常數 2.4 運算子 2.5 控制流程 2.6 函式 2.7 實務案例:設定檔解析器 2.8 注意事項與最佳實踐 物件導向程式設計 (OOP) 3.1 類別基礎 3.2 繼承 3.3 多型 3.4 抽象類別與介面 3.5 組合優於繼承 3.6 實務案例:訂單處理系統 3.7 注意事項與最佳實踐 記憶體管理 4.1 記憶體模型概觀 4.2 指標基礎 4.3 智慧指標 4.4 RAII 原則 4.5 記憶體效能優化 4.6 實務案例:連線池 4.7 注意事項與最佳實踐 STL 標準模板庫 ...

February 3, 2026 · 91 min · 19179 words · Eric Cheng

Cobol教學手冊(2)

Cobol教學手冊(2) 版本:2.0 最後更新:2026 年 2 月 適用對象:具備基礎程式設計經驗的開發人員、需要轉換到主機 COBOL 開發的工程師、團隊新進成員 📚 目錄 第一章:COBOL 概述 1.1 COBOL 歷史與發展 1.2 COBOL 在現代企業系統中的角色 1.3 COBOL 與其他語言的比較 1.4 主機環境介紹 第二章:開發環境設置 2.1 主機連線與登入 2.2 TSO/ISPF 基本操作 2.3 JCL 基礎 2.4 開發工具介紹 2.5 現代開發環境設置 第三章:COBOL 語法基礎 3.1 程式結構 3.2 資料型別與變數宣告 3.3 PICTURE 子句詳解 3.4 LEVEL 編號系統 第四章:基本程式設計 4.1 資料處理 4.2 條件判斷 4.3 迴圈控制 4.4 字串處理 第五章:檔案處理 5.1 循序檔案(Sequential File) 5.2 索引檔案(INDEXED File / VSAM KSDS) 5.3 相對檔案(Relative File) 5.4 檔案操作 第六章:進階主題 6.1 COPYBOOK 的使用與管理 6.2 副程式呼叫 6.3 資料庫存取 6.4 CICS 交易處理基礎 6.5 錯誤處理與除錯技巧 第七章:最佳實踐 7.1 程式碼撰寫規範 7.2 命名慣例 7.3 註解撰寫標準 7.4 效能優化建議 7.5 維護性考量 第八章:實戰範例 8.1 簡單報表程式 8.2 檔案更新程式 8.3 批次處理程式 8.4 線上交易程式(CICS) 第九章:故障排除 9.1 常見編譯錯誤 9.2 執行時期錯誤 9.3 除錯技巧與工具 附錄 附錄 A:COBOL 保留字清單 附錄 B:常用 JCL 範例 附錄 C:錯誤訊息對照表 附錄 D:學習資源與參考文獻 檢查清單 第一章:COBOL 概述 學習目標 完成本章後,您將能夠: ...

February 3, 2026 · 51 min · 10862 words · Eric Cheng

C語言教學手冊

C 語言教學手冊 版本:1.0 最後更新:2026 年 2 月 適用對象:具備基礎程式設計概念,需進行系統層級開發的工程師 目錄 第一章:C 語言基礎 1.1 C 語言概述與開發環境 1.2 資料型別與變數 1.3 運算子與表達式 1.4 控制流程 1.5 函數定義與呼叫 第二章:記憶體管理 2.1 指標基礎與進階應用 2.2 動態記憶體配置 2.3 記憶體洩漏預防 2.4 常見陷阱與最佳實踐 第三章:資料結構 3.1 陣列與字串處理 3.2 結構體與聯合 3.3 鏈結串列 3.4 堆疊與佇列實作 第四章:系統程式設計 4.1 檔案 I/O 操作 4.2 錯誤處理機制 4.3 多檔案專案組織 4.4 Makefile 使用 第五章:進階主題 5.1 函數指標 5.2 前置處理器與巨集 5.3 位元操作 5.4 多執行緒基礎 第六章:開發規範與最佳實踐 6.1 命名規範 6.2 程式碼風格指南 6.3 除錯技巧 6.4 效能優化建議 附錄:檢查清單 第一章:C 語言基礎 1.1 C 語言概述與開發環境 1.1.1 為什麼選擇 C 語言 C 語言自 1972 年由 Dennis Ritchie 在貝爾實驗室開發以來,至今仍是系統程式設計的首選語言: ...

February 3, 2026 · 69 min · 14526 words · Eric Cheng

Cobol教學手冊

COBOL 教學手冊 版本:1.0 最後更新:2026 年 2 月 適用對象:新進工程師、有現代語言背景但未接觸主機系統的工程師 定位:企業內部實務教學手冊 目錄 第一章:COBOL 與主機系統概覽 1.1 為什麼 COBOL 至今仍被大量使用 1.2 COBOL 在大型主機系統中的角色 1.3 Batch 系統 vs Online 系統(CICS) 1.4 COBOL 與資料庫(DB2)/ 檔案系統的關係 第二章:COBOL 程式基本結構 2.1 COBOL Program Structure 總覽 2.2 IDENTIFICATION DIVISION 2.3 ENVIRONMENT DIVISION 2.4 DATA DIVISION 2.5 PROCEDURE DIVISION 2.6 基本程式範例(可編譯) 第三章:資料型態與資料結構 3.1 PIC 語法完整說明 3.2 數值型、文字型、符號位(SIGN) 3.3 REDEFINES 與 OCCURS 3.4 Working-Storage vs Linkage Section 3.5 常見錯誤與陷阱 第三章小結 第四章:檔案處理(主機實務重點) 4.1 Sequential File 基本操作 4.2 READ / WRITE / OPEN / CLOSE 4.3 EOF 控制寫法 4.4 檔案 Layout(Record Layout)設計原則 4.5 實務範例(Batch 檔案讀寫) 第五章:批次程式(Batch Job)設計 5.1 Batch 程式生命週期 5.2 Return Code(RC)設計原則 5.3 程式錯誤處理與異常控制 5.4 批次程式撰寫範例 5.5 可維運的 Batch 設計 Best Practice 第六章:與資料庫(DB2)互動 6.1 Embedded SQL 基本概念 6.2 SELECT / INSERT / UPDATE / DELETE 範例 6.3 SQLCODE / SQLSTATE 處理方式 6.4 資料一致性的觀念(Commit / Rollback) 第七章:COBOL 程式設計規範 7.1 命名規則(Program / Variable / Paragraph) 7.2 排版與可讀性原則 7.3 註解撰寫建議 7.4 避免「維護地獄」的寫法 7.5 常見 Anti-pattern 第八章:舊系統維護與現代化觀點 8.1 如何「讀懂」舊 COBOL 程式 8.2 如何安全修改老程式 8.3 與現代系統整合概念 8.4 COBOL 在未來系統中的定位 第九章:新手常見問題(FAQ) Q1:為什麼 COBOL 看起來這麼冗長? Q2:為什麼不把 COBOL 改成 Java? Q3:初學者最容易踩的雷? Q4:如何有效學習與除錯 COBOL? Q5:主機環境和 PC 開發有什麼不同? Q6:COBOL 還有未來嗎? 附錄 A:COBOL 開發檢查清單(Checklist) 程式開發前檢查 程式撰寫檢查 檔案處理檢查 資料庫處理檢查 錯誤處理檢查 測試前檢查 上線前檢查 附錄 B:常用 COBOL 關鍵字速查表 資料定義關鍵字 流程控制關鍵字 資料操作關鍵字 檔案操作關鍵字 附錄 C:SQLCODE 常見錯誤碼對照表 成功與警告代碼 常見錯誤代碼 錯誤處理範例 結語 第一章:COBOL 與主機系統概覽 1.1 為什麼 COBOL 至今仍被大量使用 COBOL 的歷史地位 COBOL(COmmon Business-Oriented Language)誕生於 1959 年,是專為商業應用設計的程式語言。至今已超過 65 年歷史,但仍在全球金融、保險、政府機構中扮演核心角色。 ...

February 3, 2026 · 39 min · 8149 words · Eric Cheng

Spring Boot 4.x升版教學

Spring Boot 4.x升版教學 文件資訊 作者: 技術團隊 版本: 1.0 更新日期: 2026-01-30 目標對象: 新進開發同仁、Spring Boot 初學者、認證考試準備者 適用對象:已具備 Spring Boot 2.x / 3.x 實務經驗的工程師 目標:快速理解 Spring Boot 4.x 變更重點、升版策略與實務調整方式 目錄 第一章:Spring Boot 4.x 概覽 1.1 升版背景與目的 1.2 Spring Boot 4.x 的設計目標與核心理念 1.3 與 Spring Boot 3.x 的定位差異 1.4 Spring 生態系版本對齊說明 1.5 實務案例與注意事項 第二章:Spring Boot 3.x → 4.x 升版總覽 2.1 升版背景與目的 2.2 官方升版策略說明 2.3 升版風險評估清單(Checklist) 2.4 Breaking Changes 快速一覽 2.5 實務建議與最佳實踐 第三章:Java 與 JVM 版本要求變更 3.1 升版背景與目的 3.2 Spring Boot 4.x 支援的 Java 版本 3.3 為何淘汰舊版 Java 3.4 對企業系統的實際影響 3.5 認證考試常見 Java 升版觀念 3.6 實務案例與注意事項 第四章:Spring Framework 核心變更 4.1 升版背景與目的 4.2 Spring Framework 主要破壞性變更 4.3 Bean Lifecycle 與 Context 初始化差異 4.4 常見相容性問題與解法 4.5 實務建議與最佳實踐 4.6 認證考試常考觀念 第五章:Spring Web / REST API 變更 5.1 升版背景與目的 5.2 Spring MVC / WebFlux 行為調整 5.3 Request / Response 綁定與驗證差異 5.4 錯誤處理(Exception Handling)最佳化建議 5.5 WebFlux 相關變更 5.6 實務案例與注意事項 第六章:Spring Security 重大調整 6.1 升版背景與目的 6.2 Security 預設行為變更 6.3 Authorization / Authentication 架構調整 6.4 舊版設定方式的淘汰與替代方案 6.5 升版時最容易踩雷的 Security 問題 6.6 認證考試常考觀念 6.7 實務案例與注意事項 第七章:Spring Data 與資料存取層 7.1 升版背景與目的 7.2 JPA / JDBC / R2DBC 行為差異 7.3 Repository API 是否有破壞性調整 7.4 交易管理(Transaction)注意事項 7.5 實務案例與注意事項 第八章:設定檔與組態管理變更 8.1 升版背景與目的 8.2 application.yml / properties 行為變化 8.3 Auto Configuration 調整重點 8.4 Cloud Native 設定建議 8.5 實務建議與最佳實踐 第九章:Observability 與 Monitoring 9.1 升版背景與目的 9.2 Logging、Metrics、Tracing 新趨勢 9.3 與 OpenTelemetry / Micrometer 的整合方向 9.4 企業實務監控建議 9.5 實務案例與注意事項 第十章:測試與品質保證 10.1 升版背景與目的 10.2 Spring Boot Test 行為變更 10.3 測試失敗常見原因 10.4 升版時的測試策略 10.5 實務案例與注意事項 第十一章:企業升版實戰流程 11.1 升版前準備事項 11.2 PoC 與試點升級策略 11.3 Rollback 與風險控管 11.4 CI/CD 升版建議流程 11.5 實務案例與注意事項 第十二章:認證考試重點整理 12.1 Spring Boot 4.x 相關考試重點 12.2 常見陷阱題與觀念澄清 12.3 適合考前複習的章節整理 12.4 模擬試題 附錄:升版檢查清單(Checklist) A. 升版前準備 B. 程式碼修改 C. 部署上線 D. 快速參考 版本歷程 參考資源 第一章:Spring Boot 4.x 概覽 1.1 升版背景與目的 Spring Boot 4.x 代表 Spring 生態系的下一個重大里程碑,主要目標包括: ...

January 30, 2026 · 33 min · 6925 words · Eric Cheng

雲端原生運算生態系教學手冊

雲端原生運算生態系教學手冊 版本:1.0 最後更新:2026 年 1 月 適用對象:資深工程師、系統架構師、SRE / DevOps 工程師、技術主管 定位:企業內部標準教材 文件維護:內部技術團隊 使用情境:大型企業 / 銀行內部系統 最後更新: 2026年1月30日 適用於: 雲端原生運算生態系 Created by: Eric Cheng 目錄 1. 雲端原生運算概論 1.1 什麼是 Cloud Native 1.2 與傳統架構的差異 1.3 CNCF 的角色與定位 1.4 CNCF Landscape 全景圖說明 1.5 雲端原生帶來的價值與挑戰 2. 雲端原生系統整體架構 2.1 典型雲端原生參考架構 2.2 核心分層說明 2.2.1 基礎設施層(Infrastructure Layer) 2.2.2 容器層(Container Runtime Layer) 2.2.3 編排層(Orchestration Layer) 2.2.4 平台層(Platform Layer) 2.2.5 可觀測性(Observability Layer) 2.2.6 安全層(Security Layer) 2.3 微服務與事件驅動架構 3. CNCF 核心專案分類與說明 3.1 Container & Runtime 3.2 Orchestration & Management 3.3 Networking 3.4 Service Mesh 3.5 API Gateway & Ingress 3.6 Observability 3.7 Logging 3.8 Security 3.9 CI/CD 3.10 Storage 3.11 Messaging & Streaming 4. 系統安裝與基礎環境建置 4.1 雲端原生平台建置方式比較 4.2 Managed Kubernetes 比較 4.3 Self-Managed Kubernetes 安裝(kubeadm) 4.4 必要 Add-ons 安裝建議 4.5 開發、測試、正式環境差異設計 5. 系統設定與組態管理 5.1 Kubernetes Namespace 與 RBAC 設計 5.2 ConfigMap / Secret 使用方式 5.3 Helm 與 Kustomize 的角色 5.4 GitOps 架構(以 Argo CD 為例) 5.5 環境參數與設定管理策略 6. 雲端原生系統使用方式 6.1 應用程式容器化流程 6.2 Deployment / StatefulSet 使用情境 6.3 Service / Ingress / Gateway 設計 6.4 自動擴縮(HPA / VPA) 6.5 Rolling Update 與 Zero Downtime Deployment 7. 系統維運與可觀測性 7.1 Metrics、Logs、Traces 的角色 7.2 Prometheus + Grafana 架構 7.3 OpenTelemetry 導入方式 7.4 告警(Alerting)設計原則 7.5 SRE 常用監控指標(SLI / SLO / SLA) 8. 系統安全與治理 8.1 雲端原生安全風險概覽 8.2 Kubernetes Security Best Practices 8.3 Image Security 與 Supply Chain Security 8.4 Policy as Code(OPA / Kyverno) 8.5 零信任(Zero Trust)在雲端原生的應用 9. 系統升級與版本管理 9.1 Kubernetes 升級策略 9.2 CNCF 元件相容性考量 9.3 滾動升級與回滾機制 9.4 升級風險與因應方式 10. 應用系統如何串接雲端原生平台 10.1 傳統系統(Legacy System)上雲策略 10.2 API-based 系統整合 10.3 Event-driven 架構串接方式 10.4 Database、MQ、外部系統整合模式 10.5 金融/企業系統常見整合案例 11. 企業實務建議與最佳實踐 11.1 雲端原生導入常見地雷 11.2 組織與流程調整建議 11.3 開發、維運、資安協作模式 11.4 技術選型建議 11.5 成熟度模型(Cloud Native Maturity Model) 12. 檢查清單(Checklist) 12.1 叢集建置檢查清單 12.2 應用部署檢查清單 12.3 可觀測性檢查清單 12.4 安全檢查清單 12.5 維運檢查清單 附錄 附錄 A:常用 kubectl 指令速查 附錄 B:參考資源 1. 雲端原生運算概論 1.1 什麼是 Cloud Native Cloud Native(雲端原生) 是一種建構和運行應用程式的方法,充分利用雲端運算模型的優勢。根據 CNCF(Cloud Native Computing Foundation)的定義: ...

January 30, 2026 · 30 min · 6212 words · Eric Cheng

Kubernetes教學手冊

Kubernetes教學手冊 項目 內容 文件版本 2.0(企業標準技術白皮書版) 最後更新 2026-10-01 版本基準 Kubernetes v1.37.1(主線,所有範例的基準);1.34/1.35 的差異以 📌 1.34/1.35 差異 標示 周邊元件基準 containerd 2.4.1、etcd 3.7(kubeadm 預設)、Gateway API v1.6.2、Helm 4.3.0、Cilium 1.20.2/Calico 3.32.2、Prometheus 3.15、Argo CD 3.5 適用對象 後端工程師、DevOps/SRE、平台工程師、系統架構師、資安人員 定位 企業內部 Kubernetes 標準教材與導入參考 文件維護 內部技術團隊(Created by Eric Cheng) 🆕 v2.0 改版重點 版本基準從 1.29 改為 1.37.1:1.29 已於 2025-02-28 EOL。本版依 Kubernetes 1.37.1 原始碼與官方文件逐章查證,並註記 1.34/1.35 的差異。 重大生態系變化:Ingress NGINX 已於 2026-03-24 退役(第 4 章並列 Ingress 與 Gateway API,並提供遷移指南);cgroup v1 自 1.35 起預設拒絕啟動、1.36 起必須 containerd 2.x(第 2、11 章);Bitnami 免費映像下架、Helm 4 發布(第 12 章)。 修正 v1.0 的錯誤與過時內容:共 41 項,完整清單見附錄 D.2。 新增章節:第 8 章「安全強化」、第 15 章「疑難排解手冊」、第 16 章「1.29 → 1.37 版本演進」,以及附錄 B–F。 每章結尾新增「💡 本章實務建議」;新增段落標示 🆕,更正段落標示 ⚠️。 閱讀指引 讀者角色 建議閱讀順序 重點章節 初次接觸 Kubernetes 的工程師 1 → 3 → 4 → 5 → 7 1.3 核心物件概念、3.3 Deployment 與 ReplicaSet 後端/應用開發者 3 → 5 → 6 → 13 → 14 6.2 Health Check、13.5 優雅關機 平台/SRE 工程師 2 → 9 → 10 → 11 → 15 10.2 etcd 備份與還原、11.4 破壞性變更檢查 系統架構師 1 → 4 → 10.1 → 14 → 16 4.7 Gateway API、14.3 企業環境實務建議 資安人員 8 → 4.9 → 12.3 → 14.3 8.5 Admission 控制、8.10 供應鏈安全 從舊版升級的團隊 16 → 11 → 4.8 16.3 建議升級路徑、4.8 Ingress NGINX 遷移 📌 標示說明:🆕 v2.0 新增;⚠️ v2.0 更正或重要警示;📌 補充說明與版本差異;✅ 建議做法。功能成熟度標示為「x.y GA/Beta/Alpha」,以 Kubernetes 官方 feature gate 文件為準。 ...

January 30, 2026 · 98 min · 20736 words · Eric Cheng

Kong API Gateway教學手冊

Kong API Gateway教學手冊 項目 內容 文件版本 2.0(企業標準技術白皮書版) 最後更新 2026-09-30 版本基準(雙軌) Kong Gateway OSS 3.9.3(開源最終發行版,所有實作範例的基準)/Kong Gateway Enterprise 3.16.0.0(最新版)與 3.14 LTS 周邊工具基準 decK 1.67.0、Kong Operator 2.3.x、Kong Ingress Controller 3.5 LTS、Helm chart kong/kong 3.4.x 適用對象 後端工程師、系統架構師、平台/DevOps/SRE 工程師、資安人員 定位 企業內部 API Gateway 標準教材與導入參考 文件維護 內部技術團隊(Created by Eric Cheng) 🆕 v2.0 改版重點 版本基準改為雙軌:Kong 自 3.10 起不再發布 OSS 的 Docker image 與安裝套件,OSS 最後一版是 3.9.3。Enterprise 已經推進到 3.16,並在 3.15 起改成「沒有授權時 Admin API 唯讀」。本版把所有可以免授權執行的範例統一在 OSS 3.9.3 上,Enterprise 的差異集中在第 1.4、10、11、13 章說明。 修正 v1.0 的錯誤設定:已淘汰的 redis_host、KongIngress、config.endpoint(OpenTelemetry)、flush_timeout(HTTP Log)、decK 舊命令、Plugin 優先序規則等,完整清單請見附錄 D.2。 新增章節:第 11 章「安全強化」、第 13 章「AI Gateway 與 MCP」、附錄 C「常見問答」、附錄 D「版本紀錄」、附錄 E「查證紀錄」。 每章結尾新增「💡 本章實務建議」;新增的段落標示為 🆕,更正的段落標示為 ⚠️。 閱讀指引 讀者角色 建議閱讀順序 重點章節 初次接觸 Kong 的工程師 1 → 3 → 4 → 5 → 6 3.2 常見部署方式、5.1 建立第一個 API 系統架構師 1 → 2 → 10 → 11 → 12 1.4 產品矩陣與授權變化、2.2 部署拓樸 平台/SRE 工程師 3 → 8 → 9 → 10 → 15 9.1 decK 與 APIOps、10.4 升級策略 資安人員 6 → 11 → 15.4 11.1 Admin API 保護 AI 平台團隊 1.5 → 13 13.2 以 OSS AI Proxy 串接 LLM 📌 標示說明:OSS 表示 Kong Gateway 開源版(3.9.3)即可使用;EE 表示需要 Kong Gateway Enterprise 授權或 Konnect;DB-less ✅/❌ 表示該 Plugin 是否支援 DB-less 模式。 ...

January 30, 2026 · 70 min · 14808 words · Eric Cheng

Keycloak教學手冊

Keycloak教學手冊 文件資訊 項目 內容 文件版本 2.0 最後更新 2026-09-30 版本基準 Keycloak 26.7.4(2026-09-16 發佈)、keycloak-js 26.2.x(獨立發版)、Spring Boot 4.1 / Spring Security 7.1 文件定位 企業標準技術白皮書/內部標準教材 適用對象 後端工程師、前端工程師、系統架構師、DevOps/SRE、資安人員、稽核人員 使用情境 大型企業、金融業(銀行/證券/保險)內部與對外系統之身分與存取管理 前一版本 1.0(2026-01-29,適用 Keycloak 24.x/25.x) 文件維護 內部技術團隊 Created by Eric Cheng 📌 v2.0 改版重點:全面對齊 Keycloak 26.7;修正 v1.0 中已被移除或棄用的設定(KEYCLOAK_ADMIN、KC_PROXY、hostname v1、KC_CACHE_STACK=kubernetes 等);新增 Grant Type 選擇、BFF、Organizations、Passkeys、DPoP、FAPI 2.0、Token Exchange V2、可觀測性、Rolling Update、設定即程式碼、MCP/AI Agent 授權等章節。完整差異見 附錄 D 版本紀錄,查證依據見 附錄 E 查證紀錄。 閱讀指引 讀者角色 建議閱讀章節 初次接觸 Keycloak 第一章 → 第二章 → 第三章 3.1 → 第四章 前端/後端開發人員 第二章 2.3–2.6 → 第五章 → 第六章 架構師 第一章 1.6–1.7 → 第二章 → 第八章 → 第十章 → 第十二章 DevOps/SRE 第三章 → 第七章 → 第八章 8.1 → 第九章 → 第十一章 資安/稽核人員 第一章 1.7 → 第八章 → 第七章 7.2 → 附錄 A 本文慣例 標記 意義 > 🆕 **v2.0 新增** 本版新增的章節或內容 > ⚠️ **v2.0 更正** 修正 v1.0 錯誤或已過時的內容 > ⚠️ **實務注意** 容易出錯、需特別留意之處 > 💡 **建議** 企業實務建議做法 Supported/Preview/Experimental 依 Keycloak 官方功能成熟度分類;Preview 與 Experimental 功能不建議直接用於正式環境 目錄 文件資訊 閱讀指引 本文慣例 第一章:Keycloak 簡介與核心概念 1.1 Keycloak 是什麼? 1.1.1 核心功能 1.1.2 適用場景 1.1.3 與其他 IAM 方案比較 1.2 IAM、SSO、OAuth 2.0、OIDC 關係說明 1.2.1 名詞解釋 1.2.2 OAuth 2.0 vs OIDC 差異 1.3 Token 類型說明 1.3.1 詳細說明 1.3.2 Access Token 結構範例(JWT) 1.4 核心概念:Realm、Client、User、Role、Group 1.4.1 概念說明 1.4.2 Realm 設計原則 1.5 Authentication vs Authorization 1.5.1 實務流程 1.6 版本發佈節奏與支援策略 1.6.1 版本編號與發佈節奏 1.6.2 執行環境需求 1.6.3 功能成熟度分類 1.7 標準協定地圖 1.8 💡 本章實務建議 第二章:系統架構設計 2.1 Keycloak 在企業系統中的角色 2.1.1 責任分工 2.2 整合架構說明 2.2.1 與 Web 前端(SPA)整合 2.2.2 與 Backend API 整合 2.2.3 與 API Gateway 整合 2.2.4 與 AD / LDAP 整合 2.2.5 與外部身分提供者(Identity Brokering)整合 2.2.6 與行動 App/原生應用整合 2.3 Token Flow(Authorization Code Flow + PKCE) 2.4 Grant Type 選擇矩陣 2.5 PKCE(Proof Key for Code Exchange)深入 2.5.1 運作原理 2.5.2 產生範例 2.5.3 Keycloak 設定 2.6 BFF 模式(Backend for Frontend) 2.7 Organizations 多租戶(B2B) 2.8 💡 本章實務建議 第三章:Keycloak 安裝與部署 3.1 單機部署(Docker) 3.1.1 開發/測試環境快速啟動 3.1.2 使用 Docker Compose 建立開發環境(含 PostgreSQL) 3.2 生產環境部署建議 3.2.1 資料庫選擇 3.2.2 建置最佳化映像(Optimized Image) 3.2.3 生產環境 Docker Compose 3.2.4 Nginx Reverse Proxy 設定 3.2.5 對外公開路徑建議 3.2.6 TLS 部署模式 3.3 基本啟動參數與環境變數 3.3.1 設定來源與優先順序 3.3.2 常用選項 3.3.3 Hostname v2 設定情境 3.3.4 啟動模式與常用指令 3.4 Admin Console 存取方式 3.4.1 存取 URL 3.4.2 首次登入與管理員治理 3.4.3 重要端點 3.5 管理介面(Port 9000)與健康檢查 3.6 Kubernetes Operator 部署 3.6.1 安裝 Operator 3.6.2 Keycloak CR 範例 3.7 💡 本章實務建議 第四章:Keycloak 基本設定 4.1 Realm 建立與規劃原則 4.1.1 建立 Realm 步驟 4.1.2 Realm 設計原則 4.1.3 企業 Realm 規劃範例 4.1.4 新 Realm 上線前必設項目 4.2 Client 類型說明 4.2.1 Client 類型比較 4.2.2 Client 驗證方式(Client Authenticator) 4.2.3 建立 Client 步驟 4.2.4 Confidential Client 設定範例(BFF/伺服器端 Web) 4.2.5 Service Account Client 設定範例(批次/服務對服務) 4.2.6 Public Client 設定範例(SPA/行動 App) 4.3 Redirect URI 與 Web Origin 設定 4.3.1 Redirect URI 設定原則 4.3.2 Web Origin 設定(CORS) 4.3.3 Post Logout Redirect URI 4.4 User、Role、Group 設定策略 4.4.1 User 管理 4.4.2 建立使用者 4.4.3 Group 階層設計 4.5 Realm Role vs Client Role 使用時機 4.5.1 使用時機比較 4.5.2 Composite Role 與預設角色 4.5.3 最佳實務 4.6 Client Scopes 與 Protocol Mapper 4.6.1 Default 與 Optional Scope 4.6.2 常用 Protocol Mapper 4.6.3 Audience 設計(重要) 4.6.4 Full Scope Allowed 與 Token 瘦身 4.7 宣告式 User Profile 4.8 Authentication Flow 與 Required Actions 4.8.1 內建 Flow 4.8.2 自訂 Browser Flow 範例(帳密 + 強制 OTP/Passkey) 4.8.3 Required Actions 4.9 Fine-Grained Admin Permissions V2 4.10 💡 本章實務建議 第五章:應用系統如何串接 Keycloak 5.1 Web 前端串接(OIDC) 5.1.1 使用 keycloak-js 官方套件 5.1.2 初始化設定 5.1.3 Vue 3 整合範例 5.1.4 React 整合範例 5.1.5 API 呼叫時帶入 Token 5.2 Backend API 驗證 Token 機制 5.2.1 Token 驗證流程 5.2.2 驗證方式比較 5.2.3 JWKS 快取與金鑰輪替 5.3 Spring Boot 整合 5.3.1 依賴設定(Maven) 5.3.2 應用程式設定 5.3.3 Security 設定類別 5.3.4 Keycloak 角色轉換器 5.3.5 Controller 範例 5.3.6 呼叫下游服務(Client Credentials) 5.4 Node.js 整合 5.5 常見錯誤與除錯方式 5.5.1 常見錯誤對照表 5.5.2 除錯技巧 5.6 細粒度授權(Authorization Services) 5.7 Admin REST API 與 kcadm.sh 5.7.1 以 Service Account 呼叫 Admin REST API 5.7.2 kcadm.sh(Admin CLI) 5.7.3 Java Admin Client 5.8 💡 本章實務建議 第六章:系統使用情境說明 6.1 SSO 登入流程實例 6.1.1 SSO 實務注意事項 6.2 使用者角色異動後的影響 6.2.1 角色變更生效時機 6.2.2 企業實務建議 6.3 Token 生命週期與 Refresh 機制 6.3.1 時效設定與預設值 6.3.2 Offline Token 6.3.3 前端 Token Refresh 實作 6.4 Logout 流程(Single Logout) 6.4.1 Logout 類型 6.4.2 RP-Initiated Logout 6.4.3 Back-Channel Logout(建議) 6.5 Step-up 認證與認證強度(ACR/LoA) 6.6 服務間呼叫與 Token Exchange 6.6.1 選擇方式 6.6.2 Standard Token Exchange 設定 6.7 💡 本章實務建議 第七章:系統維運與管理 7.1 使用者與權限管理最佳實務 7.1.1 使用者管理原則 7.1.2 JML 流程與 Keycloak 對應 7.1.3 權限審核 Checklist 7.2 Audit Log 與事件追蹤 7.2.1 啟用事件記錄 7.2.2 重要事件類型 7.2.3 事件查詢 API 7.2.4 將事件送往 SIEM 7.3 Keycloak Log 說明 7.3.1 Log 等級與輸出設定 7.3.2 常見 Log 訊息解讀 7.3.3 Log 整合建議 7.4 可觀測性:Metrics 與 Tracing 7.4.1 Metrics 7.4.2 Tracing(OpenTelemetry) 7.5 Workflows 與 SCIM 7.5.1 Workflows(26.6 起正式支援) 7.5.2 SCIM API(26.7 Preview) 7.6 常見營運問題 7.6.1 問題 1:使用者無法登入 7.6.2 問題 2:Token 驗證失敗 7.6.3 問題 3:效能問題 7.6.4 問題 4:Hostname 或 Proxy 設定錯誤 7.6.5 問題 5:升級後管理 API 或整合失效 7.7 💡 本章實務建議 第八章:高可用與資安建議 8.1 Keycloak HA 架構概念 8.1.1 部署架構選擇 8.1.2 快取與 Session 8.1.3 容量規劃(官方 Sizing 指南) 8.1.4 HA 部署要點 8.2 Session 與 Token 設計考量 8.2.1 Session 設計原則 8.2.2 Refresh Token Rotation 8.3 HTTPS 與憑證管理 8.3.1 HTTPS 部署方式 8.3.2 憑證與信任庫設定 8.3.3 憑證管理建議 8.4 防止 Token 洩漏的設計原則 8.4.1 Token 儲存原則 8.4.2 安全設計 Checklist 8.5 與企業資安政策的搭配方式 8.5.1 密碼政策(依 NIST SP 800-63B-4) 8.5.2 密碼雜湊 8.5.3 暴力破解防護 8.5.4 Security Headers 8.5.5 MFA:OTP、Passkeys 與備援碼 8.6 進階 Token 安全:DPoP、PAR 與 FAPI 2.0 8.6.1 DPoP(RFC 9449,26.4 起支援) 8.6.2 PAR(RFC 9126) 8.6.3 Client Policies 與 FAPI 2.0 8.7 機密管理與 FIPS 8.7.1 Vault 整合 8.7.2 FIPS 140 模式 8.8 資安公告與漏洞管理 8.9 💡 本章實務建議 第九章:系統升級與版本管理 9.1 升級前檢查事項 9.1.1 升級前 Checklist 9.1.2 版本資訊查詢 9.2 升級策略:Rolling Update 與 Recreate 9.2.1 使用 update-compatibility 判斷 9.3 資料庫相容性注意事項 9.3.1 資料庫升級流程 9.3.2 Schema 遷移方式 9.3.3 26.7 資料庫相關變更 9.4 版本變更與設定風險 9.4.1 重大架構變更歷史 9.4.2 26.6 → 26.7.4 破壞性與行為變更 9.4.3 已棄用、將移除的功能 9.4.4 設定遷移建議 9.5 Rollback 建議策略 9.5.1 Rollback 計畫 9.5.2 時間評估 9.6 💡 本章實務建議 第十章:最佳實務與設計建議 10.1 Realm / Client 命名規範 10.1.1 命名規範建議 10.2 多系統共用 Keycloak 的設計原則 10.2.1 架構設計 10.2.2 Token 內容標準 10.3 銀行或大型企業常見踩雷點 10.3.1 踩雷案例 1:Token 過大 10.3.2 踩雷案例 2:AD 整合效能差 10.3.3 踩雷案例 3:Refresh Token 被盜用 10.3.4 踩雷案例 4:升級後前端登入失敗 10.3.5 踩雷案例 5:Hostname 設定錯誤導致 iss 不一致 10.3.6 踩雷案例 6:透過 Mapper 帶入的管理角色失效 10.3.7 踩雷案例 7:第三方 Cookie 限制導致 SSO 狀態偵測失效 10.3.8 踩雷案例 8:Service Account 權限過大 10.4 開發、測試、正式環境隔離建議 10.4.1 環境隔離架構 10.4.2 環境設定管理 10.4.3 設定同步建議 10.5 💡 本章實務建議 第十一章:設定即程式碼與自動化 11.1 為何需要設定即程式碼 11.2 Realm Export/Import 11.2.1 CLI 匯出/匯入 11.2.2 Admin Console/REST API 部分匯入 11.3 keycloak-config-cli 11.4 Operator KeycloakRealmImport 11.5 Terraform Provider 11.6 工具選擇比較 11.7 CI/CD 與環境升遷 11.8 💡 本章實務建議 第十二章:新興標準與 AI Agent 授權 12.1 功能成熟度總覽 12.2 Keycloak 作為 MCP 授權伺服器 12.2.1 規範支援狀態 12.2.2 設定步驟(MCP 2025-06-18 以後) 12.3 Client ID Metadata Document(CIMD) 12.4 Identity Assertion JWT Grant(ID-JAG) 12.5 Shared Signals Framework(SSF) 12.6 AuthZEN 12.7 OID4VCI(可驗證憑證發行) 12.8 評估與導入建議 12.9 💡 本章實務建議 附錄 A:檢查清單(Checklist) A.1 初次部署檢查清單 A.2 日常維運檢查清單 A.3 系統整合檢查清單 A.4 升級前檢查清單 附錄 B:常見 Q&A B.1 Q1:忘記 Admin 密碼怎麼辦? B.2 Q2:如何批次匯入使用者? B.3 Q3:Token 過期時間如何調整? B.4 Q4:如何查看目前線上使用者? B.5 Q5:Client Secret 外洩怎麼辦? B.6 Q6:如何實作 API 的細粒度授權? B.7 Q7:使用者被暴力破解防護鎖定,如何解鎖? B.8 Q8:如何在不停機的情況下輪替 Client Secret? B.9 Q9:升級後登入或 API 大量失敗,如何處理? B.10 Q10:登入後被導向內部網址或出現「HTTPS required」? 附錄 C:版本功能對照表 附錄 D:版本紀錄 D.1 版本歷程 D.2 v1.0 → v2.0 更正表 D.3 v2.0 新增章節 附錄 E:查證紀錄 E.1 待確認事項 附錄 F:參考資料 第一章:Keycloak 簡介與核心概念 1.1 Keycloak 是什麼? Keycloak 是開源的 身分與存取管理(Identity and Access Management, IAM) 解決方案,提供單一登入(SSO)、身分聯合、使用者管理與細緻授權等能力,並以 OAuth 2.0、OpenID Connect(OIDC)與 SAML 2.0 等標準協定對外提供服務。 ...

January 30, 2026 · 80 min · 16866 words · Eric Cheng