SSO 与 SCIM:二十六小时的工程与三档报价

企业客户要 SAML 登录与自动开号。本文把 SSO 16 小时、SCIM 8 小时与审计导出 2 小时拆开,比较免费、一次性 2,400 美元与加价 15% 三档报价,并算出托管身份服务 60 美元/月要 52 个月才回本。

「我们用 Okta」这句话,翻译过来是二十六小时的工程和一次报价方式的重新选择。

一、一句「我们用 Okta」带来的二十六小时

2026 年 7 月 23 日,第二轮演示结束前,方工说了一句:「我们内部用 Okta,登录要走 SAML,离职走 SCIM 自动停用。」程野当时的产品只有邮箱加密码和魔法链接,没有企业登录。他回了句「我确认一下工作量」,挂了电话开始拆。

以下情境为教学假设,人物、引语和数字不代表经核实的真实案例。

拆法是按「客户会验收什么」倒推。SSO 的验收是三类账号都能登录:管理员、普通成员、已离职(应当被拒)。SCIM 的验收是三类事件都能同步:建号、改名、停用。审计导出的验收是能一次导出 30 天、8 个字段。三件事都做到,才算「支持企业登录」。

工作量估成 16 + 8 + 2 = 26 小时。这个数字不是拍脑袋:SSO 的五段各有时长,SCIM 的两段各有坑,审计导出最省但字段要一次定对。26 小时里没有一分钟花在「研究要不要做」上。

他原本以为 SSO 最难的是协议。做完发现协议是最简单的部分:SAML 的断言格式是公开的,照着文档拼就能跑通。真正花时间的是证书轮换、属性映射和错误提示——这三件事不写进文档,客户第一次配置就会卡住。

动手估算前,他先问清三件事:IdP 是哪一家、协议要 SAML 还是 OIDC、离职停用是实时还是每天一次。三个答案决定工作量的上下限——OIDC 的元数据与断言更简单,通常能省下几个小时;实时停用则要求 webhook 或高频轮询,比每天一次更费工。

26 小时估完,他把它单独列一张表,没有塞进售前 96 小时里。理由是这笔投入不属于「为了拿下这一单」的消耗,而是会留在产品里的资产;混在一起,第二年复盘时会误以为销售效率变差了。

二、SSO 16 小时、SCIM 8 小时、审计导出 2 小时

同一句「支持 SSO」,拆成可验收的动作之后,工作量才有意义。

能力工作量验收方式不做会怎样
SAML 2.0 单点登录16 h用客户测试租户完成三类账号登录安全审查直接不通过
SCIM 用户同步5 h建号、改名、停用各触发一次60 席每月人工开停号约 2 h
SCIM 组与角色映射3 h3 个组分别映射到 3 个角色离职后权限残留,审计过不了
审计日志导出2 h导出 30 天、8 个字段、一次成功季度审计只能靠截图

16 小时的 SSO 分五段:元数据与 ACS 端点 3 小时,签名与证书 4 小时,属性映射与账号绑定 5 小时,错误提示与回退 2 小时,与客户测试租户联调 2 小时。最耗时的是属性映射,因为客户的用户名是小写邮箱、显示名是中文、组名带部门前缀,三个字段都要有兜底默认值。

证书那段有一个容易漏的点:IdP 每年换证书,换的时候会有一段时间新旧两张并存。服务端必须同时接受两张,否则客户换证书那天全员登录失败。他在签名与证书那 4 小时里留了 1 小时做双证书校验,这 1 小时买的是「换证书不用停机」。

SCIM 的 5 小时里,有 2 小时花在幂等上。Okta 在超时后会重推同一条建号请求,如果只按邮箱建账号,重推就会报「已存在」并让整个同步批次失败。改成用 externalId 做唯一键、重复请求返回 200 而不是 409,才稳定下来。

组映射的 3 小时不是写代码,是定规则:管理员组、成员组、只读组分别对应产品的三个角色。规则定完还要处理「一个人在两个组」的情况,他的选择是取权限高的那个,并在审计日志里记下原因。

审计导出只花 2 小时,但字段必须一次定对:操作者、对象、动作、时间、IP、结果、来源、请求号。少一个字段,客户季度审计时就要回来找你加,而加字段意味着再发一次版。

五段拆分的依据是「客户会卡在哪」。客户 IT 第一次配置时,多数问题出在属性映射与证书,而不是断言签名;把这两段的时间估够,联调就不会拖到第二周。

SCIM 的两个坑都跟「不信任调用方」有关:一是重复推送,二是部分失败。一个批次里第 7 个用户失败时,整批返回 200 还是 207,要在文档里写清,否则客户的重试策略会和你的实现对不上。

四项能力的验收方式有一个共同点:都能在客户的测试租户里当场演示。演示不了的能力,在安全审查里等于不存在——这也是为什么他把「验收方式」和「工作量」放在同一张表里。

三、三档报价与两种回本算法

26 小时怎么收钱,比 26 小时怎么花更难。他试过三种报价,最后同时保留,按客户类型选。

档位金额折合时薪适用客户
含在年付内0 美元不单独计60 席以下、没有 IdP 的客户
一次性实施费2,400 美元92.3 美元/h有 IdP、50 到 100 席
合同加价 15%2,700 美元103.8 美元/h采购要求「全包、不再单独审批」

一次性报价 2,400 ÷ 26 = 92.3 美元/h;加价档 18,000 × 15% = 2,700,2,700 ÷ 26 = 103.8 美元/h。加价档更贵,反而更容易被大客户接受,因为采购不需要为「实施费」单独走一次审批,15% 摊进年费不占新的预算科目。

另一种回本算法是自建还是买托管。26 小时按 120 美元/h 的机会成本算,等于 3,120 美元;托管身份服务 60 美元/月,3,120 ÷ 60 = 52 个月才回本,而且这 52 个月里不含每年证书轮换与字段变更的维护。

三家客户复制时,这笔账会变:3 × 18,000 = 54,000 的合同额,3,120 ÷ 54,000 = 5.8%,按机会成本算占收入不到六个点。同一份 26 小时投入,客户越多越便宜,这也是「一次投入、可复用」的真实含义。

如果只做 SSO 不做 SCIM,成本是 16 × 120 = 1,920 美元,少 1,200 美元。但客户问「离职账号怎么办」时,你只能用「每月人工核对」回答,而 60 席每月人工开停号约 2 小时,一年 24 小时——省下的 1,200 美元,第二年就被人力吃回去。

三种报价不是三个价格,是三种决策路径。免费档换成交速度,一次性档换现金流,加价档换采购流程的简化;同一家公司第二次采购时,完全可能从一档换到另一档。

四、自建、托管与不做的边界

自建的适用条件有三个:至少 3 家客户明确要求、需要自定义属性映射、账号元数据不能交给第三方。三条里满足两条就值得自己做,因为 26 小时摊到 3 家只有 8.7 小时一家。

托管的适用条件更简单:只有 1 到 2 家客户要求,26 小时排不进这个季度,且 60 美元/月不构成负担。代价是账号元数据经第三方一手,DPA 里的子处理者清单要多一行。

不做的边界要写下来:客户要求私有化部署 IdP、要求 SCIM 双向全量同步所有组、要求把身份服务放在自己的机房。这三件事都不是 26 小时能解决的,报价再高也不接。

还有一种情况是「能做但不划算」:客户只有 10 席却要求 SSO。26 小时的机会成本 3,120 美元摊到 10 席是 312 美元/席,而每席年费只有 300 美元。这种单子要么加价到覆盖成本,要么直接说明「这个规模用密码加二次验证更合适」。

只做 SSO 不做 SCIM 是一个常见的半成品。它能让安全审查过一半,却会在「离职员工账号还在」这一条上被退回。SSO 是登录能力,SCIM 是运维承诺,两者一起卖才成立。

复算:工程 16 + 8 + 2 = 26 h(一次投入,可复用)
   SSO 16 h = 元数据 3 + 证书 4 + 属性映射 5 + 回退 2 + 联调 2
   SCIM 8 h = 用户同步 5 + 组与角色 3
   一次性报价:2,400 ÷ 26 = 92.3 美元/h
   合同加价:18,000 × 15% = 2,700;2,700 ÷ 26 = 103.8 美元/h
   机会成本:26 × 120 = 3,120 美元
   三家复制:3 × 18,000 = 54,000;3,120 ÷ 54,000 = 5.8%
   托管对比:3,120 ÷ 60 = 52 个月
   只做 SSO:16 × 120 = 1,920 美元,比全量少 1,200 美元

这组数字里最容易被忽略的是「52 个月」。它不是一个建议期限,而是一个比较结果:只有在自建成本按 3,120 美元计、托管价格保持 60 美元/月、且不计维护时,两者才在第 52 个月相等。任何一项变了,结论就变。

把这组数字放进报价单之前,要先把「谁承担后续变更」写清。客户换 IdP、加部门、改属性名,都属于变更;他写的规则是「交付后 30 天内免费,之后按 4 小时起算」。

五、行动清单与复算验收

  • 问清客户用哪家 IdP、走 SAML 还是 OIDC、是否要求 SCIM。
  • 用客户的测试租户跑通三类账号:管理员、普通成员、已离职。
  • 把证书轮换写进运维日历,确认服务端能同时接受新旧两张证书。
  • SCIM 用 externalId 做唯一键,验证重复推送不会建出两个账号。
  • 组映射至少覆盖管理员、成员、只读三档,并处理一人两组的情况。
  • 审计导出固定 8 个字段,验证 30 天数据能一次导完。
  • 在报价单上写清是三档中的哪一档,以及是否含后续字段变更。
  • 算一遍单席成本,席位数低于 20 时先考虑不做。

验收标准:任取一个客户账号,都能在 2 分钟内说出它由哪个组授权、最近一次同步是什么时候、停用后多久失去访问。

前四条是「让它能登录」,后四条是「让它能交付」。如果只有一天,先做第一条和第二条:不知道客户用哪家 IdP,16 小时的估算就没有依据。

验收顺序要从「拒绝」开始:先测已离职账号登不进来,再测普通成员能登录,最后测管理员。顺序反了容易漏掉拒绝路径——能登录只能证明配置对了,能拒绝才证明策略生效了。

如果客户只给一个测试账号,先要三个:管理员、普通成员、已离职。三类账号覆盖授权、登录与拒绝三条路径,缺一条都说明不了问题。

使用边界与实操验收

不点名任何身份服务商。 本文只比较三种交付方式的工作量与报价,不评价具体产品的功能、价格或安全记录;60 美元/月是教学假设里的一个价位,不是某家产品的报价。

26 小时是一次投入。 第二家客户如果用的是同一家 IdP,通常只需要 2 到 4 小时配置与联调;如果换成另一家 IdP,属性映射与证书部分要重做,按 16 小时 SSO 的一半重估更稳。

3,120 美元是机会成本,不是现金支出。 它把 26 小时按 120 美元/h 折算,用来和托管服务的月费比较;实际账上不会出现这笔支出,也不应写进发票。

报价里的时薪是折算值,不是挂牌价。 92.3 与 103.8 只用于比较三种交付方式,不该拿去和客户的预算表对齐,也不该用来解释某个功能为什么贵。

复用的前提是同一家 IdP。 换成另一家,属性名、组结构、证书格式都会变;把 26 小时当成「任何客户都 26 小时」,报价一定会亏。

自建与托管是取舍,不是对错。 自建换来控制权与边际成本递减,托管换来了上线速度与维护外包;在只有一两家企业客户时,后者的总成本通常更低。

不替代安全评估。 SSO 与 SCIM 只解决身份的生命周期,不解决会话固定、令牌泄露与越权;这些要在安全基线里单独处理。

关键参考与核验范围

以上链接于 2026-10-26 实测可公开访问;未核验版本、功能范围与政策更新。核验日期:2026-10-26。

范围上只讨论一个人如何估算 SSO、SCIM 与审计导出的工作量、如何分档报价与判断自建边界,不讨论具体 IdP 的配置步骤、多租户权限模型的实现,也不评价任何身份服务商。

系列导航

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「Indie」更多文章

  1. 开源项目验收:十项能力、四维评分与三种不该开源的项目
  2. 治理、fork 与退出:17 位贡献者、82% 的提交与一次改协议的代价
  3. 双许可与企业版:九家询价、两家成交与 4,800 美元