问题标签 [phpcas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
290 浏览

php - phpCAS 服务验证 URL 缺少主机/上下文

我将 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::setServerServiceValidateURL('https://[host]/idp/[context]/serviceValidate/'); 这没有任何区别。

我能够在不同的目录中使用完全相同的 CASConfig.php / login 设置。

我还尝试对源进行一些更改(检查 URL 并在不正确时进行替换)但无济于事。

0 投票
1 回答
520 浏览

php - phpCas 想要进行身份验证时的无限重定向循环

我将我的 ZendFramework 1 项目与这个示例集成在一起。

当用户未登录时,phpCAS 正确重定向到 CAS 登录页面,但当用户登录时,phpCAS::checkAuthentication() 重复无限重定向循环,直到浏览器停止。我在一个单独的简单 php 文件上运行上面的示例,它工作正常,但是当我将该代码复制到我的 Zend Framework 1 控制器时,会发生这种情况(无限循环)。我应该怎么办?

0 投票
1 回答
897 浏览

authentication - “需要CAS认证!” 拉拉维尔 5.5

我在 Laravel 5.5 中使用 subfission/cas“dev-master”分支,在 phpCAS 1.3.5 中使用 PHP 7.0.27。我有两台安装相同 Laravel 的服务器(测试和产品)。但是,当我通过 CAS 登录时,一台服务器重定向到相应的登录屏幕,而另一台服务器给我一个白屏:

CAS认证想要!

您应该已经被重定向到 CAS 服务器。点击此处继续。phpCAS 1.3.5 使用服务器https://example.com/cas/ (CAS 2.0)

单击“单击此处”将我发送到我需要去的地方,但我很困惑这个错误是如何发生的,甚至它意味着什么。似乎没有太多关于此的文档

0 投票
0 回答
1010 浏览

php - 两个不同服务器之间的 CAS

我已经安装了一个带有公共域的 CAS 服务器,它可以正常工作。

现在我想通过 CAS 身份验证将我的其他公共域与不同的服务一起使用,但是,在登录 CAS 后,当我重定向到这些服务时,PHPCas 告诉我“身份验证失败,您没有经过身份验证”

我已经搜索了很长时间,但找不到任何解决方案。我需要的是保持两台服务器之间的 CAS 会话。

PHPCas认证的配置是:

网址是这样的:http://client.com/portal.php?ticket=ST- ..... 所以票证被授予(在 CAS 服务器日志中告诉“票证被授予”),为什么认证失败?

这里有 phpCAS 的日志:

我已将真实 URL 更改为 XX,只是为了保护隐私 :) 我能做什么?谢谢!

0 投票
1 回答
626 浏览

laravel - 如何在 laravel 5.* 中实现 phpCAS

我几乎是 Laravel 的新手。我需要phpCAS在 Laravel 5 的项目中使用,但我不知道该怎么做。我已经在 Github 中看到了关于 subfission 的文档。它解释了如何安装它,但我不知道如何在我的项目中使用它。有人可以告诉我它的用法示例吗?谢谢

0 投票
1 回答
1407 浏览

cas - 无法通过 CAS 进行身份验证

我已经实现了 SSO 服务,并且在很多天之后,我得到了它。但是现在我遇到了一个问题,如果您在本地网络和位于同一位置的另一个网络中,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::_wasPreviousAuthenticated() [Client.php:1393]

3CEF。| | | | 未找到用户 [Client.php:1635]

3CEF。| | | <= 假

3CEF。| | | CAS 2.0 票证“ST-7-6cgDalH6VPKQ5vE6SyCB-cas”存在 [Client.php:1447]

3CEF。| | | => CAS_Client::validateCAS20('', NULL, NULL, false) [Client.php:1450]

3CEF。| | | | [客户端.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。| | | | | <= ' https://www.XX.com/portal.php '

3CEF。| | | | <= ' 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。| | | | | <= 假

3CEF。| | | | <= 假

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: Connection refused ) [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 ',真)[Client.php:3198]

3CEF。| | | | | => CAS_Client::getURL() [AuthenticationException.php:77]

3CEF。| | | | | <= ' https://www.XX.com/portal.php '

3CEF。| | | | | CAS URL: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(登录、门户...)位于另一台服务器中。我一直在配置防火墙,但可能我做错了,但我不知道会发生什么,因为在本地它运行良好。

如果我使用服务和票证输入 validateService 的 URL(https://XX.com:8442/cas/serviceValidate?service=https%3A%2F%2Fwww.XX.com%2Fportal.php&ticket=ST-7-6cgDalH6VPKQ5vE6SyCB- cas ) 在浏览器上我得到了正确的用户名,所以我不知道为什么在 phpCAS 的事务中不起作用。

我希望你能帮助我,谢谢你的回答!

0 投票
1 回答
222 浏览

php - phpCAS html表单验证用户名和密码

我正在尝试使用 phpCAS 通过 CAS 服务器验证用户名和密码,但在互联网上没有找到任何相关内容。一旦用户输入他们的用户名和密码,我如何使用 phpCAS 通过 CAS 服务器对其进行身份验证?另外,如何将用户重定向到不同的 .php 页面?我看到我们可以使用 phpCAS:foreAuthentication() 对用户进行身份验证,但我试图了解如何使用它对用户进行身份验证。谢谢!

0 投票
0 回答
72 浏览

cas - CAS 通过另一个子域进行身份验证

在我的工作地点,我们不控制 CAS 授权的应用程序,但在 foobar.com/app-one 上托管的应用程序拥有现有的 CAS 授权。

当用户登录时,他们会得到正确的身份验证,并为应用程序提供服务。最近,我们添加了一个新应用程序 foobar.com/app-two。不幸的是,在登录时,用户会收到一条消息“应用程序未授权使用 CAS”。作为参考,这两个都禁用了 CAS 服务器验证。

但是,如果用户访问 foobar.com/app-one,对自己进行身份验证,然后导航到 foobar.com/app-two,则页面将毫无问题地提供。

我如何让未经身份验证的用户访问 app-2,被定向到 app-one 的授权登录组件,然后被重定向到 app-2?

编辑:我可以在我的请求中传递一个新的重定向位置或类似的东西吗?

0 投票
1 回答
235 浏览

php - 由于 CORS“Access-Control-Allow-Origin”不存在,phpCAS 注销失败

我有一个 Angular 4 的前端并连接我正在使用 phpCAS,我将它放在一个文件夹 /backend 与我的前端相同的位置。

在我的前面,我的 Angular 的 index.html 所在的位置,有一个 index.php 文件首先启动,并且在调用我的身份验证后包含 index.html。

然后身份验证按预期工作,但每当我想断开连接时,我都会使用以下内容调用我的后端:

前面的断开按钮(角度)

注销.php

初始化文件

我收到一个 CORS 错误,提示“同源策略不允许在...处读取远程资源(原因:CORS 标头 'Access-Control-Allow-Origin' 缺失)”

我不明白的是我从我的服务器调用它(因为我要求获取我的 php 文件并且我的连接工作方式完全相同)所以不应该有 CORS 请求。

我在那里想念什么?

0 投票
0 回答
74 浏览

php - 在cakephp 3中与phpCAS连接时的无限循环重定向

我正在将我的项目从 Cakephp 2 迁移到 Cakephp 3。所以在我决定迁移 phpCas 身份验证之后,在导航器决定停止该过程之前会有一个无限重定向。经过大量研究,我发现问题是我的会话变量在重定向后没有保留。我查看了当前的会话编号,实际上每次重定向会话 id 都是不同的,关于我的用户的信息已经消失。我在 app.php 中使用 php 的默认模式配置了会话。我还认为会话应该在使用 cookie 重定向后找到它的编号,并且可能我的没有激活。当我检查 phpCas 日志时,登录很好,我找到了我的用户名。一切顺利,只有我的会话变量在重定向后没有保留。