Невозможно пройти проверку подлинности с помощью CAS - PullRequest
0 голосов
/ 09 мая 2018

Я внедрил службу единого входа и через много дней получил ее. Но теперь у меня есть проблема, служба 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 не работает.

Надеюсь, вы мне поможете, спасибо за ваши ответы!

1 Ответ

0 голосов
/ 30 мая 2018

Вы получаете соединение отказано. Это явно проблема с брандмауэром. Если вы развернули свое приложение CAS на сервере, убедитесь, что сервер находится в надлежащей зоне защищенного брандмауэра, к которой можно получить доступ извне. Специалист по сетевой безопасности в вашей организации должен быть в состоянии помочь вам в этом.

...