在 Exchange 2013 中为 Outlook 无处不在 配置智能卡身份验证

 

**适用于:**Exchange Server 2013

**上一次修改主题:**2018-02-06

将用户智能卡与个人标识号 (PIN) 相关联,可以提供一种可靠且具有成本效益的双重身份验证形式。配置双重身份验证后,访问网络资源的用户必须拥有自己的物理智能卡以及与该智能卡相关的 PIN。此智能卡/PIN 组合可以减少对组织的网络资源未经授权的访问。

将智能卡身份验证与 Outlook 无处不在 结合使用的先决条件

在可以将智能卡身份验证用于 Outlook 无处不在 之前,您需要确保您的环境满足以下客户端和服务器要求。

  • 域连接的客户端计算机运行 Windows 8,plusMicrosoft Office 2013 或 Microsoft Office 2010,与所有公开可用的更新。

  • Exchange Server 2013 SP1 或更高版本。

  • 正确安装和配置颁发智能卡证书的 PKI。PKI 必须链接到 Active Directory,并且能够颁发证书的智能卡登录的目的。

  • 必须在客户端访问服务器上终止 SSL。不支持在 Microsoft Exchange 前面使用对 SSL 会话预先进行身份验证的网络设备。

  • 所有客户端 Outlook 连接都必须使用 Outlook 无处不在。启用 Outlook 无处不在 的智能卡身份验证后,其他连接(如通过 MAPI HTTP 的 Outlook 连接)将不起作用。

  • 每位用户的物理或 TPM 芯片嵌入虚拟智能卡,包含每位用户的用户证书。对于此功能,您无法使用本地计算机注册表中存储的软件证书。

启用智能卡身份验证

若要启用智能卡身份验证,请在您的组织中每个客户端访问服务器上执行以下步骤。

  1. 所有相关的名称与安装的证书。确保证书的颁发者为受信任的客户端和服务器。

  2. 配置 Outlook 无处不在 以进行内部和外部访问(您可以使用相同的命名空间),并确认 NTLM 身份验证被选为客户端身份验证方法。通过这些设置,验证 Outlook 无处不在 是否连接成功(请参阅Testing Outlook 无处不在 connectivity获取详细信息)。

  3. 请确保ExternalURL的脱机通讯簿和 Exchange Web 服务的虚拟目录配置为使用 HTTPS。

  4. 运行下面的 PowerShell 脚本,以配置虚拟目录。

    <Exchange install drive>:\Program Files\Microsoft\Exchange Server\V14\Scripts\Enable-OutlookCertificateAuthentication.ps1
    
  5. 使用Netsh命令行实用程序来编辑 IIS。

    1. 在命令提示符下或 PowerShell 提示符下,输入netsh

    2. netsh提示符下,输入http,,然后按 enter 键。

    3. netsh http提示符下,输入显示 ssl,,然后查找默认 Web 站点绑定。0.0.0.0:443之所以值来指示这一点。

    4. 请注意证书哈希应用程序 ID值。

      示例:

      IP:port          : 0.0.0.0:443
      
      Certificate Hash        : f4d5419255e87004b2ec8bacd33a38e1cfebdaea
      
      Application ID      : {4dc3e181-e14b-4a21-b022-59fc669b0914}
      
    5. 通过运行以下命令删除默认网站证书绑定:

      delete sslcert ipport=0.0.0.0:443
      
    6. 使用哈希算法和应用程序 ID 前面所述,重新创建绑定,并且包括所有下列参数:

      Add sslcert ipport=0.0.0.0:443 certhash=f4d5419255e87004b2ec8bacd33a38e1cfebdaea appid={4dc3e181-e14b-4a21-b022-59fc669b0914} certstorename=MY verifyclientcertrevocation=Enable verifyrevocationwithcachedclientcertonly=Disable UsageCheck=Enable clientcertnegotiation=Enable DSMapperUsage=Enable
      
  6. 重新启动服务器。

  7. 在 Internet Information Services (IIS) 管理器中,增加 uploadReadAheadSize 值。

    1. 在 IIS Manager 中,展开 Exchange Server 的节点,展开&quot;网站&quot;,并选择&quot;默认网站&quot;。

    2. 在&quot;功能视图&quot;选项卡上,选择&quot;配置编辑器&quot;。

    3. 在&quot;操作&quot;下,选择&quot;打开功能&quot;。

    4. 在&quot;部分&quot;下拉菜单中,单击以展开&quot;system.webServer&quot;,然后选择&quot;serverRuntime&quot;。

    5. uploadReadAheadSize 的值更改为 10485760

  8. 在每台客户端计算机上编辑注册表。若要执行此操作,请执行以下步骤:

    1. 找到 HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\RPC。

      注意:

      • 如果您的客户端使用的 Outlook 2010,替换"14.0"为"于 15.0。"

      • 如果您的客户端使用的 Outlook 2016,替换"16.0"为"于 15.0。"

    2. 添加具有名为EnableSmartcard,一个 DWORD 值,然后将值设置为00000001

    3. 找到 HKEY_CURRENT_USER\Software\Microsoft\Exchange。

    4. 添加适当的 Outlook 版本的 DWORD 值。

      对于 Outlook 2010,2013

      添加具有名为MsoAuthDisabled,一个 DWORD 值,然后将值设置为1

      Outlook 的 2016 年

      添加具有名为AlwaysUseLegacyAuthForAutodiscover,一个 DWORD 值,然后将值设置为1

完成后,所有新的配置文件应提示证书自动发现连接,并再次提示 Exchange Server 连接。启用此配置之前已存在的配置文件将需要修复,这可能需要多次重新启动 Outlook 以正确生效。

验证已启用智能卡

应用配置和连接 Outlook 后,Outlook 连接的状态对话框将显示证书,类似于下面的示例使用的身份验证:

Outlook 连接状态对话框的屏幕截图

在启用智能卡身份验证后,邮件和目录服务的 Outlook 客户端将连接到客户端访问服务器上的 /RPCWithCert 虚拟目录,而不是连接到 /RPC 虚拟目录。因此,您必须确保相应地发布这些路径。

从早期版本的 Exchange 进行迁移。

如果您之前已为 Exchange Server 2010 部署启用了智能卡身份验证,并且想要迁移到 Exchange Server 2013,您需要确保所有 Exchange 2010 服务器都运行 Service Pack 3 CU 11 或更高版本。

此外,在每个 Exchange Server 2010 客户端访问服务器上,您需要在自动发现虚拟目录文件夹的 Web.config 文件中编辑以下项:

  • <add key="SmartCardAuthenticationEnabled" value="false"/>

默认值为&quot;false&quot;。将此值更改为&quot;true&quot;。

执行此更改后,应通过更新 DNS 或负载平衡器确保组织中的所有客户端都配置为将 Exchange 2013 用于自动发现。

进行这些更改之后,具有 Exchange Server 2010年邮箱的用户仍然从自动发现接收正确的设置,并将能够进行身份验证。这些更改,不会有一个 Exchange 2010 的邮箱的用户接收的 Outlook 无处终结点 (在此例中,NTLM) 的默认设置和移动自动发现终结点后,该用户将不能为 aauthenticate。