根据CAS Webflow (https://apereo.github.io/cas/5.0.x/images/cas_flow_diagram.png):
身份验证成功后,CAS服务器会向浏览器发送一个包含Cookie和URL (Location-Header)的重定向。此URL显示为最初请求的受保护URL,但添加了票证参数(包含服务票证)。如果CAS服务器向此URL添加更多参数,是否违反CAS协议?
在我的实际案例中,用户在CAS服务器进行身份验证时从下拉列表中选择一种语言。然后,此lang参数与用户名和密码一起提交,CAS服务器只是将其附加到他在重定向中发送的URL,如"&lang=fr-FR“。
由于该参数,Apereo Java客户端遇到验证失败。这是因为要验证其服务票证的服务URL包含此lang参数。然后,CAS服务器不会验证服务票证,因为它是为不同的URL (没有lang参数)颁发的。
所以我的问题是:这个特定的CAS服务器是否违反了CAS协议?
或者,在构造服务URL进行验证时,Apereo CAS客户端是否应该通过剥离所有未知的请求参数来处理此问题?
发布于 2020-04-20 14:01:12
所以我的问题是:这个特定的
服务器是否违反了CAS协议?
是。
在CAS协议中,登录端点的service为:
服务可选-客户端尝试访问的应用程序的URL。
在CAS协议中,验证端点的service为:
必需的
服务-为其颁发票证的服务的标识符
也在错误代码下指定,
INVALID_SERVICE -提供的票证有效,但指定的服务与与票证关联的服务不匹配。CAS必须使票证无效,并且不允许将来对同一票证进行验证。
https://stackoverflow.com/questions/61286450
复制相似问题