2

我将 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 并在不正确时进行替换)但无济于事。

4

0 回答 0