我有一个.NET 4.0 MVC 3站点,目前设置为针对较旧的3.4.4 Jasig CAS服务器进行身份验证。我只是尝试更新配置以连接到较新的3.5.1服务器(此服务器已经使用了一段时间,许多应用程序成功使用它)。更新配置后,它会正确定向到CAS,并且我能够成功进行身份验证,但它不会像之前那样重定向回网站。我还注意到它一直在向URL添加renew=true
查询参数,即使我在配置中指定了renew="false"
。任何想法为什么它不会在认证后重定向以及为什么它一直添加这个参数?
旧配置(连接到3.4.4 CAS服务器):
<casClientConfig casServerLoginUrl="https://old.example.com:8443/cas/login"
casServerUrlPrefix="https://old.example.com:8443/cas/"
serverName="http://wwwtest.example.com/mysite/"
notAuthorizedUrl="~/Home/NotAuthorized"
cookiesRequiredUrl="~/Home/CookiesRequired"
redirectAfterValidation="true"
gateway="false"
renew="false"
singleSignOut="true"
ticketTimeTolerance="5000"
ticketValidatorName="Cas20"
proxyTicketManager="CacheProxyTicketManager"
serviceTicketManager="CacheServiceTicketManager"
gatewayStatusCookieName="CasGatewayStatus" />
更新了配置(连接到3.5.1 CAS服务器):
<casClientConfig
casServerUrlPrefix="https://new.example.com/cas/"
casServerLoginUrl="https://new.example.com/cas/login"
serverName="https://wwwtest.example.com"
ticketValidatorName="Cas20"
singleSignOut="true"
renew="false"
redirectAfterValidation="true"
serviceTicketManager="CacheServiceTicketManager" />
答案 0 :(得分:1)
我最终发现重定向循环是由于CAS服务器和应用程序之间的TLS不兼容造成的。较新的CAS服务器默认使用更新的TLS版本。我更新了我的应用程序以使用相同的协议,并且重定向循环已停止。
更多信息:https://github.com/apereo/dotnet-cas-client/issues/72#issuecomment-337612023