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

时间:2019-08-20 06:34:02

标签: saml cas

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

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

2 个答案:

答案 0 :(得分:1)

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

但是:

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

v-model="this['bar[foobar]']"

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

因此,如果您要做的只是使用CAS协议与CAS服务器进行通讯,那将起作用。

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

也可以写一个bridging protocol。这样,您可以继续使用CAS协议,但IDP会将其视为OpenID Connect

因此,如果在CAS世界中,请使用CAS协议,但是如果您需要使用其他IDP,请遵循标准的三个协议。

答案 1 :(得分:1)

SAML (Security Assertion Markup Language) CAS (Central Authentication Service) Single Sign On (SSO) protocols (或标准< / em>)来管理访问控制决策。


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

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

简单来说,SAML是用于SSO(单点登录)的XML框架(标准),各种应用程序都可以使用它来进行身份验证(“您是,您在说您是谁”) )或授权访问权限(“您有权访问此应用程序部分”)。


另一方面,

CAS 代表中央身份验证服务,并且类似地是基于单点登录的基于票证的协议标准框架。其目的是允许用户仅提供一次其凭据(例如用户ID和密码)即可访问多个应用程序。

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

CAS的关键概念是:存储在 TGC cookie中的 TGT 票授予票证)代表了一个SSO会话用户,并且 ST 服务凭单)(作为url中的GET参数传输)代表CAS服务器授予特定用户对CASified应用程序的访问权限

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


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

SAML:

  • SP和IDP之间的注册是强制性的,可以通过公共方式进行 元数据交换(您需要事先同意在SP和IDP之间发送哪些元标记)

  • XML消息可以通过以下方式进行签名和/或加密: 非对称密钥(公开密钥发布在元数据中)

CAS:

  • 没有义务在CAS服务器(开放模式)中声明CAS客户端

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


结论: (根据this演示):

SAML:复杂协议,常用于SaaS身份验证,安全性高,建立良好

CAS:简单协议,没有很强的安全性,适合内部使用