Я внедрил службу единого входа и через много дней получил ее. Но теперь у меня есть проблема, служба 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 </p>
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. | | | | | <= '<a href="https://www.XX.com/portal.php" rel="nofollow noreferrer">https://www.XX.com/portal.php'
3CEF. | | | | <= '<a href="https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php" rel="nofollow noreferrer">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 </p>
3CEF. | | | | <= false </p>
3CEF. | | | | не удалось открыть URL '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, 'Билет не проверен', '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. | | | | | <= '<a href="https://www.XX.com/portal.php" rel="nofollow noreferrer">https://www.XX.com/portal.php'
3CEF. | | | | | URL CAS: 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 (логин, портал ...) - на другом сервере. Я настраивал брандмауэр, но, возможно, я делаю что-то плохое, но я не знаю, что может быть, потому что в локальной системе он работает отлично.
Если я ввожу URL-адрес validateService с сервисом и тикетом (https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB-cas) в браузере, я правильно получаю имя пользователя, поэтому не знаю, почему в транзакции phpCAS не работает.
Надеюсь, вы мне поможете, спасибо за ваши ответы!