Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
學會用 Claude,每件事都做得更好
claudeskill-me.com
最新
Superpowers 框架評測:一個連「不合格的程式碼直接刪掉」都寫進規則的 TDD 方法論  ·  CLAUDE.md、Rules、Skill、Hook、Subagent 該用哪個?Anthropic 官方七種指令方法決策架構  ·  官方 Frontend Design Skill 評測:為什麼安裝數是第二名的 57 倍?  ·  第一次動手做 Skill:把你重複交代三次的事,變成一個指令  ·  新手第一次寫 System Prompt:從「你是一個助理」到真正能用的角色設定  ·  Claude Code 新增 Marketplace 整組織白名單控制,一條規則就能放行或封鎖整個 GitHub 組織
名詞解析 · tools-integration

OAuth

OAuth 授權
tools-integration intermediate

30 秒版 · 給沒耐心的人
讓使用者不必把帳號密碼直接交給第三方應用程式,而是透過原本的身分系統核發一張範圍受限的授權令牌,讓對方拿著這張令牌代為執行被授權範圍內的操作。
完整解說 +
01 · 這是什麼?

OAuth 是什麼,跟直接把帳號密碼給第三方應用程式有什麼不同?

OAuth 是一套授權協定,讓使用者可以授權一個第三方應用程式(例如一個 MCP 連接器)代表自己去存取某個服務的資料或功能,而不需要把帳號密碼直接交給這個第三方。整個流程的核心是「令牌」(token):使用者透過原本信任的身分系統(例如登入自己的 Google 帳號)完成驗證後,系統核發一張範圍受限的令牌給第三方應用程式,這張令牌只能用來做被授權的那些事,不是帳號的完整存取權。

跟直接給密碼最大的不同在於「範圍」與「可撤銷性」。密碼一旦外流,等於整個帳號的控制權都被拿走;OAuth 令牌則可以限定只能讀取特定資料、只能在特定期間內有效,而且使用者可以隨時到身分系統裡把這張令牌撤銷,不需要因此更改密碼,也不影響帳號本身的安全。

02 · 為什麼存在?

OAuth 為什麼被需要,解決了什麼問題?

在沒有 OAuth 這類機制之前,如果一個第三方應用程式需要存取使用者在另一個服務裡的資料,唯一的做法就是要求使用者把帳號密碼直接輸入給這個第三方保存。這帶來兩個具體風險:一是這個第三方一旦被入侵,外洩的就是使用者原始密碼,攻擊者能用這組密碼在原本的服務裡做任何事,範圍完全不受限;二是使用者沒有精細的控制權,只能選擇「全部授權」或「完全不用」,沒辦法只開放讀取、不開放寫入這種細緻的範圍限制。

OAuth 把授權這件事從「交出密碼」改成「核發一張範圍受限的令牌」,解決的正是這兩個問題:即使拿到令牌的第三方應用程式被入侵,外洩的也只是這張令牌,攻擊者能做的事被限定在授權範圍內,而且使用者或服務端可以隨時撤銷這張令牌,不影響原本的帳號密碼;同時使用者在授權當下可以看到具體要開放哪些權限,做出更精細的判斷,而不是全有全無的選擇。

03 · 如何影響你的決策?

OAuth 實際上怎麼運作,一次典型的授權流程長什麼樣子?

以 Claude 連接一個 MCP 伺服器為例,典型流程大致是這樣:Claude 先嘗試呼叫這個伺服器,如果對方要求授權,會回傳一個「未授權」的回應,裡面帶著授權伺服器的位置資訊;Claude 接著去查詢這個授權伺服器公開的中繼資料,了解它支援哪些授權方式;由於 Claude 事先不一定知道這個伺服器的身分,會先透過「動態客戶端註冊」向對方登記自己的身分,取得一組識別碼;接著才是使用者實際授權的環節——瀏覽器會開啟一個畫面,使用者登入自己在這個服務的帳號並確認要開放哪些權限;使用者確認後,服務端會核發一組憑證讓 Claude 換取正式的存取令牌,之後每次呼叫這個伺服器,都帶著這張令牌證明自己有權限。

這個過程裡有一個常見的安全機制叫 PKCE(Proof Key for Code Exchange),用來防止授權過程中的憑證在傳遞途中被攔截後被冒用;另外,令牌通常有使用期限,且會定期輪替更新,避免一張令牌被長期使用而增加外洩後的風險視窗。

04 · 你該怎麼辦?

OAuth 對我有什麼實際影響,作為使用者或開發者分別該注意什麼?

如果你是一般使用者,在為 Claude 連接第三方服務(例如透過連接器接上 Gmail、Slack)時看到跳出的授權畫面,這代表你正在經歷 OAuth 流程——這個畫面上列出的權限範圍值得實際看一遍,確認要開放的權限跟這個連接器實際功能是否相符,而不是看到授權畫面就直接點確認;同時記得你隨時可以到對應服務的帳號設定裡,查看目前授權了哪些第三方應用程式,並撤銷不再需要或看起來可疑的授權。

如果你是要開發一個給 Claude 使用的 MCP 伺服器,OAuth 是目前正式環境的標準要求:如果你的伺服器只支援固定的 API 金鑰驗證,使用者在 claude.ai 網頁版的自訂連接器介面(跟 Claude Code 不同,只接受 OAuth)就沒辦法直接串接。搭建 OAuth 授權需要處理不少細節(例如授權中繼資料的正確格式、PKCE 的實作、令牌輪替機制),如果不想從零開始自建,市面上已有一些現成的中介層方案可以參考,但選用前仍值得理解這套機制實際在保護什麼、以及自己的伺服器目前是否符合這套標準。

實際例子 +

Claude.ai 網頁版的自訂連接器介面只接受 OAuth 2.1 驗證,不支援直接貼上固定的 API 金鑰或自訂表頭:使用者新增一個自訂連接器時,介面會要求輸入 OAuth 用戶端 ID 與用戶端密鑰,並實際走過完整的授權流程,這也是為什麼只支援靜態金鑰驗證的伺服器,無法被加進 Claude.ai Team/Enterprise 組織的共用連接器清單。

常見誤解 +
✕ 誤解1
× 誤解:OAuth 授權跟輸入密碼本質上是同一件事,只是介面比較好看,實際是:兩者的核心差異在於「範圍」與「可撤銷性」,OAuth 令牌可限定用途、可隨時撤銷,密碼外流則等於整個帳號的控制權都被拿走
✕ 誤解2
× 誤解:只要伺服器有做某種形式的驗證(例如固定 API 金鑰),就等於支援了 OAuth,實際是:OAuth 是一套有明確流程規範的協定,包含中繼資料發現、動態客戶端註冊、PKCE 等具體機制,固定金鑰驗證並不符合這套規範,claude.ai 網頁版的自訂連接器介面明確只接受 OAuth
這件事跟你有什麼關係 +
直接影響

優點是使用者不必把密碼交給第三方,授權範圍可以精細限定且隨時可撤銷,外洩風險被限定在單一令牌而非整個帳號;缺點是對開發者而言,建置一套符合規範的 OAuth 授權伺服器牽涉不少具體細節(中繼資料格式、動態客戶端註冊、PKCE、令牌輪替),比單純做一組固定金鑰驗證要花更多工程時間。

提問
請至少輸入 10 個字