
每個自建認證一開始都是幾行代碼。麻煩是在上線後才開始,每一個小小的決定最終都會默默地固定成整個產品假設為真的模型。
郵箱、密碼,加密、存儲、登入時比對。乾淨,搞定。
誰算是用戶。他們屬於哪家公司。哪個 session 還值得信任。如何回收訪問權限。
紙上換登入頁,實際上是要重構身份基礎。
這套系統可以多年無故障地幫人登入。直到某個業務變化讓「夠用」一夜之間變成了「拖後腿」。幾乎所有規模化的產品都會遇到這三件事。

第一個大客戶上門,採購要求對接自己 Entra 或 Google Workspace 的 SSO。接著你還要同時支持 SAML 和 OIDC,因為下一個客戶用的是別的。每個客戶的身份配置都不一樣,絕大多數工作都沒法複用。

按組織/產品分割,還經常有併購遺留。「統一身份」聽起來是個功能,但對代碼來說意味著徹底定義什麼是一個用戶、一個組織。

不再只是人在瀏覽器裡操作。agent、MCP 服務器、命令行也都代表某個用戶行動。但你自建認證只會讓人登入一個頁面。

第一版很便宜:幾個工程師,幾週時間,就能上線。但之後每年都要付出本該花在核心產品上的工程人力。
你不會收到標著「認證」的帳單。
關鍵的脈絡只在某個人腦子裡,不在文檔裡。
沒有客戶會因你自建 OAuth server 多付一分錢。
大部分成熟的認證已經涵蓋了功能:SSO、多因素、組織、統一登入、agent存取。真正的差別在於你能不能隨時離開。別好不容易從自己寫的幾千行裡「脫身」,結果又被別人家鎖死。