Я использую phpCAS с SAML. Когда я открываю URL для входа, я перенаправляюсь на idp и могу войти как обычно. При перенаправлении [успешный вход в систему] phpCAS пытается использовать неполный URL для проверки. Отсутствует хост / контекст https://idp.whatever.com/login_to_cas/here
и включает в себя только serviceValidate/?ticket=
часть.
Я получаю это сообщение:
Curl error: Could not resolve host: serviceValidate; Name or service not knownArray ( [url] => HTTP://serviceValidate/?ticket=[ticket]
Журнал phpCAS не показывает сообщение об ошибке, он заканчивается на:
Redirect to : [idp url]/login?service=[referrer] [Client.php:1635]
exit()
Вот как я настроил phpCAS в своем скрипте:
phpCAS::setDebug();
phpCAS::setVerbose(true);
phpCAS::client(SAML_VERSION_1_1, $cas_host, $cas_port, $cas_context);
phpCAS::setNoCasServerValidation();
if(!phpCAS::isAuthenticated()){
phpCAS::forceAuthentication();
}
Я также попытался добавить:
phpCAS::setServerServiceValidateURL('https://[host]/idp/[context]/serviceValidate/');
который не имел значения.
Я смог использовать точно такую же настройку CASConfig.php / login в другом каталоге.
Я также попытался сделать несколько изменений в источнике (проверка URL и замена, если он неверен), но безрезультатно.
Задача ещё не решена.
Других решений пока нет …