CAS 协议和 SAML 协议有什么区别?

  • 本文关键字:协议 区别 SAML CAS saml cas
  • 更新时间 :
  • 英文 :


如果两种协议都用于提供SSO,那么使用一种协议的原因是什么?您能否列出它们之间的一些主要区别,使它们适用于不同的任务和情况?

注意:我不是在谈论 CAS 软件,而是在谈论 CAS 协议。

SAML(安全断言标记语言(CAS(中央身份验证服务(是用于管理访问控制决策的单点登录 (SSO( 协议(或标准(。


SAML代表安全断言标记语言(发音为 SAM-el(,它是用于在各方之间交换身份验证和授权数据的开放标准,特别是在IdP(身份提供商(之间,即。存储用户名和密码的SaaS公司,以及SP(服务提供商(,即。您的网站或服务。

SAML 是一种基于 XML 的安全断言标记语言标准。它包含:一组基于 XML 的协议消息、一组协议消息绑定和一组配置文件(利用上述所有内容(。

简而言之,SAML 是 SSO(单点登录(的 XML 框架(标准(,各种应用程序可以使用它来进行身份验证("您是谁,您是谁"(或授权访问("您有权访问此应用程序部分"(。


另一方面,CAS代表中央身份验证服务,同样是一种单点登录、基于票证的协议标准框架。其目的是允许用户访问多个应用程序,同时仅提供一次其凭据(如用户 ID 和密码(。

CAS这个名字也指实现这个协议的软件包(称为Apereo CAS((值得注意的是,即使CAS服务器的主要目标是实现CAS协议,其他协议也支持作为扩展,即。Apereo CAS Server 还包含实现 SAML 的功能(。

CAS的关键概念是:存储在TGCcookie 中的TGT(票证授予票证(表示用户的 SSO 会话,而 ST(服务票证(——作为 URL 中的 GET 参数传输——代表 CAS 服务器为特定用户授予的对 CASized 应用程序的访问权限。

CAS协议最强大的功能之一是 CAS 服务能够充当另一个 CAS 服务的代理,传输用户身份。


选择 SAML 或 CAS 时的特殊注意事项:

萨姆勒:

  • SP和IDP之间的注册是强制性的,可以在公众下完成 元数据交换(您需要事先同意 SP 和 IDP 之间将发送哪些元标记(

  • XML 消息可以在 非对称密钥(在元数据中发布的公钥(

中国科学院:

  • 没有义务在 CAS 服务器中声明 CAS 客户机(打开模式(

  • CAS
  • 客户机和 CAS 服务器之间的信任依赖于 CAS 服务器 证书验证


结论:(根据本演示文稿(:

SAML:复杂的协议,经常用于SaaS身份验证,安全性好,成熟

CAS:协议简单,安全性不强,适合内部使用

这是专门为 CAS 服务器开发的专有协议。

然而:

"即使CAS服务器的主要目标是实现CAS协议,也支持其他协议作为扩展:

OpenID
OAuth
SAML"

由于CAS协议是专有的,因此IDP不支持它,例如Azure AD,ADFS,Auth0等。

因此,如果您只想使用 CAS 协议与 CAS 服务器通信,那将起作用。

但是,如果您想与另一个 IDP 交谈,则不能使用 CAS 协议执行此操作。您必须使用上述协议扩展之一。

也可以编写桥接协议。这样,您可以继续使用 CAS 协议,但 IDP 将其视为 OpenID Connect

因此,如果在 CAS 世界中,请使用 CAS 协议,但如果您需要使用其他 IDP,请坚持使用标准的三种协议。

最新更新