我已经实施了一项SSO服务,经过很多天,我已经得到了它。但是现在我遇到了问题,如果你在本地网络和位于同一地方的另一个网络中,CAS服务(SSO)可以工作,但是如果我从外部网络连接我就无法连接。我可以访问服务,但一步失败并出现错误:连接被拒绝。
我使用phpCAS来验证服务,日志是这样的:
3CEF。=> phpCAS :: forceAuthentication()[portal.php:16]
3CEF。| => CAS_Client :: forceAuthentication()[CAS.php:1098]
3CEF。| | => CAS_Client :: isAuthenticated()[Client.php:1280]
3CEF。| | | => CAS_Client :: _ wasPreviouslyAuthenticated()[Client.php:1393]
3CEF。| | | |没有用户找到[Client.php:1635]
3CEF。| | | < = false
3CEF。| | | CAS 2.0门票`ST-7-6cgDalH6VPKQ5vE6SyCB-cas'在场[Client.php:1447]
3CEF。| | | => CAS_Client :: validateCAS20('',NULL,NULL,false)[Client.php:1450]
3CEF。| | | | [Client.php:3169]
3CEF。| | | | => CAS_Client :: getServerServiceValidateURL()[Client.php:3176]
3CEF。| | | | | => CAS_Client :: getURL()[Client.php:453]
3CEF。| | | | | |最终URI:https://www.XX.com/portal.php [Client.php:3548]
3CEF。| | | | | < =' https://www.XX.com/portal.php'
3CEF。| | | | < =' https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php'
3CEF。| | | | => CAS_Client :: _ readURL(' https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB-cas',NULL,NULL,NULL)[Client.php:3191]
3CEF。| | | | | => CAS_Request_CurlRequest :: sendRequest()[AbstractRequest.php:242]
3CEF。| | | | | | curl_exec()失败[CurlRequest.php:77]
3CEF。| | | | | < = false
3CEF。| | | | < = false
3CEF。| | | |无法打开网址' https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB-cas'验证( CURL错误#7:无法连接到XX.com端口8442:拒绝连接)[Client.php:3194]
3CEF。| | | | => CAS_AuthenticationException :: __ construct(CAS_Client,' Ticket not validated',' https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB-cas',true)[Client.php:3198]
3CEF。| | | | | => CAS_Client :: getURL()[AuthenticationException.php:77]
3CEF。| | | | | < =' https://www.XX.com/portal.php'
3CEF。| | | | | CAS URL:https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB-cas [AuthenticationException.php:80]
3CEF。| | | | |身份验证失败:故障单未验证[AuthenticationException.php:81]
3CEF。| | | | |原因:CAS服务器没有响应[AuthenticationException.php:83]
3CEF。| | | | |出口()
3CEF。| | | | | -
3CEF。| | | | -
3CEF。| | | -
3CEF。| | -
3CEF。| -
正如我所说,它适用于本地和半地方的"网络,但我无法通过外部网络进行身份验证。
我打开了端口8442,由于某种原因,从外部网络端口8442关闭。我知道这是问题所在,但我不知道如何让这个端口监听应用程序。实际上,CAS服务位于服务器中,而WebService(登录,门户...)位于另一台服务器中。我一直在配置防火墙,但可能我做的不好但我不知道可能是什么,因为在本地它运行得很好。
如果我在浏览器上输入带有服务和票证(https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB-cas)的validateService的URL,我会正确获取用户名,所以我不知道为什么在phpCAS的交易中无效。
我希望你能帮助我,谢谢你的答案!
答案 0 :(得分:0)
您的连接被拒绝了。这显然是一个防火墙问题。如果已在服务器上部署CAS应用程序,请确保该服务器位于可从外部访问的正确安全防火墙区域。您组织中的网络安全人员应该能够为您提供帮助。