通过联合身份验证在 Microsoft Entra ID 中基于证书的身份验证入门

通过使用联合身份验证的基于证书的身份验证 (CBA),在 Windows、Android 或 iOS 设备上将 Exchange Online 帐户连接到以下对象时,Microsoft Entra ID 可使用客户端证书对你进行身份验证:

  • Microsoft 移动应用程序,例如 Microsoft Outlook 和 Microsoft Word
  • Exchange ActiveSync (EAS) 客户端

配置此功能无需在移动设备上的某些邮件和Microsoft Office 应用程序中输入用户名和密码组合。

注意

或者,组织无需联合即可部署 Microsoft Entra CBA。 有关详细信息,请参阅Microsoft Entra 基于证书的身份验证与 Microsoft Entra ID 概述

本主题:

  • 提供在 Office 365 企业版、商业版、教育版和美国政府版计划中为租户用户配置和使用 CBA 的步骤。
  • 假设你已配置 公钥基础结构(PKI)AD FS

要求

要配置使用联合身份验证的 CBA,以下语句必须为 true:

  • 仅浏览器应用程序的联合环境、使用新式身份验证的本机客户端或 MSAL 库支持使用联合身份验证的 CBA。 其中一个例外是 Exchange Online(EXO)的 Exchange Active Sync (EAS),可用于联合帐户和托管帐户。 若要配置 Microsoft Entra CBA 而无需联合身份验证,请参阅 如何配置 Microsoft Entra 基于证书的身份验证
  • 必须在 Microsoft Entra ID 中配置根证书颁发机构和任何中间证书颁发机构。
  • 每个证书颁发机构必须具有可以通过面向 Internet 的 URL 引用的证书吊销列表(CRL)。
  • 必须在 Microsoft Entra ID 中配置至少一个证书颁发机构。 可以在 配置证书颁发机构 部分中找到相关步骤。
  • 对于 Exchange ActiveSync 客户端,客户端证书的“使用者可选名称”字段的主体名称或 RFC822 名称值必须为 Exchange Online 中用户的可路由电子邮件地址。 Microsoft Entra ID 将 RFC822 值映射到目录中的代理地址属性。
  • 客户端设备必须有权访问颁发客户端证书的至少一个证书颁发机构。
  • 客户端身份验证的客户端证书必须已颁发给客户端。

重要

对于 Microsoft Entra ID,CRL 的最大可下载和缓存大小为 20MB,且下载 CRL 所需的时间不得超过 10秒。 如果Microsoft Entra ID 无法下载 CRL,则使用相应 CA 颁发的证书的基于证书的身份验证将失败。 确保 CRL 文件的大小限制的最佳做法是将证书生存期保持在合理的限制范围内并清理过期的证书。

步骤 1:选择设备平台

首先,对于您关心的设备平台,您需要查看以下内容:

  • Office 移动应用程序支持
  • 特定实现要求

针对以下设备平台,需要注意的相关信息:

步骤 2:配置证书颁发机构

若要在 Microsoft Entra ID 中配置您的证书颁发机构,请为每个证书颁发机构上传以下内容:

  • 证书的公共部分,格式为 .cer
  • 证书吊销列表 (CRL) 所在的面向 Internet 的 URL

证书颁发机构的架构如下所示:

    class TrustedCAsForPasswordlessAuth
    {
       CertificateAuthorityInformation[] certificateAuthorities;
    }

    class CertificateAuthorityInformation

    {
        CertAuthorityType authorityType;
        X509Certificate trustedCertificate;
        string crlDistributionPoint;
        string deltaCrlDistributionPoint;
        string trustedIssuer;
        string trustedIssuerSKI;
    }

    enum CertAuthorityType
    {
        RootAuthority = 0,
        IntermediateAuthority = 1
    }

对于配置,可以使用 Microsoft Graph PowerShell

  1. 使用管理员权限启动 Windows PowerShell。

  2. 安装 Microsoft Graph PowerShell

        Install-Module Microsoft.Graph
    

作为第一个配置步骤,需要与租户建立连接。 与租户建立连接后,即可查看、添加、删除和修改目录中定义的受信任证书颁发机构。

连接

若要与租户建立连接,请使用 Connect-MgGraph

    Connect-MgGraph

检索

若要检索目录中定义的受信任的证书颁发机构,请使用 Get-MgOrganizationCertificateBasedAuthConfiguration

    Get-MgOrganizationCertificateBasedAuthConfiguration

若要添加、修改或删除 CA,请使用 Microsoft Entra 管理中心:

  1. 全局管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“保护”>“显示更多”>“安全中心”(或“标识安全分数”)>“证书颁发机构”。

  3. 若要上传 CA,请选择“上传”:

    1. 选择 CA 文件。

    2. 如果 CA 是根证书,请选择“是”,否则请选择“否”

    3. 对于“证书吊销列表 URL”,请为包含所有已吊销证书的 CA 基 CRL 设置面向 Internet 的 URL。 如果未设置 URL,则使用吊销证书进行身份验证不会失败。

    4. 对于“增量证书吊销列表 URL”,请为自上次发布基 CRL 以来,包含所有已吊销证书的 CRL 设置面向 Internet 的 URL。

    5. 选择 “” 添加 “” 。

      如何上传证书颁发机构文件的屏幕截图。

  4. 若要删除 CA 证书,请选择证书并选择 删除

  5. 选择 以添加或删除列。

步骤 3:配置吊销

若要吊销客户端证书,Microsoft Entra ID 从作为证书颁发机构信息的一部分上传的 URL 提取证书吊销列表(CRL),并将其缓存。 最后一个发布时间戳(有效日期 属性)用于确保 CRL 仍然有效。 将定期引用 CRL,以撤销对该列表中证书的访问权限。

如果需要更即时的吊销(例如,如果用户丢失设备),则用户的授权令牌可能会失效。 若要使授权令牌失效,请使用 Windows PowerShell 为此特定用户设置 StsRefreshTokenValidFrom 字段。 必须为要撤销访问权限的每个用户更新 StsRefreshTokenValidFrom 字段。

要确保撤销仍然有效,必须将 CRL 的生效日期设置为晚于 StsRefreshTokenValidFrom 所设置的值,并确保相关的证书在 CRL 中。

注意

截至 2024 年 3 月 30 日,Azure AD 和 MSOnline PowerShell 模块已弃用。 若要了解详细信息,请阅读有关弃用的更新。 在此日期之后,对这些模块的支持仅限于帮助迁移到 Microsoft Graph PowerShell SDK 和提供安全修复。 弃用的模块将继续在 2025 年 3 月 30 日运行。

建议迁移到 Microsoft Graph PowerShell,以便与 Microsoft Entra ID(前 Azure AD)交互。 有关常见迁移问题,请参阅 迁移常见问题解答注意:在 2024 年 6 月 30 日之后, MSOnline 版本 1.0.x 可能会遇到中断。

以下步骤概述了通过设置 StsRefreshTokenValidFrom 字段来更新和失效授权令牌的过程。

  1. 连接到 PowerShell:

    Connect-MgGraph
    
  2. 获取用户当前的 StsRefreshTokensValidFrom 值:

            $user = Get-MsolUser -UserPrincipalName test@yourdomain.com`
            $user.StsRefreshTokensValidFrom
    
  3. 为用户配置一个新的 StsRefreshTokensValidFrom 值,该值等于当前时间戳:

            Set-MsolUser -UserPrincipalName test@yourdomain.com -StsRefreshTokensValidFrom ("03/05/2021")
    

设置的日期必须在未来。 如果日期不属于将来,则不设置 StsRefreshTokensValidFrom 属性。 如果日期在将来,StsRefreshTokensValidFrom 设置为当前时间(而不是由 Set-MsolUser 命令指示的日期)。

步骤 4:测试配置

测试您的证书

作为第一个配置测试,应尝试使用 设备浏览器登录到 outlook Web AccessSharePoint Online

如果登录成功,则你知道:

  • 用户证书已预配到测试设备
  • AD FS 已正确配置

测试 Office 移动应用程序

  1. 在测试设备上,安装 Office 移动应用程序(例如 OneDrive)。
  2. 启动应用程序。
  3. 输入用户名,然后选择要使用的用户证书。

应已成功登录。

测试 Exchange ActiveSync 客户端应用程序

若要通过基于证书的身份验证访问 Exchange ActiveSync (EAS),必须向应用程序提供包含客户端证书的 EAS 配置文件。

EAS 配置文件必须包含以下信息:

  • 要用于身份验证的用户证书

  • EAS 端点(例如,outlook.office365.com)

可以通过使用移动设备管理(MDM),如 Microsoft Intune,将 EAS 配置文件配置并放置在设备上,或者通过手动将证书放入设备上的 EAS 配置文件来实现。

在 Android 上测试 EAS 客户端应用程序

  1. 在应用程序中配置符合上一部分中要求的 EAS 配置文件。
  2. 打开应用程序,并验证邮件是否正在同步。

后续步骤

有关 Android 设备上基于证书的身份验证的其他信息。

有关 iOS 设备上基于证书的身份验证的其他信息。