GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

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格式,包含用户身份信息)。

    • 标准化身份信息(如subemail等字段)。

    • 支持现代应用的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提供用户身份信息(如社交登录)。

posted on 2025-03-24 04:51  GKLBB  阅读(530)  评论(0)    收藏  举报