2011-05-03 70 views
3

过去几天我一直在做这方面的一些研究,但还没有找到解决办法。我已经看到包含php Exec()函数来调用外部应用程序来处理这个问题的建议。我一直在寻找这样一个基于PHP的站点的教程 - http://securitythroughabsurdity.com/2007/04/implementing-smart-card-authentication.html。任何意见或指导,将不胜感激。智能卡启用IIS 6上托管的PHP网站?

感谢, 杰里

编辑 - 我检查这个帖子出来How to make php application to require smart card authentication但它不属于我的目标。 SSLVerifyClient是否需要与智能卡一起使用?

+0

我认为您需要让Web服务器处理基于X.509证书的身份验证,并将用户凭据作为服务器变量传递给PHP脚本。客户的私钥可以存储在智能卡上,但当然Web服务器不能直接控制它。 – Borealid 2011-05-03 14:41:57

+0

感谢您的回复。不幸的是,我不管理该网站托管的服务器,所以我遇到了很多障碍。 – Jerry 2011-05-05 15:42:49

+0

你需要什么样的接口/设备才能从智能卡获取数据?几年前我创建了一个使用磁卡进行身份验证的应用程序。有[devices](http://www.google.com/products/catalog?q=magnetic+card+reader&um=1&ie=UTF-8&tbm=shop&cid=9253952205062488166&sa=X&ei=gz8cT_2rD4-ctwfBzPSoCw&ved=0CIwBEPMCMAA),其功能类似于键盘,让您通过该设备刷卡,而鼠标焦点是某种形式的文本输入。也许类似的东西会在这里工作? – quickshiftin 2012-01-22 16:56:40

回答

1

我们在爱沙尼亚使用智能卡解决方案很多,因为许多地方都支持国家ID。我认为你看起来有点困惑 - 你不需要exec()。您需要的是配置您的Web服务器(在这种情况下为IIS)以向客户端请求证书。这与PHP无关。这可以基于路径,子域或类似这样来完成,并且这可以是可选的或者是必需的。例如,我们经常会将子域名配置为只能使用ID访问la http://id.foobar。芯片卡只是证书和密钥的载体。通常这是无论如何“基于客户端的证书”和谷歌。 可以配置强制性或可选客户机证书要求。强制性是安全的,因为没有身份证的人无法看到服务器上的任何内容。但是这也有不足之处 - 他们也看不到任何错误消息。我们经常使用可选要求。 在PHP方面,你只是收到某种环境变量。你需要检查他的内容。您可以通过谷歌搜索SSL_CLIENT_S_DN获取您要搜索的内容。这是使用Apache Web服务器时获得的变量的名称。关于IIS我什么都不知道,但基本原理是一样的,只是变量和配置选项命名不同。