如果两种协议都用于提供SSO,那么为什么要使用一种协议呢?您能否列出它们之间的一些主要区别,以使其适合于不同的任务和情况?
注意:我不是在谈论CAS软件,而是在谈论CAS协议。
答案 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:简单协议,没有很强的安全性,适合内部使用