飞天诚信usb-key登录windows+远程桌面
最近在尝试用智能卡做身份验证,以飞天诚信的ePass3000为例。
1、网络环境搭建:
用3台虚机+1台实体机搭一个单独的测试网段:172.16.188.x,如下:
| 机器名 | IP | 操作系统 | 作用 |
| dom | 172.16.188.1 | win server 2008 R2/虚机 | AD域服务器、AD证书服务器、IIS服务器 |
| ter | 172.16.188.10 | win server 2008 R2/虚机 | 远程桌面服务器(也就是以前的终端服务器) |
| win7 | 172.16.188.100 | win7/虚机 | 模拟win7客户端 |
| xp | 172.16.188.101 | win xp sp3/实体机 | 模拟xp客户端 |
2、配置证书服务器
1)进入dom,先添加Active Directory域服务、Web服务器(IIS),再添加Active Directory证书服务,这样会在IIS中建立一个CertSrv网站,用于证书申请和发放。添加证书服务时,会生成一个CA根证书比如secret-DOM-CA,后续所有的证书都由这个证书颁布。
2)管理证书模板:打开管理工具->证书颁发机构->证书模板,右键点击“管理”。在弹出的”证书模板控制台”中,修改“智能卡登录”和“智能卡用户”右键属性->安全选项卡->添加Domain Users的允许读取+注册。也可以通过复制现有模板创建新的证书模板。
3)颁发证书模板:打开管理工具->证书颁发机构->证书模板,右键点击“新建”->要颁发的证书模板,选择“智能卡登录”和“智能卡用户”,确定。
4)修改CA属性:打开管理工具->证书颁发机构->CA名字(如secret-DOM-CA),右键属性->安全,添加Domain Users的允许读取+请求证书。
3、配置IIS服务器
1)添加https支持:打开管理工具->Internet信息服务(IIS)管理器->Default Web Site->右键“编辑绑定”。默认是同时支持http+https的,如果没有,手动添加https,SSL证书选择一个即可,例如dom.secret.company.com。
2)添加CertSrv身份验证:因为以某个用户登录CertSrv并提交申请,就会生成该用户的证书,所以要去掉匿名身份验证,并添加基本+摘要式身份验证。点击CertSrv网站->身份验证,做相应的禁用/启用即可。
3)如果不绑定SSL,会报“为了完成证书注册,必须将CA的网站配置为使用https身份验证”。
4、配置域环境
1)加域:另外3台机器改成上述名字并加入secret.company.com域,重启之后就入域了。这时管理工具->Active Directory用户和计算机->Computers里会出现加入域的机器,分别是ter、win7、xp。
2)加域用户:管理工具->Active Directory用户和计算机->Users里添加用户test。
3)安装ePass3000:所有机器都安装ePass3000驱动,注意勾选“支持智能卡登录操作系统或者VPN”,据说只需要在提交申请的机器上安装即可。
5、申请证书
1)登录CertSrv:在任何一台安装了ePass驱动的机器上,打开IE输入https://dom.secret.company.com/certsrv(注:如果直接输IP地址172.16.188.1在IE8及以上版本会报“此网站的安全证书有问题”,这是因为证书标识的是域名、而不是IP,如果绑定时生成一个标识IP的证书,那么输IP地址就不会报了),使用test用户登录。
2)申请证书:在插入ePass3000的情况下,点击申请证书->高级证书申请->创建并向此CA提交一个申请,首次使用要安装插件CertEnrollCtrl。这时证书模板下拉框里应该有“智能卡用户”和“智能卡登录”这两项了,默认只有用户+基本EFS,如果只有这2项,或者干脆1项都没有,并且报“找不到任何证书模板。您没有从该CA申请证书的权限或者在访问Active Directory时发生错误”的话,请参照“2、配置证书服务器”。CSP下拉框里应该有“FEITIAN ePassNG RSA Cryptographic Service Provider”,如果没有,说明这台机器上ePass的驱动安装有问题,比如我在Server 2008 R2上就怎么也出不来这一项。
3)安装证书:点击提交,ePass开始生成密钥对。下一个页面,点击“安装证书”,ePass开始生成X.509证书。使用ePass的管理工具ePassNgMgr.exe,可以清楚的看到usb里已经存放了test用户的证书和密钥对了。
6、Smart Card登录windows
在windows登录界面插入智能卡,输入pin码,即可以test的域用户身份登录。这里有2个小问题:
1)如果输入pin码后报验证无效,请尝试安装CA根证书,即把CA的根证书加入当前机器的“受信任的根证书颁发机构”。
2)如果usb里存有多个证书,window登录时只会取第一个,而浏览器(IE8+、chrome、firefox等)一般都会提示你选择其中一个。
7、Smart Card登录远程桌面
1)先插入智能卡,如果连的是xp,输好IP点击连接时就会直接让你输pin码,如果是连win7+,会有3种方式让你选择,选择第3项智能卡登录即可。
2)可能会报“智能卡错误:卡所需要的驱动器不在系统上”:这个问题还没有完全解决,目前连xp是OK的,但连win7+Server 2008 R2都报这个错。我理解应该是远程机器上的ePass驱动没有安装正确,但是通过正常登录远程桌面后发现智能卡倒是正确映射过去了。
- 但是在访问CertSrv->高级证书申请时,CSP里确实没有“FEITIAN ePassNG RSA Cryptographic Service Provider”。
- 这篇《How to find CSP currently installed on a computer》指出了本机所有CSP在注册表里的位置,如果手工把xp里的Feitian CSP注册表项导入到目标机器,再次打开CertSrv->高级证书申请页面时,CSP下拉框里有了Feitian,但选择后报“您可能选择了一个不支持在模板中定义的密钥类型的CSP。请在模板中更改密钥类别,或者选择一个不同的CSP或证书模板。”,看来似乎还是驱动没能正确安装+注册,呵呵,这点存疑!
3)ePass安装问题:有可能安装后报“Initialize PKCS#11 Library Failed, 0x0000 0030”,打开services.msc发现关键服务ngSlotD没有创建或没能启动。可自行创建:
sc create ngslotd binPath= "%ProgramFiles%\ngsrv\ngslotd.exe" start= auto depend= ScardSvr
sc start ngslotd
4)允许远程桌面:默认的域策略似乎不允许远程桌面。域服务器->管理工具->组策略管理->组策略对象->Default Domain Policy->右键编辑,打开组策略管理编辑器。
- 计算机配置->策略->windows设置->安全设置->本地策略->用户权限分配->允许通过远程桌面服务登录里,添加Domain Users、Remote Desktop Users等相关组。
- 计算机配置->策略->管理模板->windows组件->远程桌面服务->远程桌面会话主机->连接->允许用户使用远程桌面服务进行远程连接,改为已启用。
- 如果上述设置都无效,可以在目标机器->右键我的电脑->属性->远程->选择用户...里添加Domain Users、Remote Desktop Users等相关组。
8、引用
1)《Smart Card Logon And Authentication》
2)《USB eToken for Windows domain user RDP Authentication》
3)《How to find CSP currently installed on a computer》
飞天诚信usb-key登录windows+远程桌面的更多相关文章
- 重复登录Windows远程桌面-Autoit脚本
非常抱歉,我先临时把脚本放上来,具体的说明有时间再更新: 都是做成快捷方式,用鼠标点击的操作 #include <AutoItConstants.au3> ; Open mstsc pro ...
- Windows远程桌面,连接被拒绝,因为没有授权此用户帐户进行远程登录。
Windows 服务器远程连接的时候,出现错误:“连接被拒绝,因为没有授权此用户帐户进行远程登录.”,导致无法远程登录服务器,如下图所示: 问题分析 该错误一般是由于 Windows 远程桌面相关权限 ...
- Windows远程桌面连接Mac OS X
Windows远程桌面连接Mac OS X 第一步:Mac OS X 10.5 已经增加支持了由VNC Viewer访问的功能,设置如下: 系统偏好设置-共享-勾选“屏幕共享”,然后在电脑设置 ...
- CentOS下通过rdesktop连接Windows远程桌面
众所周知,微软的Windows提供了一种远程桌面系统(Remote Desktop),该服务的默认端口是3389,可使用户远程登录进行系统管理或作为终端服务器运行各种应用软件. 而要连接Windows ...
- windows 远程桌面连接 RPi 2B
/************************************************************************* * windows 远程桌面连接 RPi 2B * ...
- qq远程连接/windows远程桌面/teamviwer/xmanager/vnc的区别
软件 客户端运行平台 服务端运行平台 服务端是否需要同子网或公网IP 网络断开当前执行命令是否会中止 评价 QQ远程连接 windows windows 否 否 感觉用了一两分钟就动不了了 windo ...
- 解决Windows远程桌面连接每次都提示输入密码的问题,远程桌面记不住密码
FROM:http://www.veryhuo.com/a/view/80444.html Windows 远程桌面连接几乎每天都用,所以使用的方便性非常重要.如果你经常用,也许会发现在某些系统中,每 ...
- linux下使用FreeRDP 连接 Windows 远程桌面
linux下使用FreeRDP 连接 Windows 远程桌面 简介 FreeRDP 是一款开源的远程桌面系统,支持多种平台, 在 ubuntu 中使用 FreeRDP 可以很方便的登录到 win ...
- CentOS7配置图形界面及设置vnc远程连接、windows远程桌面连接
安装CentOS桌面 yum groupinstall "GNOME Desktop" 重启,进入终端,将启动模式变更为图形模式 systemctl set-default gra ...
随机推荐
- Hibernate的集合映射与sort、order-by属性
[Hibernate]Hibernate的集合映射与sort.order-by属性 常用集合Set.List.Map,相信大家都很熟悉,面试中也会经常问.Set和List都继承了Collection接 ...
- JavaWeb学习总结(三)—Servlet
1. 什么是Servlet * Servlet是JavaWeb三大组件之一(Servlet.Filter.Listener) ,Servlet是用来处理客户端请求的动态资源,按照一种约定俗成的称呼习惯 ...
- Android GestureDetector方法详解
为了加强点击.拖动响应事件,Android提供了GestureDetector手势识别类.通过GestureDetector.OnGestureListener来获取当前被触发的操作手势(Single ...
- Spring Bean配置默认为单实例 pring Bean生命周期
Bean默认的是单例的. 如果不想单例需要如下配置:<bean id="user" class="..." scope="singleton&q ...
- 20160805_CentOS6_键盘快捷键
1. 系统 -->首选项 --> 键盘快捷键 2. 3.
- 动画Animation
动画分类:Animation 单一动画 AnimationSet 复合动画 AnimationSet是Animation的实现子类,Animation是一个抽象类,他的实现子类主要有如下几种: 主要有 ...
- Selenium解决页面元素不在视野范围内的问题
当需要使用滚动条才能使页面元素显示在视野范围内时,必须用代码处理下,才能对其进行操作. 处理其实也很简单,就是调用JS函数. driver.executeScript("arguments[ ...
- 【bzoj1027】合金
[bzoj1027]合金 分析 数形结合+计算几何+Floyd最小环. http://blog.csdn.net/popoqqq/article/details/40539273 虽然这样占大家的很不 ...
- JavaScript ——闭包理解
昨天晚上听别人谈起闭包这个东西,虽然对js有一点了解但却丝毫没有印象,今天也没什么事就顺便研究了一下满足好奇宝宝.整合于网上的理解,记录一下. 一.闭包的作用域 要理解闭包,首先必须理解Javascr ...
- WLAN历史概述-01
无线网络介绍 无线网络的初步应用,可以追朔到第二次世界大战期间,当时美国陆军采用无线电信号做资料的传输.他们研发出了一套无线电传输科技,并且采用相当高强度的加密技术,得到美军和盟军的广泛使用.他们也许 ...