CAS между двумя разными серверами

Я установил CAS-сервер с публичным доменом, и он работает правильно.

Теперь я хочу использовать свой другой общедоступный домен с другими службами с аутентификацией CAS, но после входа в систему в CAS, когда я перенаправляю на эти службы, PHPCas сообщает мне: «Аутентификация не удалась, вы не прошли аутентификацию»

Я долго искал и не нашел решения. Мне нужно поддерживать сеанс CAS между двумя серверами.

Конфигурация аутентификации PHPCas:

phpCAS::client(CAS_VERSION_2_0,'example.com', 8443,'/cas', TRUE);

URL такой: http://client.com/portal.php?ticket=ST- ..... Итак, билет предоставлен (в журнале сервера CAS указано, что «тикет предоставлен»), почему не удается выполнить аутентификацию?

Вот журнал phpCAS:

D4B6 .START (2018-03-15 11:57:13) phpCAS-1.3.5+ ****************** [CAS.php:468]
D4B6 .=> phpCAS::client('2.0', 'XX.com', 8443, '/cas') [portal.php:10]
D4B6 .|    => CAS_Client::__construct('2.0', false, 'XX.com', 8443, '/cas', true) [CAS.php:360]
D4B6 .|    |    Starting a new session okutpm09o0akdi2bisd1q9ivg5 [Client.php:932]
D4B6 .|    |    Session is not authenticated [Client.php:938]
D4B6 .|    <= ''
D4B6 .<= ''
D4B6 .=> phpCAS::setNoCasServerValidation() [portal.php:13]
D4B6 .|    You have configured no validation of the legitimacy of the cas server. This is not recommended for production use. [CAS.php:1644]
D4B6 .<= ''
D4B6 .=> phpCAS::forceAuthentication() [portal.php:16]
D4B6 .|    => CAS_Client::forceAuthentication() [CAS.php:1098]
D4B6 .|    |    => CAS_Client::isAuthenticated() [Client.php:1280]
D4B6 .|    |    |    => CAS_Client::_wasPreviouslyAuthenticated() [Client.php:1393]
D4B6 .|    |    |    |    no user found [Client.php:1635]
D4B6 .|    |    |    <= false
D4B6 .|    |    |    no ticket found [Client.php:1494]
D4B6 .|    |    <= false
D4B6 .|    |    => CAS_Client::redirectToCas(false) [Client.php:1289]
D4B6 .|    |    |    => CAS_Client::getServerLoginURL(false, false) [Client.php:1656]
D4B6 .|    |    |    |    => CAS_Client::getURL() [Client.php:342]
D4B6 .|    |    |    |    |    Final URI: https://www.XX.com/newlogin/v1/portal.php [Client.php:3549]
D4B6 .|    |    |    |    <= 'https://www.XX.com/newlogin/v1/portal.php'
D4B6 .|    |    |    <= 'https://XX.com:8443/cas/login?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php'
D4B6 .|    |    |    Redirect to : https://XX.com:8443/cas/login?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php [Client.php:1663]
D4B6 .|    |    |    exit()
D4B6 .|    |    |    -
D4B6 .|    |    -
D4B6 .|    -
B117 .START (2018-03-15 11:57:15) phpCAS-1.3.5+ ****************** [CAS.php:468]
B117 .=> phpCAS::client('2.0', 'XX.com', 8443, '/cas') [portal.php:10]
B117 .|    => CAS_Client::__construct('2.0', false, 'XX.com', 8443, '/cas', true) [CAS.php:360]
B117 .|    |    Starting a new session okutpm09o0akdi2bisd1q9ivg5 [Client.php:932]
B117 .|    |    Session is not authenticated [Client.php:938]
B117 .|    |    Ticket 'ST-43-bcpN1lrL0uxok07f9Xf4-cas' found [Client.php:1020]
B117 .|    <= ''
B117 .<= ''
B117 .=> phpCAS::setNoCasServerValidation() [portal.php:13]
B117 .|    You have configured no validation of the legitimacy of the cas server. This is not recommended for production use. [CAS.php:1644]
B117 .<= ''
B117 .=> phpCAS::forceAuthentication() [portal.php:16]
B117 .|    => CAS_Client::forceAuthentication() [CAS.php:1098]
B117 .|    |    => CAS_Client::isAuthenticated() [Client.php:1280]
B117 .|    |    |    => CAS_Client::_wasPreviouslyAuthenticated() [Client.php:1393]
B117 .|    |    |    |    no user found [Client.php:1635]
B117 .|    |    |    <= false
B117 .|    |    |    CAS 2.0 ticket `ST-43-bcpN1lrL0uxok07f9Xf4-cas' is present [Client.php:1447]
B117 .|    |    |    => CAS_Client::validateCAS20('', NULL, NULL, false) [Client.php:1450]
B117 .|    |    |    |     [Client.php:3170]
B117 .|    |    |    |    => CAS_Client::getServerServiceValidateURL() [Client.php:3177]
B117 .|    |    |    |    |    => CAS_Client::getURL() [Client.php:453]
B117 .|    |    |    |    |    |    Final URI: https://www.XX.com/newlogin/v1/portal.php [Client.php:3549]
B117 .|    |    |    |    |    <= 'https://www.XX.com/newlogin/v1/portal.php'
B117 .|    |    |    |    <= 'https://XX.com:8443/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php'
B117 .|    |    |    |    => CAS_Client::_readURL('https://XX.com:8443/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php&ticket=ST-43-bcpN1lrL0uxok07f9Xf4-cas', NULL, NULL, NULL) [Client.php:3192]
B117 .|    |    |    |    |    => CAS_Request_CurlRequest::sendRequest() [AbstractRequest.php:242]
B117 .|    |    |    |    |    |    curl_exec() failed [CurlRequest.php:77]
B117 .|    |    |    |    |    <= false
B117 .|    |    |    |    <= false
B117 .|    |    |    |    could not open URL 'https://XX.com:8443/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php&ticket=ST-43-bcpN1lrL0uxok07f9Xf4-cas' to validate (CURL error #7: Failed to connect to XX.com port 8443: Connection refused) [Client.php:3195]
B117 .|    |    |    |    => CAS_AuthenticationException::__construct(CAS_Client, 'Ticket not validated', 'https://XX.com:8443/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php&ticket=ST-43-bcpN1lrL0uxok07f9Xf4-cas', true) [Client.php:3199]
B117 .|    |    |    |    |    => CAS_Client::getURL() [AuthenticationException.php:77]
B117 .|    |    |    |    |    <= 'https://www.XX.com/newlogin/v1/portal.php'
B117 .|    |    |    |    |    CAS URL: https://XX.com:8443/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fnewlogin%2Fv1%2Fportal.php&ticket=ST-43-bcpN1lrL0uxok07f9Xf4-cas [AuthenticationException.php:80]
B117 .|    |    |    |    |    Authentication failure: Ticket not validated [AuthenticationException.php:81]
B117 .|    |    |    |    |    Reason: no response from the CAS server [AuthenticationException.php:83]
B117 .|    |    |    |    |    exit()
B117 .|    |    |    |    |    -
B117 .|    |    |    |    -
B117 .|    |    |    -
B117 .|    |    -
B117 .|    -

Я изменил реальный URL на XX, просто для конфиденциальности :) Что я могу делать? Спасибо!

Вы пробовали phpCAS::setDebug() или phpCAS::setVerbose(true) для получения дополнительной информации? Вы также можете попробовать отключить проверку сертификата, чтобы узнать, не в этом ли проблема (phpCAS::setNoCasServerValidation()) github.com/apereo/phpCAS/blob/master/docs/examples/…

Curtis Kelsey 13.03.2018 14:03

Привет, @CurtisKelsey, спасибо за ответ. Я отключил проверку сертификатов и setDebug. Я поставил подробные сведения, и единственное, что я получил в качестве дополнительной информации, это следующее: phpCAS 1.3.5+ с использованием сервера https: // ...... (CAS 2.0). Страница подключается к CAS, но говорит, что аутентификация не удалась (я вижу номер билета в URL-адресе)

msabate 14.03.2018 09:47

Без дополнительной информации невозможно помочь, кроме простых рекомендаций, которые я предоставил. Можете ли вы опубликовать результаты отладки?

Curtis Kelsey 14.03.2018 13:03

Где это должно быть? В /tmp/phpCAS.log ?? У меня там нет журнала ... :( На данный момент я даю вам подробное описание: phpCAS 1.3.5+ с использованием сервера example.com:8443/cas (CAS 2.0)

msabate 14.03.2018 13:20
wiki.jasig.org/display/CASC/phpCAS+troubleshooting предоставляет информацию о том, где находится файл отладки. По умолчанию во временный каталог системы.
Curtis Kelsey 14.03.2018 14:45

Я знаю, но на моем сервере у меня нет phpCAS.log в / tmp :(

msabate 14.03.2018 18:35

@CurtisKelsey Мне удалось получить журнал. Я только что отредактировал свой вопрос

msabate 15.03.2018 11:55

журнал показывает, что конечная точка XX.com:8443/cas/serviceValidate сервера CAS не отвечает. Проверьте это.

Curtis Kelsey 15.03.2018 18:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
857
0

Другие вопросы по теме