Skip to content

Instantly share code, notes, and snippets.

@appleboy
Last active August 8, 2026 07:33
Show Gist options
  • Select an option

  • Save appleboy/c10e3fe44de36446d0879b6a1b47fcc9 to your computer and use it in GitHub Desktop.

Select an option

Save appleboy/c10e3fe44de36446d0879b6a1b47fcc9 to your computer and use it in GitHub Desktop.
讓 AI Agent、MCP Server、CLI 安全登入的實作工作坊

讓 AI Agent、MCP Server、CLI 安全登入的實作工作坊

活動資訊

  • 日期:2026.10.14–2026.10.15
  • 地點:臺北文創大樓 6 樓
  • 活動:Hello World Dev Conference 2026
  • 講者:Appleboy(Bo-Yi Wu)|IT Technology Platform Service
  • 形式:90 分鐘 Workshop(實機操作)
  • 徵稿主題:徵稿主題 4|AI 驅動的軟體開發資安新思維

主題分類

徵稿主題 4|AI 驅動的軟體開發資安新思維

工作坊聚焦於 AI 工具快速擴張所放大的身分與授權風險:認證資訊寫進原始碼、Token 外流後無法即時處置,以及不同 MCP Server 缺乏明確的存取邊界。學員將以實作方式完成 MCP Server 的 OAuth 授權流程與 Token 治理。

投稿題目

主題:讓 AI Agent、MCP Server、CLI 安全登入的實作工作坊

議程簡介

當 AI Agent、MCP Server、CLI 工具在公司內部數十倍增長,「帳密寫死進原始碼」與「Token 發出去就追不回來」會從個別小問題,升級成系統性的資安風險。MCP 授權規格其實已經給出方向——把 MCP Server 視為 OAuth 的 Resource Server——但真正卡住工程師的是中間幾層:Client 怎麼知道該去哪裡登入?Token 憑什麼只能存取「這一台」MCP Server?出事時又該怎麼關掉?

這場工作坊不講投影片上的理論,而是讓每位學員親手把這些問題解掉一次。現場會提供一座已架設完成的 OAuth 2.0 / OpenID Connect 認證閘道,學員不必花時間建置認證環境,重心全放在自己筆電上的 MCP Server 與 MCP Client。

學員會從一支「沒有任何認證、誰都能呼叫」的 MCP Server 出發,一段一段補上正確的授權層:回應 401 Unauthorized 與 WWW-Authenticate 挑戰、提供 Protected Resource Metadata(RFC 9728)讓 Client 自行發現授權伺服器、以 Authorization Code Flow + PKCE 取得 Token、在 Server 端透過 JWKS 驗證 JWT 並檢查 scope,最後使用 Resource Indicators(RFC 8707)將 Token 綁定至特定 resource/audience,並實際驗證「隔壁 MCP Server 的 Token 打不進來」。

過程中也會處理跑在容器、遠端主機或 CI 上、無法開啟瀏覽器的 CLI 場景,改以 OAuth 2.0 Device Authorization Grant(Device Flow)完成同一套登入與授權流程。

收尾是一場完整的事故演練:學員扮演管理員即時撤銷某個 Token,觀察 MCP Client 當場被擋下,再從稽核日誌追溯整起事件。整場刻意模擬「AI 工具接入 → 出事 → 即時止血」的迴圈,讓學員親身體會「為什麼不該寫死金鑰」與「Token 必須可撤銷」在實務上的差別。

課程重點放在通用的 OAuth / OpenID Connect 觀念、MCP 授權規格與架構決策,不綁定任何特定產品。課後即使將授權伺服器換成公司既有的 Keycloak、Auth0 或 Microsoft Entra ID,同一套設計原則與程式碼仍可延續使用。

環境需求(事前準備)

工作坊開始前,學員需自行完成下列準備;會前一週將提供詳細 setup 文件與一鍵啟動腳本:

  • 一台可執行 Docker / Docker Compose 的筆電(macOS、Linux 或 Windows WSL2)
  • 已安裝 git、curl、jq 與任一終端機
  • 可執行 MCP Server 與 MCP Client 範例所需的執行環境(依課前文件準備)
  • 事先拉取工作坊映像檔,避免現場網路壅塞
  • 基本 HTTP 與終端機操作能力;不需事先熟悉 OAuth 或 MCP

觀眾收穫

  1. 一支自己寫的、帶完整認證的 MCP Server 學員將帶走自己筆電上的程式碼與設定,包含 metadata 端點、Token 驗簽、scope 檢查與 audience 綁定;將授權伺服器換成公司既有的 IdP 後即可延續使用。

  2. 讀懂 MCP 授權規格的能力 清楚理解 RFC 9728(Protected Resource Metadata)、RFC 8414(Authorization Server Metadata)、RFC 7636(PKCE)與 RFC 8707(Resource Indicators)各自負責流程中的哪一段。日後遇到「Client 連不上」或「Token 被拒絕」,能直接定位問題層次,而非逐項猜測。

  3. 親手跑通的無金鑰登入流程 實際操作 Authorization Code + PKCE(可使用瀏覽器)與 Device Flow(容器、遠端主機、CI)兩條路徑,理解 CLI 與 AI Agent 為何不需要在程式中寫死 client secret。

  4. Token 生命週期治理的肌肉記憶 親手查詢 Token 資訊、設定到期、即時撤銷,看到 MCP Client 立即失效,再從稽核日誌追溯事件,建立「Token 必須可被關掉」的直覺。

  5. 一份可帶回內部討論的架構決策清單 釐清哪些內部 MCP Server 應升級為 Resource Server、scope 應如何切分、是否需要綁定 audience,以及 Token 應存放在哪裡才安全;每項都附帶取捨與常見實務陷阱。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment