OAuth、OIDC 與 Sign in with Google 的差異
threads
前言
最近因為公司有個產品要把各種既有服務和 Google workspace 包裝成 MCP server,才開始接觸到 OAuth 的概念。
前言
今天晚上花了點時間跟 Claude 釐清 OAuth 的概念與定義,才發現我一直以來都以為「用 Google 帳號登入(Sign in with Google)」以及「代表使用者呼叫 Google API」這兩件事都叫做 OAuth,但實際上它們是不同的概念。
前者是 OIDC (OpenID Connect),解決的是身份驗證,後者才是 OAuth,解決的是授權。
我自己在釐清差異後,覺得對於理解公司內部的討論很有幫助,分享出來~
補充
剛剛被老婆問倒,又跟 Claude 討論了一輪,以下修正成更精準的說法🤣
兩者其實共用 OAuth 2.0 的流程(OIDC 是建立在 OAuth 2.0 之上的協議),所以從外觀上看起來幾乎一樣,這也是為什麼業界口語上常常混用「OAuth」這個詞,但技術上它們解決的是不同問題。
技術上區分兩者最簡單的方式:請求的 scope 有沒有包含 openid。有就是 OIDC,沒有就是純 OAuth。