所有文章

自建还是采购身份认证:那张你没料到的账单

AuthagonalJune 30, 2026
authbuild-vs-buyssosecuritysaas

由 AI 从英文原文翻译。 阅读原文

身份认证是每个工程师都笃信自己能在一个周末搞定的功能,而他们没说错。你可以在周日晚上之前做好一个登录表单、一张用户表,以及一封密码重置邮件。这个周末是真实的。但这个周末并不是成本。成本是它之后到来的一切——按一个不由你设定的时间表,为一个你永远关不掉的系统而来。

你以为活儿就这么多的那一部分

邮箱加密码。一张会话表。一个会把令牌发到邮箱的"忘记密码"链接。要是你想做得周全,再加个社交登录。这确实是一个周末的活,而如果这就是全部工作量,你绝对应该自己动手。可它并不是全部,你也清楚它不是——这正是为什么你在读一篇自建对采购的文章,而不是直接动手去建。

那张你没料到的账单

你从此永久地拥有了一个安全攻击面。 密码哈希,以及在你意识到自己的 bcrypt 成本因子是按 2019 年的硬件调的那天,给每一个用户重新哈希一遍。限流和账户锁定。撞库攻击,因为你的登录端点会在上线一个月内被收入每一份泄露重放名单。还有最大的那一项:责任。从你存储凭据的那一天起,你就成了攻击目标,而一次数据泄露不再是别人销售材料里的一个抽象风险。它是你的事故、你的披露邮件、你客户的信任,还可能是你的监管机构。

协议层面的工作会在你卖给任何一个正经客户的那一刻砸下来。 企业 SSO 意味着 SAML,而 SAML 意味着 XML 签名校验——那是自成一类的 CVE(你真的不想在生产环境里遇上签名包装;这里有更多内容)。SCIM 意味着既要构建账户开通要构建账户注销,而注销是一项安全控制:做错了,一个被开除的员工就还留着他的访问权限。MFA 意味着注册流程、恢复码,以及有人弄丢手机时排起的工单队列。审计日志意味着留存与防篡改,因为客户的 SOC 2 审计师会过问,而"我们把日志写到某个文件里"不是一个答案。

运维的长尾永远没有尽头。 密钥轮换和 JWKS。真正能跨设备生效的会话失效。令牌吊销。还有随时待命——为你技术栈里那个一旦宕机就会把一切一起拖垮的系统:没人能登录,没有任何 API 调用能通过认证,你的整个产品就是一个 500 错误页。认证属于零级关键系统。你正在签下一份合约,要用你本打算投到真正产品上的同一份人力,永远地维持一个零级安全系统的运转。

合规的长尾是按年计的。 SOC 2、ISO 27001、一个潜在客户的安全问卷:每一份都会详细地追问上面的每一项。审计师不会被"我们自己写了一套"打动。采购认证让你可以指向供应商的控制措施;自建则让那些控制措施成了你自己每年都要去记录、去证明、去辩护的东西。

什么时候自建才真的是正确的选择

这不是一篇"永远买就对了"的推销,因为那样既不诚实,你也会一眼看穿。在以下情况下,自建你自己的认证系统:

  • 它是一个藏在 VPN 后面的小型内部工具,寥寥几个用户,没有任何合规面。那个周末确实就是全部工作量。
  • 认证就是你的产品。如果你在做一家身份认证公司,那就去做身份认证。它是你的差异化优势,而不是你的额外开销。
  • 你有着没有任何供应商能满足的、真正非同寻常的需求,并且有一支专门的安全团队会在这套成果的整个生命周期里负责到底。请留意这句话的两半。那支团队,是昂贵的那一半。

在这些情况之外,这笔账比看上去更简单。"自建"的成本从来都不是第一个周末。它是对一个安全攸关系统的永久性持有——这个系统不会让你的产品变好半分,只会让它更"归你所有"。

诚实地换个角度

自建认证不会让你的产品对任何一个客户更有价值。从来没有人因为你手写了 SAML 签名校验而购买你的软件。它只是把认证从别人的问题变成了你的问题,永远地,并且耗掉了你本可以投入到人们真正愿意为之付费的东西上的工程力量。

针对采购的常见反对意见——认证供应商为开启企业功能而收取天价——是真实存在的。但那是一个关于选哪家供应商的争论,而不是关于自建对采购的争论。那张账单里有很大一部分是一笔你本不必缴的功能税。 买一套包含 SSO、SCIM、MFA 和审计日志、且不设按连接收费关卡的认证系统,自建对采购这个问题基本上就自己回答了自己。

在你把一个 sprint 投到登录系统上之前,值得先看清楚企业客户究竟会对它提出哪些要求。这是每个套餐都包含的内容。