繁体   English   中英

如何使php应用程序需要智能卡身份验证

[英]How to make php application to require smart card authentication

当php文件在apache conf中使用SSLVerifyClient保护时,我可以使浏览器强制使用智能卡进行身份验证,例如ID卡。

现在我需要显示index.php而不需要智能卡身份验证,有时这个页面必须得到用户身份验证。

doStuff();
if ($needed==1)
  authenticateUser();
doMoreStuff();

必须authenticateUser()包含什么,以便调用它会导致浏览器询问智能卡密码?

你把东西混合了一点点。
authenticateUser(); 在服务器上运行,而在客户端上进行身份验证。 您不能停止运行PHP脚本进行客户端身份验证,然后继续运行PHP脚本。

作为您问题的解决方案,这可能适用于您的情况:

if(authenticationNeeded)
{
   // redirect to a page that requires authentication that does what index was supposed to do.
   redirect('index_ssl.php');
}

通过使用.htaccess您只能为某些目录/文件定义SSLVerifyClient require
关键点在于:您的Web服务器(在本例中为Apache)需要客户端证书才能授予对您指定SSLVerifyClient require任何目录/文件的访问权限。

总之,没有办法做你想做的事。 您只能拥有需要或不需要客户端证书的文件/目录。 为了要求客户端证书,没有办法在PHP文件中间停止,但您可以重定向到需要一个证书的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM