CAS协议和SAML协议有什么区别?
What are the differences between CAS protocol and SAML protocol?
如果两种协议都用于提供 SSO,为什么要优先使用一种协议?您能否列出它们之间的一些主要区别,使它们适用于不同的任务和情况?
注意:我说的不是 CAS 软件,而是 CAS 协议。
这是专为CAS服务器开发的专有协议。
但是:
"即使CAS服务器的主要目标是实现CAS协议,也支持其他协议作为扩展:
OpenID
OAuth
SAML"
因为 CAS 协议是专有的,IDP 等不支持它。 Azure AD、ADFS、Auth0 等
因此,如果您只想使用 CAS 协议与 CAS 服务器通信,那将可行。
但是,如果您想与另一个 IDP 通话,则不能使用 CAS 协议来执行此操作。您将不得不使用上述协议扩展之一。
也可以写成bridging protocol。这样你可以继续使用 CAS 协议但是 IDP 将其视为 OpenID Connect
所以如果在CAS世界,使用CAS协议,但如果你需要使用其他IDP,坚持标准的三个协议。
SAML (Security Assertion Markup Language) as well as CAS (Central Authentication Service) are Single Sign On (SSO) protocols(或标准)用于管理访问控制决策。
SAML 代表 Security Assertion Markup Language(发音为 SAM-el),它是一个开放的标准 用于在各方之间交换身份验证和授权数据,特别是在 IdP(Identity Provider)之间,即。存储用户名和密码的 SaaS 公司,以及 SP(服务提供商)即。您的网站或服务。
SAML 是一种基于XML 的标记语言标准,用于安全断言。它包含:一组基于 XML 的协议消息、一组协议消息绑定和一组配置文件(利用上述所有内容)。
简而言之,SAML 是用于 SSO(单点登录)的 XML 框架(标准),各种应用程序都可以使用它来验证("you are, who you are saying you are") 或授权访问 ("you have access to this application part").
另一方面,CAS 代表 Central Authentication Service,同样是单点登录,基于票证的 协议标准或框架。其目的是允许用户访问多个应用程序,同时只提供一次他们的凭据(例如用户 ID 和密码)。
CAS这个名字也指实现这个协议的软件包(叫做Apereo CAS)(值得注意的是,即使CAS服务器的主要目标是实现CAS协议,其他协议也支持作为扩展,即 Apereo CAS 服务器还包含实施 SAML 的能力)。
CAS 的关键概念是:TGT(Ticket Granting Ticket),存储在TGC cookie,表示用户的 SSO 会话,以及 ST (Service Ticket) - 在 url 中作为 GET 参数传输 -代表 CAS 服务器授予特定用户对 CASified 应用程序的访问权限。
CAS 协议最强大的功能之一是 CAS 服务能够充当另一个 CAS 服务的代理,传输用户身份。
选择 SAML 或 CAS 时的特殊注意事项:
SAML:
SP 和 IDP 之间的注册是强制性的,可以通过 public 完成
元数据交换(您需要事先同意在 SP 和 IDP 之间发送哪些元标记)
XML 邮件可以在 and/or 的帮助下进行签名加密
非对称密钥(public 密钥在元数据中发布)
CAS:
没有义务在CAS服务器中声明CAS客户端(开放模式)
CAS客户端与CAS服务器之间的信任依赖于CAS服务器
证书验证
结论:
(根据 this 介绍):
SAML: 复杂的协议,经常用于 SaaS 身份验证,安全性好,成熟
CAS: 协议简单,安全性不强,适合内部使用
如果两种协议都用于提供 SSO,为什么要优先使用一种协议?您能否列出它们之间的一些主要区别,使它们适用于不同的任务和情况?
注意:我说的不是 CAS 软件,而是 CAS 协议。
这是专为CAS服务器开发的专有协议。
但是:
"即使CAS服务器的主要目标是实现CAS协议,也支持其他协议作为扩展:
OpenID
OAuth
SAML"
因为 CAS 协议是专有的,IDP 等不支持它。 Azure AD、ADFS、Auth0 等
因此,如果您只想使用 CAS 协议与 CAS 服务器通信,那将可行。
但是,如果您想与另一个 IDP 通话,则不能使用 CAS 协议来执行此操作。您将不得不使用上述协议扩展之一。
也可以写成bridging protocol。这样你可以继续使用 CAS 协议但是 IDP 将其视为 OpenID Connect
所以如果在CAS世界,使用CAS协议,但如果你需要使用其他IDP,坚持标准的三个协议。
SAML (Security Assertion Markup Language) as well as CAS (Central Authentication Service) are Single Sign On (SSO) protocols(或标准)用于管理访问控制决策。
SAML 代表 Security Assertion Markup Language(发音为 SAM-el),它是一个开放的标准 用于在各方之间交换身份验证和授权数据,特别是在 IdP(Identity Provider)之间,即。存储用户名和密码的 SaaS 公司,以及 SP(服务提供商)即。您的网站或服务。
SAML 是一种基于XML 的标记语言标准,用于安全断言。它包含:一组基于 XML 的协议消息、一组协议消息绑定和一组配置文件(利用上述所有内容)。
简而言之,SAML 是用于 SSO(单点登录)的 XML 框架(标准),各种应用程序都可以使用它来验证("you are, who you are saying you are") 或授权访问 ("you have access to this application part").
另一方面,
CAS 代表 Central Authentication Service,同样是单点登录,基于票证的 协议标准或框架。其目的是允许用户访问多个应用程序,同时只提供一次他们的凭据(例如用户 ID 和密码)。
CAS这个名字也指实现这个协议的软件包(叫做Apereo CAS)(值得注意的是,即使CAS服务器的主要目标是实现CAS协议,其他协议也支持作为扩展,即 Apereo CAS 服务器还包含实施 SAML 的能力)。
CAS 的关键概念是:TGT(Ticket Granting Ticket),存储在TGC cookie,表示用户的 SSO 会话,以及 ST (Service Ticket) - 在 url 中作为 GET 参数传输 -代表 CAS 服务器授予特定用户对 CASified 应用程序的访问权限。
CAS 协议最强大的功能之一是 CAS 服务能够充当另一个 CAS 服务的代理,传输用户身份。
选择 SAML 或 CAS 时的特殊注意事项:
SAML:
SP 和 IDP 之间的注册是强制性的,可以通过 public 完成 元数据交换(您需要事先同意在 SP 和 IDP 之间发送哪些元标记)
XML 邮件可以在 and/or 的帮助下进行签名加密 非对称密钥(public 密钥在元数据中发布)
CAS:
没有义务在CAS服务器中声明CAS客户端(开放模式)
CAS客户端与CAS服务器之间的信任依赖于CAS服务器 证书验证
结论: (根据 this 介绍):
SAML: 复杂的协议,经常用于 SaaS 身份验证,安全性好,成熟
CAS: 协议简单,安全性不强,适合内部使用