Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mod Auth CAS两个登录系统_Php_Authentication_Apache2_Cas - Fatal编程技术网

Php Mod Auth CAS两个登录系统

Php Mod Auth CAS两个登录系统,php,authentication,apache2,cas,Php,Authentication,Apache2,Cas,我需要支持大学CAS认证系统。这在Apache2上使用mod_auth_cas很简单,并且工作正常 我们现在需要向系统中添加非大学用户。这实际上意味着我们需要支持两个登录系统。第二个登录系统是我们自己的定制风格,它只是通过POST to PHP对用户进行身份验证 这似乎是一个不可能设置的环境。有什么提示吗?结果证明解决方案是phpCAS 使用常规的mod_auth_cas,您正在将整个位置囚禁在cas后面,无法选择禁用它 使用phpCAS,您可以选择在php文件中执行身份验证 我的所有php文件

我需要支持大学CAS认证系统。这在Apache2上使用mod_auth_cas很简单,并且工作正常

我们现在需要向系统中添加非大学用户。这实际上意味着我们需要支持两个登录系统。第二个登录系统是我们自己的定制风格,它只是通过POST to PHP对用户进行身份验证


这似乎是一个不可能设置的环境。有什么提示吗?

结果证明解决方案是phpCAS

使用常规的mod_auth_cas,您正在将整个位置囚禁在cas后面,无法选择禁用它

使用phpCAS,您可以选择在php文件中执行身份验证

我的所有php文件都通过ajax POST GET请求进行通信,因此需要登录机制来防止未登录时访问这些文件并导致重定向。使用php$\u会话变量,我们可以存储登录是否成功。在每次访问中,我们都可以检查$\u SESSION变量,并在将JSON消息推回到javascript客户机后快速退出,通知他们失败并重定向

当用户尝试登录时,他们可以选择CAS路由。使用phpCAS,它将正确地将它们重定向到CAS服务器,并在完成后返回到我的应用程序。如果他们选择内部登录数据库,那么他们会像任何自制登录系统一样填写简单的表单。在这两种情况下,$\会话都存储成功,并且在访问关键PHP文件时检查和验证成功


因为它是经过验证和检查的,所以我们将在这里捕获它。内部登录系统将与PHP会话一起过期。

也许某种ACL(访问控制列表)将决定向用户提供正确的登录系统?我不熟悉这个领域。我最初的猜测是提供一个选项,让用户选择使用哪个系统。然而,mod_auth_cas是一个Apache2模块,用于保护目录。例如,我的URL上/foo后面的所有文件都是针对CAS服务器进行身份验证的。我不知道如何去那里。我想phpCAS是我需要的。它允许我在PHP访问级别上控制CAS身份验证,而不是将整个目录放在监狱后面。在这种情况下,phpCAS将不起作用,因为所涉及的PHP仅充当服务器,而不是渲染器。一切都是基于javascript和ajax的。