LDAP、CAS、OIDC 和 OAuth2
是不同用途的身份验证和授权协议/技术,它们的核心区别和应用场景如下:
1. LDAP(Lightweight Directory Access Protocol)
-
核心功能:
目录服务协议,用于查询和修改分布式目录信息(如用户、组织架构等数据)。 -
特点:
-
专为用户信息存储和检索设计(类似数据库)。
-
支持简单的身份验证(通过用户名/密码绑定)。
-
通常需结合其他协议(如Kerberos、SAML)实现完整认证流程。
-
-
应用场景:
-
企业内部的用户信息存储(如员工账号、部门信息)。
-
作为其他认证协议(如SSO)的后端数据源(如微软AD基于LDAP)。
-
-
示例:
公司内部用LDAP存储员工账号,其他系统(如邮箱、Wi-Fi)通过LDAP验证用户身份。
2. CAS(Central Authentication Service)
-
核心功能:
单点登录(SSO)协议,允许用户一次登录后访问多个系统。 -
特点:
-
基于票据(Ticket) 的认证流程。
-
适用于企业内部多系统集成,非标准化(CAS协议由耶鲁大学开发)。
-
需部署独立的CAS服务端。
-
-
应用场景:
-
企业内网的统一登录(如公司内部OA、Wiki、邮箱等)。
-
旧系统改造为SSO的常见方案。
-
-
示例:
员工登录公司内网后,无需重复输入密码即可访问财务系统、项目管理系统等。
3. OAuth2(Open Authorization 2.0)
-
核心功能:
授权框架,允许第三方应用在用户授权下访问资源(如用户数据、API)。 -
特点:
-
专注于资源访问授权(而非身份认证)。
-
支持多种授权模式(授权码、隐式、密码、客户端凭证等)。
-
不直接提供用户身份信息,需结合其他协议(如OIDC)实现认证。
-
-
应用场景:
-
第三方应用访问用户资源(如用微信登录其他App,并授权获取头像)。
-
API访问控制(如GitHub API的权限管理)。
-
-
示例:
用户授权天气App读取微信位置信息,微信通过OAuth2颁发令牌(Token)给天气App。
4. OIDC(OpenID Connect)
-
核心功能:
基于OAuth2的身份认证协议,在授权基础上提供用户身份验证。 -
特点:
-
扩展OAuth2,添加了ID Token(JWT格式,包含用户身份信息)。
-
标准化身份信息(如
sub、email等字段)。 -
支持现代应用的SSO(如跨域单点登录)。
-
-
应用场景:
-
互联网应用的社交登录(如用Google账号登录其他网站)。
-
移动端/SPA的单点登录。
-
-
示例:
用户用Google账号登录Notion,Notion通过OIDC获取用户邮箱和基本信息。
关键区别总结
| 协议 | 类型 | 主要用途 | 数据安全侧重 | 典型场景 |
|---|---|---|---|---|
| LDAP | 目录服务协议 | 用户信息存储与查询 | 数据存储 | 企业内部用户目录 |
| CAS | SSO协议 | 单点登录(企业内网) | 认证流程 | 内网多系统统一登录 |
| OAuth2 | 授权框架 | 第三方应用资源访问授权 | 资源访问权限 | API访问、第三方应用授权 |
| OIDC | 认证协议 | 基于OAuth2的用户身份认证 | 身份信息 | 社交登录、现代应用SSO |
常见组合与混淆点
-
OAuth2 ≠ 认证协议:OAuth2仅处理授权,需结合OIDC实现认证。
-
LDAP ≠ 认证协议:LDAP存储用户数据,认证需依赖其他协议(如SAML/OIDC)。
-
CAS vs OIDC:CAS适合封闭内网,OIDC更适合互联网开放生态。
-
典型组合:
-
LDAP + OIDC:用LDAP存储用户数据,OIDC提供认证(如Keycloak整合LDAP)。
-
OAuth2 + OIDC:OAuth2处理授权,OIDC提供用户身份信息(如社交登录)。
-
浙公网安备 33010602011771号