单点登录(Single Sign-On,SSO)的实现中,常见的协议有:
- CAS (Central Authentication Service):CAS 是一种常见的 B/S 架构的 SSO 协议,用户只需登录一次,就可以访问其他应用而无需再次登录。CAS 是一种仅用于 Authentication 的服务,它并不能作为一种 Authorization 的协议。
- OAuth 2.0:OAuth 2.0 是一种 Authorization 协议,它主要解决的场景是:第三方应用如何被授权访问资源服务器。
- OpenID Connect (OIDC):OIDC 是基于 OAuth2.0 扩展出来的一个协议,除了能够处理 OAuth2.0 中的 Authorization 场景,还额外定义了 Authentication 的场景。OIDC 引入了 id_token 等和 userinfo 相关的概念,可以说 OIDC 协议是当今最流行的协议。
- SAML 2.0 (Security Assertion Markup Language):SAML 是一个基于 XML 的标准协议,它定义了身份提供者(Identity Provider)和服务提供者(Service Provider)之间,如何通过 SAML 规范,采用加密和签名的方式来建立互信,从而交换用户身份信息。
这些协议在 SSO 实现中都有各自的优点和局限性,选择哪种协议主要取决于你的具体需求和应用场景。