配置基础结构以支持使用 Intune 中的 SCEP

重要

为了支持从 2022 年 5 月 10 日开始在 KB5014754 中引入和宣布的 SCEP 证书强映射的 Windows 要求,我们已对新的和续订的 SCEP 证书的Intune SCEP 证书颁发进行了更改。 通过这些更改,适用于 iOS/iPadOS、macOS 和 Windows 的新Intune SCEP 证书现在在证书的“使用者可选名称 (SAN) ”字段中包含以下标记:URL=tag:microsoft.com,2022-09-14:sid:<value>

强映射使用此标记将证书从 Entra ID 绑定到特定设备或用户 SID。 通过此更改和要求从 Entra ID 映射 SID:

  • 如果设备在 Entra ID 中具有已从本地 Active Directory同步的 SID,则 Windows 混合联接设备支持设备证书。
  • 用户证书使用从 本地 Active Directory 同步的 Entra ID 中的用户的 SID。

证书颁发机构 (不支持 SAN 中 URL 标记的 CA) 可能无法颁发证书。 Microsoft从 KB5014754 安装更新的 Active Directory 证书服务服务器支持使用此标记。 如果使用第三方 CA,请与 CA 提供商检查,以确保它们支持此格式,或添加此支持的方式和时间。

有关详细信息,请参阅支持提示:在Microsoft Intune证书中实现强映射 - Microsoft社区中心

Intune 支持使用简单证书注册协议 (SCEP) 来验证体验与应用和公司资源的连接。 SCEP 使用证书颁发机构 (CA) 证书来保护证书签名请求 (CSR) 的消息交换。 当基础结构支持 SCEP 时,可以使用 Intune SCEP 证书配置文件(Intune 中的一种设备配置文件)将证书部署到设备。

如果还使用 Active Directory 证书服务证书颁发机构(也称为 Microsoft CA),则需要 Microsoft Intune 证书连接器才可在 Intune 中使用 SCEP 证书配置文件。 不支持在证书颁发机构 (CA) 所在的同一服务器上使用该连接器。 使用第三方证书颁发机构时,不需要该连接器。

本文中的信息可帮助配置基础结构,以便在使用 Active Directory 证书服务时支持 SCEP。 在配置基出结构后,可以在 Intune 中创建和部署 SCEP 证书配置文件

提示

Intune 还支持使用公钥加密标准 12 号证书

使用 SCEP 证书的先决条件

在继续之前,请确保已 创建 受信任的证书 配置文件并将其部署到 使用 SCEP 证书配置文件的设备。 SCEP 证书配置文件直接引用用于通过受信任的根 CA 证书来预配设备的受信任证书配置文件。

服务器和服务器角色

若要支持 SCEP,必须在已加入 Active Directory 域的服务器上运行以下本地基础结构,Web 应用程序代理服务器除外。

  • Microsoft Intune 证书连接器 - 使用 Microsoft CA 时,需要 Microsoft Intune 证书连接器才能在 Intune 中使用 SCEP 证书配置文件。 它安装在同时运行 NDES 服务器角色的服务器上。 但是不支持在发布证书颁发机构 (CA) 的服务器上使用此连接器。

    有关证书连接器的详细信息,请参阅:

  • 证书颁发机构 - 使用在 Windows Server 2008 R2 企业版 Service Pack 1 或更高版本上运行的 Microsoft Active Directory 证书服务企业证书颁发机构 (CA)。 所用 Windows Server 版本必须仍受 Microsoft 支持。 不支持独立 CA。 有关详细信息,请参阅安装证书颁发机构

    如果 CA 运行的是 Windows Server 2008 R2 SP1,则必须安装修补程序 KB2483564

  • NDES 服务器角色 – 若要支持将证书连接器用于Microsoft Intune与 SCEP 配合使用,必须使用网络设备注册服务 (NDES) 服务器角色配置托管证书连接器的 Windows Server。 支持将连接器安装在 Windows Server 2012 R2 或更高版本上。 本文的后面部分介绍了如何安装 NDES

    • 托管 NDES 和连接器的服务器必须已加入域,并与企业 CA 位于相同的林中。
    • 托管 NDES 的服务器不能是域控制器。
    • 不要使用托管企业 CA 的服务器上安装的 NDES。 当 CA 服务 Internet 请求且不支持在发布证书颁发机构 (CA) 的服务器上使用此连接器时,此配置有安全风险。
    • 必须在托管 NDES 和 Microsoft Intune 连接器的服务器上禁用 Internet Explorer 增强型安全配置。

    要详细了解 NDES,请参阅 Windows Server 文档网络设备注册服务指南以及将策略模块与网络设备注册服务配合使用。 要了解如何为 NDES 配置高可用性,请参阅 高可用性

支持 Internet 上的 NDES

要允许 Internet 上的设备获取证书,必须将 NDES URL 发布到企业网络外部。 为此,可以使用反向代理,例如Microsoft Entra应用程序代理Microsoft的 Web 应用程序代理 服务器或第三方反向代理服务或设备。

  • Microsoft Entra应用程序代理 – 可以使用 Microsoft Entra 应用程序代理而不是专用的 Web 应用程序代理 (WAP) 服务器将 NDES URL 发布到 Internet。 此解决方案允许面向 Intranet 和面向 Internet 的设备获取证书。 有关详细信息,请参阅与网络设备注册服务 (NDES) 服务器上的Microsoft Entra应用程序代理集成

  • Web 应用程序代理服务器 - 使用运行 Windows Server 2012 R2 或更高版本的服务器作为 Web 应用程序代理 (WAP) 服务器来将 NDES URL 发布到 Internet。 此解决方案允许面向 Intranet 和面向 Internet 的设备获取证书。

    承载 WAP 的服务器必须安装此更新以支持网络设备注册服务所使用的长 URL。 该更新包括在 2014 年 12 月的更新汇总中,或单独更新自 KB3011135

    WAP 服务器必须具有与发布到外部客户端的名称匹配的 SSL 证书,并且信任托管 NDES 服务的计算机上使用的 SSL 证书。 这些证书使 WAP 服务器可以终止来自客户端的 SSL 连接,并创建与 NDES 服务的新 SSL 连接。

    有关详细信息,请参阅规划 WAP 证书有关 WAP 服务器的常规信息

  • 第三方反向代理 - 使用第三方反向代理时,请确保代理支持长 URI Get 请求。 在证书请求流程中,客户端发出一个在查询字符串中包含证书请求的请求。 因此,URI 长度可能很大,最大为 40 KB。

SCEP 协议限制阻止使用预身份验证。 通过反向代理服务器发布 NDES URL 时,必须将 “预身份验证 ”设置为 “直通”。 当你安装 Intune 证书连接器时,Intune 通过在 NDES 服务器上安装 Intune-SCEP 策略模块,为 NDES URL 提供保护。 该模块通过防止将证书颁发给无效或被数字篡改的证书请求,帮助保护 NDES URL。 这会将访问仅限于使用 Intune 管理的、具有格式正确的证书请求的 Intune 注册设备。

将 Intune SCEP 证书配置文件传送到设备时,Intune 会生成一个自定义质询 Blob,并对其进行加密和签名。 设备无法读取该 Blob。 只有策略模块和 Intune 服务才能读取和验证质询 Blob。 blob 包含设备在其证书签名请求 (CSR) 中Intune预期提供的详细信息。 例如,预期的“使用者”和“使用者可选名称”(SAN)

Intune 策略模块通过以下方式保护 NDES:

  • 尝试直接访问已发布的 NDES URL 时,服务器将返回“403 - 禁止访问: 访问被拒绝”响应。

  • 收到格式正确的 SCEP 证书请求且请求有效负载同时包含质询 Blob 和设备 CSR 时,策略模块会将设备 CSR 的详细信息与质询 Blob 进行比较:

    • 如果验证失败,则不颁发证书。

    • 只有来自 Intune 注册设备且通过了质询 Blob 验证的证书请求,才会被颁发证书。

帐户

若要配置连接器以支持 SCEP,请使用有权在 Windows Server 上配置 NDES 和管理证书颁发机构的帐户。 有关详细信息,请参阅“Microsoft Intune 证书连接器的先决条件”一文中的帐户部分

网络要求

除了证书连接器的网络要求外,我们还建议通过反向代理(例如Microsoft Entra应用程序代理、Web 访问代理或第三方代理)发布 NDES 服务。 如果不使用反向代理,则允许端口 443 上的 TCP 流量从 Internet 上的所有主机和 IP 地址传输到 NDES 服务。

允许 NDES 服务和环境中任何支持基础结构之间进行通信所需的所有端口和协议。 例如,托管 NDES 服务的计算机需要与 CA、DNS 服务器、域控制器以及环境中可能的其他服务或服务器(例如 Configuration Manager)进行通信。

证书和模板

使用 SCEP 时,使用了以下证书和模板。

Object 详细信息
SCEP 证书模板 在颁发 CA 上配置的模板,用于填充设备 SCEP 请求。
服务器身份验证证书 发证 CA 或公共 CA 请求 Web 服务器证书。
在托管 NDES 的计算机上的 IIS 中安装并绑定此 SSL 证书。
受信任的根 CA 证书 要使用 SCEP 证书配置文件,设备必须信任受信任的根证书颁发机构 (CA)。 在 Intune 中使用受信任的证书配置文件为用户和设备预配受信任的根 CA 证书

- 为每个操作系统平台使用一个受信任的根 CA 证书,并将该证书与创建的每个受信任的证书配置文件相关联。

- 如果需要,可以使用其他受信任的根 CA 证书。 例如,可以使用其他证书来信任为 Wi-Fi 访问点的服务器身份验证证书签名的 CA。 为发证 CA 创建其他受信任的根 CA 证书。 对于在 Intune 中创建的 SCEP 证书配置文件,请确保在其中为发证 CA 指定受信任的根 CA 配置文件。

有关受信任证书配置文件的信息,请参阅“在 Intune 中使用证书进行身份验证”中的导出受信任的 CA 证书创建受信任的证书配置文件

注意

以下证书不与 Microsoft Intune 证书连接器一起使用。 此信息适用于那些尚未使用新连接器软件替换 SCEP 的旧连接器(通过 NDESConnectorSetup.exe 安装)的用户。

Object 详细信息
客户端身份验证证书 从发证 CA 或公共 CA 请求。
将此证书安装在托管 NDES 服务的计算机上,Microsoft Intune 证书连接器将使用此证书。
如果证书在用于颁发此证书的 CA 模板上设置了“客户端”和“服务器身份验证”密钥用法(增强型密钥用法),则可以对服务器和客户端身份验证使用同一证书。

Android Enterprise 的 PIN 要求

对于 Android Enterprise,设备上的加密版本决定了在 SCEP 为设备预配证书之前,该设备是否必须配置 PIN。 可用的加密类型为:

  • 全磁盘加密,此类型要求设备配置 PIN。

  • 基于文件的加密,在 OEM 安装有 Android 10 或更高版本的设备上需要使用此类型。 这些设备不需要 PIN。 升级到 Android 10 的设备可能仍需要 PIN。

注意

Microsoft Intune无法识别 Android 设备上的加密类型。

设备上的 Android 版本可能会影响可用的加密类型:

  • Android 10 及更高版本: OEM 随 Android 10 或更高版本安装的设备使用基于文件的加密,并且不需要 SCEP 的 PIN 来预配证书。 对于升级到版本 10 或更高版本并开始使用基于文件的加密的设备,它们可能仍需要 PIN。

  • Android 8 到 9:这些版本的 Android 支持使用基于文件的加密,但这不是必需的。 每个 OEM 选择要为设备实现哪种加密类型。 也有可能 OEM 的修改会导致即使在使用全磁盘加密时也不需要 PIN。

有关详细信息,请参阅 Android 文档中的以下文章:

注册为 Android Enterprise 专用设备的注意事项

对于注册为 Android Enterprise 专用的设备,强制使用密码会带来挑战。

对于运行 9.0 及更高版本并接收展台模式策略的设备,你可以使用设备合规性或设备配置策略来强制执行密码要求。 请查看 Intune 支持团队提供的支持提示:用于展台模式的基于 Google 的新“合规性”屏幕,了解设备体验。

对于运行 8.x 和更早版本的设备,你还可以使用设备合规性或设备配置策略来强制执行密码要求。 但是,若要设置 PIN,需要在设备上手动输入设置应用程序并配置 PIN。

配置证书颁发机构

在下面各部分中了解如何:

  • 为 NDES 配置和发布所需模板
  • 设置吊销证书的所需权限。

完成以下各节需要具备 Windows Server 2012 R2 或更高版本和 Active Directory 证书服务 (AD CS) 方面的知识。

访问发证 CA

  1. 使用有权管理 CA 的域帐户登录发证 CA。

  2. 打开证书颁发机构 Microsoft 管理控制台 (MMC)。 运行“certsrv.msc”或服务器管理器,选择“工具”,然后选择“证书颁发机构”。

  3. 选择“ 证书模板” 节点,然后选择“ 操作>管理”。

创建 SCEP 证书模板

  1. 创建 v2 证书模板(具有 Windows 2003 兼容性),用作 SCEP 证书模板。 可以执行下列操作:

    • 使用“证书模板”管理单元创建新的自定义模板。
    • 复制现有模板(如 Web 服务器模板)然后更新,将其用作 NDES 模板。
  2. 在模板的指定选项卡上配置以下设置:

    • 常规

      • 取消选中“在 Active Directory 中发布证书”
      • 指定一个友好的“模板显示名称”,以便稍后识别此模板
    • 使用者名称

      • 选择“在请求中提供”。 NDES 的Intune策略模块强制实施安全性。

        模板,“使用者名称”选项卡

    • 扩展

      • 确保“应用程序策略描述”包括“客户端身份验证”

        重要

        只添加所需的应用程序策略即可。 与你的安全管理员确认你的选择。

      • 对于 iOS/iPadOS 和 macOS 证书模板,请编辑“密钥用法”并确保未选择“数字签名为原件的证明”

      模板,“扩展”选项卡

    • 安全性

      • 添加 NDES 服务帐户。 此帐户需要具有此模板的读取和注册权限。

      • 为将创建 SCEP 配置文件的 Intune 管理员添加其他帐户。 这些帐户需要模板的读取权限,以便使这些管理员能够在创建 SCEP 配置文件时浏览此模板

      模板,“安全”选项卡

    • 请求处理

      下图是一个示例。 你的配置可能有所不同。

      模板,“请求处理”选项卡

    • 颁发要求

      下图是一个示例。 你的配置可能有所不同。

      模板,“颁发要求”选项卡

  3. 保存证书模板。

创建客户端证书模板

注意

以下证书不与 Microsoft Intune 证书连接器一起使用。 此信息适用于那些尚未使用新连接器软件替换 SCEP 的旧连接器(通过 NDESConnectorSetup.exe 安装)的用户。

Microsoft Intune 连接器要求某个证书的 客户端身份验证 增强型密钥用法和主体名称与安装连接器的计算机的 FQDN 相同。 需要添加具有以下属性的模板:

  • “扩展”>“应用程序策略”必须包含“客户端身份验证”
  • 使用者名称”>“在请求中提供”。

如果已有包含这些属性的模板,则可以重复使用它,否则可以通过复制现有模板或创建自定义模板来创建新模板。

创建服务器证书模板

托管设备和 NDES 服务器上的 IIS 之间的通信使用 HTTPS,这需要使用证书。 可以使用 Web 服务器证书模板来颁发此证书。 或者,如果想要使用专用模板,则需要以下属性:

  • “扩展”>“应用程序策略”必须包含“服务器身份验证”
  • 使用者名称”>“在请求中提供”。
  • 在“安全”选项卡上,NDES 服务器的计算机帐户必须具有“读取”和“注册”权限。

注意

如果证书同时满足客户端和服务器证书模板的要求,则可以对 IIS 和证书连接器使用单个证书。

授予吊销证书的权限

为了使 Intune 能够吊销不再需要的证书,必须授予证书颁发机构权限。

在托管证书连接器的服务器上,使用 NDES 服务器系统帐户或特定帐户(如 NDES 服务帐户)

  1. 在“证书颁发机构”控制台中,右键单击 CA 名称,然后单击“属性”。

  2. 在“ 安全性 ”选项卡中,选择“ 添加”。

  3. 授予“颁发和管理证书”权限

    • 如果选择使用 NDES 服务器系统帐户,请提供针对 NDES 服务器的权限
    • 如果选择使用 NDES 服务帐户,则改为提供针对该帐户权限

修改证书模板的有效期

可选择修改证书模板的有效期。

创建 SCEP 证书模板后,可以编辑模板,在“常规”选项卡上查看“有效期”。

默认情况下,Intune使用模板中配置的值,但你可以将 CA 配置为允许请求者输入其他值,以便可以从 Microsoft Intune 管理中心内设置该值。

计划使用 5 天或更长的有效期。 当有效期少于五天时,证书很可能进入即将过期或已过期状态,这可能导致设备上的 MDM 代理在安装证书之前拒绝证书。

重要

对于 iOS/iPadOS 和 macOS,请始终使用模板中设置的值。

配置可从管理中心Microsoft Intune设置的值

请在 CA 上运行以下命令:

certutil -setreg Policy\EditFlags +EDITF_ATTRIBUTEENDDATE
net stop certsvc
net start certsvc

发布证书模板

  1. 在发证 CA 上,使用证书颁发机构管理单元发布证书模板。 选择“证书模板”节点,选择“操作”>“新建”>“要颁发的证书模板”,然后选择在前面一节中创建的模板

  2. 通过查看“证书模板”文件夹中已发布的模板来对该模板进行验证。

设置 NDES

以下过程可帮助配置用于 Intune 的网络设备注册服务 (NDES)。 这些仅作为示例提供,因为实际配置可能因 Windows Server 版本而异。 确保添加的必需配置(如 .NET Framework 的配置)满足 Microsoft Intune 证书连接器的先决条件

有关 NDES 的详细信息,请参阅网络设备注册服务指南

安装 NDES 服务

  1. 在将要通过 NDES 服务的服务器上,以“企业管理员”身份登录,并使用添加角色和功能向导安装 NDES

    1. 在向导中,选择“Active Directory 证书服务”以获得对 AD CS 角色服务的访问权限。 选择“网络设备注册服务”,取消选中“证书颁发机构”,然后完成向导。

      提示

      在“安装进度”处,不要选择“关闭”。 而是选择“配置目标服务器上的 Active Directory 证书服务”的链接。 “AD CS 配置”向导随即打开,它可用于本文中的下一个过程:“配置 NDES 服务”。 打开“AD CS 配置”后,你可以关闭“添加角色和功能”向导。

    2. 将 NDES 添加到服务器后,向导也会安装 IIS。 确认 IIS 具有以下配置:

      • Web 服务器”>“安全性”>“请求筛选

      • Web 服务器”>“应用程序开发”>“ASP.NET 3.5

        安装 ASP.NET 3.5 会安装 .NET Framework 3.5。 安装 .NET Framework 3.5 时,安装核心“.NET Framework 3.5”功能和“HTTP 激活”。

      • “Web 服务器”>“应用程序开发”>“ASP.NET 4.7.2”

        安装 ASP.NET 4.7.2 时会安装 .NET Framework 4.7.2。 安装 .NET Framework 4.7.2 时会安装核心“.NET Framework 4.7.2”功能、“ASP.NET 4.7.2”以及“WCF 服务”>“HTTP 激活”功能

      • 管理工具”>“IIS 6 管理兼容性”>“IIS 6 元数据库兼容性

      • 管理工具”>“IIS 6 管理兼容性”>“IIS 6 WMI 兼容性

      • 在服务器上,将 NDES 服务帐户添加为本地 IIS_IUSRS 组的成员。

  2. 如有必要,请在 Active Directory 中 (SPN) 配置服务主体名称。 有关如何设置 SPN 的信息,请参阅 验证是否需要为 NDES 设置服务主体名称

配置 NDES 服务

若要配置 NDES 服务,请使用身份为“企业管理员”的帐户。

  1. 在托管 NDES 服务的计算机中,打开“AD CS 配置”向导,然后进行以下更新:

    提示

    如果从上一个过程继续,并单击了“在目标服务器上配置 Active Directory 证书服务”链接,则此向导应已打开。 或者,打开“服务器管理器”访问“Active Directory 证书服务”的后期部署配置。

    • 在“角色服务”中,选择“网络设备注册服务”
    • 在“NDES 的服务帐户”中,指定 NDES 服务帐户
    • 在“NDES 的 CA”中,单击“选择”,然后选择在其中配置证书模板的发证 CA
    • 在“为 NDES 加密”中,设置符合公司要求的秘钥长度。
    • 在“确认”页面,选择“配置”,完成向导。
  2. 完成向导后,在托管 NDES 服务的计算机中更新以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\

    要更新此密钥,请标识证书模板的“目的”(位于“请求处理”选项卡上)。 然后,通过将现有数据替换为在创建证书模板时指定的证书模板名称(不是模板的显示名称),更新对应的注册表项。

    下表将证书模板目的映射至注册表中的值:

    证书模板目的(位于“请求处理”选项卡上) 待编辑的注册表值 在 SCEP 配置文件的 Microsoft Intune 管理中心中看到的值
    签名 SignatureTemplate 数字签名
    加密 EncryptionTemplate 密钥加密
    签名和加密 GeneralPurposeTemplate 密钥加密
    数字签名

    例如,如果证书模板的目的为“加密”,然后将“EncryptionTemplate”值编辑为你的证书模板的名称。

  3. 重启托管 NDES 服务的服务器。 请勿使用 iisreset;iireset 未完成所需更改。

  4. 浏览到 http:// Server_FQDN/certsrv/mscep/mscep.dll。 应看到与下图类似的 NDES 页面:

    测试 NDES

    如果 Web 地址返回“503 服务不可用”,请查看计算机事件查看器。 当应用程序池因缺少 NDES 服务帐户权限而停止时,通常会出现此错误。

在托管 NDES 服务的服务器上安装和绑定证书

在 NDES 服务器上,添加“服务器身份验证证书”

  • 服务器身份验证证书

    此证书在 IIS 中使用。 这是一个简单的 Web 服务器证书,可让客户端信任 NDES URL。

    1. 从内部 CA 或公共 CA 请求“服务器身份验证”证书,然后在服务器上安装该证书。

      根据向 Internet 公开 NDES 的情况,要求会有所不同。

      一种正确配置是:

      • 使用者名称:CN(通用名)设置的值必须与安装证书的服务器(NDES 服务器)的 FQDN 相同。
      • 使用者可选名称:为 NDES 响应的每个 URL 设置 DNS 条目,例如内部 FQDN 和外部 URL。

      注意

      如果使用Microsoft Entra应用程序代理,Microsoft Entra应用程序代理连接器会将请求从外部 URL 转换为内部 URL。 因此,NDES 将只响应定向到内部 URL 的请求,通常为 NDES 服务器的 FQDN。

      在这种情况下,不需要外部 URL。

    2. 在 IIS 中绑定服务器身份验证证书:

      1. 安装服务器身份验证证书后,打开“IIS 管理器”,然后选择“默认网站”。 在“操作”窗格中,选择“绑定”。

      2. 选择“添加”,将“类型”设置为“https”并确认端口为“443”。

      3. 为“SSL 证书”指定服务器身份验证证书。

注意

为 Microsoft Intune 证书连接器配置 NDES 时,仅使用服务器身份验证证书。 如果要将 NDES 配置为支持旧证书连接器 (NDESConnectorSetup.exe) ,则还必须配置 客户端身份验证证书。 如果某个证书配置为同时满足服务器和客户端身份验证的要求,则可以使用该证书进行服务器身份验证和客户端身份验证。 “使用者名称”必须满足客户端身份验证证书要求。

以下信息适用于那些尚未使用新连接器软件替换 SCEP 的旧连接器(通过 NDESConnectorSetup.exe 安装)的用户。

  • 客户端身份验证证书

    在安装 Microsoft Intune 证书连接器期间使用此证书是为了支持 SCEP。

    请求并安装来自你的内部 CA 或公用证书颁发机构的客户端身份验证证书。

    证书必须满足以下要求:

    • 增强型密钥使用:此值必须包括“客户端身份验证
    • 使用者名称:CN(通用名)设置的值必须与安装证书的服务器(NDES 服务器)的 FQDN 相同。

下载、安装并配置 Microsoft Intune 证书连接器

有关指导,请参阅安装并配置 Microsoft Intune 证书连接器

  • 该证书连接器安装在运行 NDES 服务的服务器上。
  • 不支持在证书颁发机构 (CA) 所在的同一服务器上使用该连接器。

后续步骤

创建 SCEP 证书配置文件