5.5. 智能卡

本节介绍了如何为通过 SGD 显示的 Windows 应用程序配置智能卡。

本节包括以下主题:

5.5.1. 与 Windows 应用程序一起使用智能卡

SGD 允许用户从在 Windows 应用服务器上运行的应用程序访问连接到其客户端设备的智能卡读卡器。用户可以执行以下操作:

  • 使用智能卡登录 Windows 应用服务器。

  • 使用在 Windows 应用服务器上运行的应用程序时,访问智能卡上的数据。例如,使用证书对电子邮件进行签名或加密。

SGD 可以与任何符合个人计算机/智能卡 (Personal Computer/Smart Card, PC/SC) 标准的智能卡和读卡器一起工作。《Oracle Secure Global Desktop 发行版 4.7 平台支持和发行说明》中列出了已使用 SGD 成功测试的智能卡的详细信息,该文档位于 http://www.oracle.com/technetwork/documentation/sgd-193668.html

5.5.2. 设置对智能卡的访问

SGD 管理员可以授予用户从通过 SGD 显示的 Windows 应用程序访问智能卡读卡器的权限。设置对智能卡的访问涉及以下配置步骤:

  1. 在应用服务器上启用智能卡服务。

    请参见第 5.5.3 节 “针对智能卡配置 Microsoft Windows 应用服务器”

  2. 为 SGD 用户启用对智能卡的访问权限。

    请参见第 5.5.4 节 “在 SGD 中启用智能卡”

  3. 在客户端设备上配置智能卡读卡器。

    请参见第 5.5.5 节 “在客户端设备上配置智能卡读卡器”

  4. 使用智能卡登录到应用服务器。

    请参见第 5.5.6 节 “如何使用智能卡登录 Microsoft Windows 应用服务器”

5.5.3. 针对智能卡配置 Microsoft Windows 应用服务器

要针对智能卡配置 Microsoft Windows 应用服务器,请执行以下操作:

5.5.3.1. 应用服务器验证对话框设置

在管理控制台中,"Global Settings"(全局设置)→ "Application Authentication"(应用程序验证)选项卡上有多个属性,这些属性可控制当使用 SGD 智能卡服务时 "Application Server Authentication"(应用服务器验证)对话框的行为。

"Smart Card Authentication"(智能卡验证)复选框控制用户是可以选择使用智能卡登录还是只能使用用户名和密码登录。

"Always Use Smart Card"(总是使用智能卡)框中的属性允许您控制是否为用户下次登录应用服务器记住(或缓存)使用智能卡登录的决定,以及他们是否可以更改此设置。

注意

只有用户有权访问 "Application Server Authentication"(应用服务器验证)对话框时,他们才能选择验证方法,或缓存智能卡决定。如果您禁用了按住 Shift 键然后单击的功能,这将限制用户对 "Application Server Authentication"(应用服务器验证)对话框的访问。请参见第 4.9.6 节 “用户可以使用不同的用户名和密码启动应用程序”

5.5.4. 在 SGD 中启用智能卡

要支持用户访问智能卡,必须对 SGD 进行配置。

SGD 服务器之间的防火墙可能会干涉智能卡所需的连接,请参见第 1.4.2 节 “SGD 服务器之间的防火墙”

5.5.4.1. 如何在 SGD 中启用智能卡

  1. 检查是否已启用了 SGD 智能卡服务。

    在管理控制台中,转至 "Global Settings"(全局设置)→ "Client Device"(客户端设备)选项卡,确保已选中了 "Smart Card"(智能卡)复选框。

    默认情况下,智能卡服务处于启用状态。

  2. 确保已启用了智能卡验证。

    默认情况下,智能卡验证处于启用状态。

    在管理控制台中,转至 "Global Settings"(全局设置)→ "Application Authentication"(应用程序验证)选项卡,确保已选中了 "Smart Card Authentication"(智能卡验证)复选框。

    "Global Settings"(全局设置)→ "Application Authentication"(应用程序验证)选项卡上具有一些其他设置,这些设置可影响 "Application Server Authentication"(应用服务器验证)对话框上 "Always Use Smart Card"(总是使用智能卡)复选框的行为。请参见第 5.5.3.1 节 “应用服务器验证对话框设置”

5.5.5. 在客户端设备上配置智能卡读卡器

SGD 可以与符合 PC/SC 标准的卡和读卡器一起工作。有关更多信息,请参见 PC/SC Workgroup Web 站点

Oracle Secure Global Desktop 发行版 4.7 平台支持和发行说明》中列出了使用 SGD 测试的智能卡,该文档位于 http://www.oracle.com/technetwork/documentation/sgd-193668.html

5.5.5.1. Microsoft Windows 客户端设备

在 Microsoft Windows 客户端设备上,您必须将智能卡读卡器和任何所需的驱动程序安装在客户端设备上,使智能卡可用于通过 SGD 运行的 远程桌面服务会话。

5.5.5.2. Linux 平台和 Oracle Solaris 客户端设备

在 Linux 平台和 Oracle Solaris 客户端设备上,必须为 SGD 安装 PCSC-Lite 库才能与智能卡读卡器进行通信。PCSC-Lite 为 UNIX 和 Linux 平台上的 PC/SC 框架提供了一个接口。

对于 Linux 平台客户端设备,可从以下位置获取 PCSC-Lite:

需要 PCSC-Lite 版本 1.2.0 或更高版本。

对于 Oracle Solaris 客户端设备,以下软件包中提供了 PCSC-Lite 兼容库:

  • PC/SC Shim for SCF 软件包 (PCSCshim)

  • Sun Ray PC/SC Bypass 软件包 (SUNWsrcbp)

PC/SC Shim for SCF 软件包使您能够将 PC/SC 应用程序与 Solaris 卡框架 (Solaris Card Framework, SCF) 一起使用,并可以与 Sun 内部读卡器和 Sun Ray 读卡器一起工作。需要版本 1.1.1 或更高版本。Oracle Solaris 10 附带了 PC/SC Shim。对于其他 Solaris 版本,可以从 MUSCLE 项目获取 PC/SC Shim。

Sun Ray PC/SC Bypass 软件包为 Ray 读卡器提供了一个 PCSC-Lite 接口。确保您有 Sun Ray Software 的最新修补程序和最新的 SUNWsrcbp 软件包。

SGD 客户端需要 PCSC-Lite libpcsclite.so 库文件。该文件通常安装在 /usr/lib 中,但位置取决于您的动态链接器路径。如果该文件安装在动态链接器路径外,或者您想要使用不同的库文件,请使用 TTA_LIB_PCSCLITE 环境变量来指定位置。这可以在用户环境或登录脚本中进行设置。

5.5.6. 如何使用智能卡登录 Microsoft Windows 应用服务器

  1. 登录到 SGD。

  2. 在 Webtop 上,单击用于启动 Windows 应用程序的链接。

  3. 当 "Application Server Authentication"(应用服务器验证)对话框出现时,单击 "Use smart card"(使用智能卡)。

  4. 要始终使用智能卡登录,请单击 "Always Use Smart Card"(总是使用智能卡)框。

  5. 当 "Windows security"(Windows 安全)对话框出现时,插入您的智能卡。

  6. 出现提示时,输入您的 PIN。

5.5.7. 对智能卡进行故障排除

有关对 SGD 进行配置以便将智能卡与 Windows 应用程序一起使用的信息,请参见第 5.5.1 节 “与 Windows 应用程序一起使用智能卡”

如果用户发现他们无法将智能卡与 Windows 应用程序一起使用,请使用以下核对表来解决该问题。

Questions

  • 5.5.7.1: 是否已在 Windows 远程桌面会话主机上启用了智能卡设备重定向?

  • 5.5.7.2: 是否已为阵列中的所有 SGD 服务器启用了智能卡服务?

  • 5.5.7.3: 在托管用户会话的 SGD 服务器和托管应用程序会话的 SGD 服务器之间是否有防火墙?

  • 5.5.7.4: 是否正确配置了客户端设备?

  • 5.5.7.5: 日志文件中是否列出了任何错误消息?

Questions and Answers

5.5.7.1: 是否已在 Windows 远程桌面会话主机上启用了智能卡设备重定向?

只有已在 Windows 远程桌面会话主机上启用了智能卡设备重定向时,才能使用智能卡。有关支持智能卡设备重定向的 Windows 平台的详细信息,请参见第 4.1.3 节 “配置 Microsoft Windows 远程桌面服务以与 SGD 配合使用”

5.5.7.2: 是否已为阵列中的所有 SGD 服务器启用了智能卡服务?

在管理控制台中,转至 "Global Settings"(全局设置)→ "Client Device"(客户端设备)选项卡,确保已选中了 "Smart Card"(智能卡)复选框。

在管理控制台中,转至 "Global Settings"(全局设置)→ "Application Authentication"(应用程序验证)选项卡,确保已选中了 "Smart Card Authentication"(智能卡验证)复选框。

5.5.7.3: 在托管用户会话的 SGD 服务器和托管应用程序会话的 SGD 服务器之间是否有防火墙?

SGD 服务器之间的防火墙可能会干涉智能卡连接,请参见第 1.4.2 节 “SGD 服务器之间的防火墙”

5.5.7.4: 是否正确配置了客户端设备?

Microsoft Windows 客户端平台上,请执行以下操作:

  • 检查智能卡读卡器是否在 Windows 设备管理器中列出。

  • 检查智能卡服务是否正在客户端上运行。单击 "Start"(开始)菜单 → "Programs"(程序)→ "Administrative Tools"(管理工具)→ "Services"(服务)。

  • 检查 SGD 客户端是否已检测到智能卡读卡器和卡。在 Windows 系统托盘中的 SGD 图标上单击鼠标右键,然后选择 "Connection info"(连接信息)。"Smart card reader"(智能卡读卡器)属性以 reader:ATR_string 格式列出了详细信息,其中 reader 是智能卡读卡器的制造商和型号,ATR_string 是自动终端识别 (Automatic Terminal Recognition, ATR) 字符串,是系统用来识别卡的一个十六进制数字序列。

Linux 平台上,请执行以下操作:

  • 检查 PCSC 守护进程 pcscd 是否正在运行。例如,您可以使用以下命令:

    # /sbin/service pcscd status
  • 尝试使用 --debug stdout 选项重新启动 PCSC 守护进程。将智能卡插入读卡器,然后查看是否可检测到读卡器和卡。

Oracle Solaris 平台上,请执行以下操作:

  • 如果您正在使用 PC/SC Shim for SCF 软件包,请检查 OCF 服务器 ocfserv 是否正在运行。如果 OCF 服务器未在运行,请使用以下命令启用 OCF 服务器:

    # svcadm enable svc:/network/rpc/ocfserv
  • 如果您正在使用 Sun Ray PC/SC Bypass 软件包,请检查 Sun Ray Software 配置。

5.5.7.5: 日志文件中是否列出了任何错误消息?

智能卡设备访问数据和错误消息存储在 SGD 客户端日志文件中。该数据显示在 SGD Webtop 的 "Detailed Diagnostics"(详细诊断)页面中。