企业级单点登录:SAML vs OIDC选型与实现
企业SaaS产品面临的第一个集成问题是:客户要求对接他们的企业身份系统(Azure AD、Okta、OneLogin)。SAML 2.0和OpenID Connect(OIDC)是两个主流的SSO协议,选择哪个直接影响你的集成成本和客户覆盖范围。
SAML 2.0:企业标准,XML驱动
SAML是企业SSO的事实标准,已有20年历史。它的优势是几乎被所有企业IdP支持——从Microsoft Entra ID到PingFederate到Shibboleth。但它的实现复杂度不可低估:XML签名验证、证书管理、元数据交换(metadata.xml),每一个环节都有坑。特别是SAML Response的签名验证——如果你的XML解析库不支持Inclusive Canonicalization,验证会静默失败。
OIDC:现代标准,JSON驱动
OIDC基于OAuth 2.0,使用JSON和JWT——对Web/移动开发者来说比XML友好得多。它的优势是简单、灵活、支持原生移动端和SPA。但企业采用率仍低于SAML——许多传统企业IdP对OIDC的支持不如SAML完整。好消息是Azure AD和Okta在2026年都已完全支持OIDC,差距在缩小。
选型建议
时间线:如果你的目标客户是大型企业(5000人以上)和政府机构 → 优先实现SAML,因为他们的IT团队通常只开放SAML。如果你的客户是中小企业和科技公司 → OIDC优先。长期看,最佳策略是实现统一的SSO抽象层,底层同时支持SAML和OIDC。开源方案中,WorkOS、Clerk和Auth0(付费)都提供了这样的抽象。自建的话,Passport.js + saml + openid-client两个Strategy可以达到80%的效果。

发表回复