排查 Windows 登录问题

本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。

  • 证书和公钥基础结构

  • Windows Active Directory 维护多个证书存储,用于管理用户登录证书。

  • NTAuth 证书存储:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:certutil –viewstore –enterprise NTAuth
  • 根证书和中间证书存储: 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。
  • 登录证书扩展和组策略: 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)
注册表策略 说明
AllowCertificatesWithNoEKU 禁用时,证书必须包含智能卡登录扩展密钥用法 (EKU)。
  • AllowSignatureOnlyKeys 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。
    AllowTimeInvalidCertificates 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。
    EnumerateECCCerts 启用椭圆曲线身份验证。
    X509HintsNeeded 如果证书不包含唯一的用户主体名称 (UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。
    UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors 禁用吊销检查(在域控制器上设置)。
    • 域控制器证书:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。

UPN 名称和证书映射

建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。

Active Directory 中的 UPN 名称

默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 <samUsername>@<domainNetBios> 和 <samUsername>@<domainFQDN>。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。

此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。

按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。

证书映射服务

如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。

提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。

如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。

控制登录域控制器选择

当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。

控制域控制器选择

要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (\Windows\System32\drivers\etc\lmhosts) 显式设置 Windows 计算机使用的域控制器列表。

该位置通常有一个名为 “lmhosts.sam” 的示例文件。只需包含一行:

1.2.3.4 dcnetbiosname #PRE #DOM:mydomai

其中 “1.2.3.4” 是 “mydomain” 域中名为 “dcnetbiosname” 的域控制器的 IP 地址。

重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。

识别正在使用的域控制器

登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:echo %LOGONSERVER% 启动命令提示符。

与身份验证相关的日志存储在此命令返回的计算机上。

启用帐户审核事件

默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 gpedit.msc。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。

启用帐户审核事件

证书验证日志

检查证书有效性

-  如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 `certutil –verify user.cer` 对其进行验证。

-  ### 启用 CAPI 日志记录

在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。

  • 在域控制器和 VDA 计算机上,打开事件查看器并导航到 应用程序和服务日志 > Microsoft > Windows > CAPI2 > 操作。右键单击 操作 并选择 启用日志

  • 此外,可以通过以下注册表值微调 CAPI 日志记录:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。

描述
DiagLevel (DWORD) 详细级别(0 到 5)
DiagMatchAnyMask (QUADWORD) 事件筛选器(全部使用 0xffffff)
DiagProcessName (MULTI_SZ) 按进程名称筛选(例如,LSASS.exe)

CAPI 日志

消息 描述
构建链 LSA 调用 CertGetCertificateChain(包括结果)
验证吊销 LSA 调用 CertVerifyRevocation(包括结果)
X509 对象 在详细模式下,证书和证书吊销列表 (CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects
验证链策略 LSA 调用 CertVerifyChainPolicy(包括参数)

错误消息

错误代码 描述
证书不受信任 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。
证书吊销检查错误 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅证书和公钥基础结构部分。
证书使用错误 该证书不适用于登录。例如,它可能是服务器证书或签名证书。

Kerberos 日志

若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值:

配置单元 值名称 值 [DWORD]
CurrentControlSet\Control\Lsa\Kerberos\Parameters LogLevel 0x1
CurrentControlSet\Control\Lsa\Kerberos\Parameters KerbDebuglevel 0xffffffff
CurrentControlSet\Services\Kdc KdcDebugLevel 0x1
CurrentControlSet\Services\Kdc KdcExtraLogLevel 0x1f

Kerberos 日志记录输出到系统事件日志。

  • “不受信任的证书”等消息应易于诊断。
  • 两个错误代码是信息性的,可以安全地忽略:
    • KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容)
    • 未知错误 0x4b

域控制器和工作站日志

本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。

  • 域控制器 CAPI2 日志
  • 域控制器安全日志
  • 虚拟投递代理 (VDA) 安全日志
  • VDA CAPI 日志
  • VDA 系统日志

域控制器 CAPI2 日志

在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。

域控制器 CAPI2 日志

最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。

域控制器 CAPI2 日志 2

域控制器安全日志

域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。

此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。

域控制器安全日志

VDA 安全日志

对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。

VDA 安全日志

VDA CAPI 日志

此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。

VDA CAPI 日志 2

VDA 系统日志

启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。

VDA 系统日志

使用 Windows 事件日志监视 FAS

所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。

FAS 服务是否正在运行

要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。

本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 FAS 事件日志

FAS 运行状况事件

以下事件显示您的 FAS 服务是否正常运行。

事件源为 Citrix.Authentication.FederatedAuthenticationService

事件 事件文本 说明 备注
[S003] 管理员 [{0}] 将维护模式设置为 [{1}] FAS 服务已进入或退出维护模式。 处于维护模式时,FAS 服务器无法用于单点登录。
[S022] 管理员 [{0}] 将维护模式设置为“关” FAS 服务已退出维护模式。 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。
[S023] 管理员 [{0}] 将维护模式设置为“开” FAS 服务已进入维护模式。 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。
[S123] 无法为 [upn: {0} 角色: {1}] 颁发证书 [异常: {2}] 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 [S124] 之后发生。该用户的单点登录将失败。 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。
[S124] 无法在 [证书颁发机构: {2}] 为 [upn: {0} 角色: {1}] 颁发证书 [异常: {3}] FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。
[S413] 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 可以使用 cmdlet Set-FasRaCertificateMonitor 调整默认设置;请参阅 PowerShell cmdlet
[S414] 授权证书已过期。证书详细信息: {0} 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。

云连接的 FAS 事件

如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。

事件源为 Citrix.Fas.Cloud

事件 事件文本 说明 备注
[S012] FAS 服务可用于从 Citrix Cloud 进行单点登录 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 在发出此事件之前,FAS 会检查 (1) 是否已配置,(2) 是否未处于维护模式,以及 (3) 是否已连接到 Citrix Cloud。
[S013] FAS 服务无法用于从 Citrix Cloud 进行单点登录。[{0}] 更多详细信息可在管理控制台中找到。 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接

安全事件

以下事件表明未经授权的实体尝试使用 FAS。

事件源为 Citrix.Authentication.FederatedAuthenticationService

事件 事件文本 说明
[S001] 访问被拒绝: 用户 [{0}] 不是 Administrators 组的成员 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。
[S002] 访问被拒绝: 用户 [{0}] 不是角色 [{1}] 的管理员 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。
[S101] 服务器 [{0}] 无权在角色 [{1}] 中声明身份 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。
[S104] 服务器 [{0}] 声明 UPN [{1}] 失败(角色 [{2}] 不允许 UPN) 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。
[S205] 信赖方访问被拒绝 - 调用帐户 [{0}] 不是规则 [{1}] 的允许信赖方 VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。

FAS 事件日志

以下表格列出了 FAS 生成的事件日志条目。

管理事件 [Federated Authentication Service]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

这些事件是响应 FAS 服务器中的配置更改而记录的。

日志代码
[S001] 访问被拒绝: 用户 [{0}] 不是 Administrators 组的成员
[S002] 访问被拒绝: 用户 [{0}] 不是角色 [{1}] 的管理员
[S003] 管理员 [{0}] 将维护模式设置为 [{1}]
[S004] 管理员 [{0}] 使用模板 [{2} 和 {3}] 从 CA [{1}] 请求授权证书
[S005] 管理员 [{0}] 取消授权 CA [{1}]
[S006] 管理员 [{0}] 创建证书定义 [{1}]
[S007] 管理员 [{0}] 更新证书定义 [{1}]
[S008] 管理员 [{0}] 删除证书定义 [{1}]
[S009] 管理员 [{0}] 创建规则 [{1}]
[S010] 管理员 [{0}] 更新规则 [{1}]
[S011] 管理员 [{0}] 删除规则 [{1}]
[S012] 管理员 [{0}] 创建证书 [upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}]
[S013] 管理员 [{0}] 删除证书 [upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}]
[S015] 管理员 [{0}] 创建证书请求 [TPM: {1}]
[S016] 管理员 [{0}] 导入授权证书 [引用: {1}]
[S022] 管理员 [{0}] 将维护模式设置为“关”
[S023] 管理员 [{0}] 将维护模式设置为“开”
[S024] 管理员 [{0}] 设置系统运行状况监视器
[S025] 管理员 [{0}] 设置系统运行状况监视器
[S026] 管理员 [{0}] 设置 RA 证书监视器
[S027] 管理员 [{0}] 重置 RA 证书监视器
[S050] 管理员 [{0}] 创建云配置: [{1}]
[S051] 管理员 [{0}] 更新云配置: [{1}]
[S052] 管理员 [{0}] 正在移除云配置
[S060] 管理员 [{0}] 正在请求云注册。实例: {1}
[S060] 管理员 [{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2}
[S061] 管理员 [{0}] 正在完成云注册。资源位置: {1},规则名称: {2}
[S062] 管理员 [{0}] 已完成云注册。资源位置: {1} ({2}),规则名称: {3},客户: {4} ({5})
[S063] 云注册期间发生 KRS 错误。异常为 {0}
[S064] 云注册期间发生未知错误。异常为 {0}
日志代码
[S401] 正在执行配置升级 - [从版本 {0} 到版本 {1}]
[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 [当前运行身份: {0}]
[S404] 强制擦除 Citrix 联邦身份验证服务数据库
[S405] 将数据从注册表迁移到数据库时发生错误: [{0}]
[S406] 数据从注册表到数据库的迁移已完成 (注意: 用户证书未迁移)
[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在
[S408] 无法降级配置 – [从版本 {0} 到版本 {1}]
[S409] 线程池配置成功 - MinThreads 已从 [工作线程: {0} 完成: {1}] 调整为: [工作线程: {2} 完成: {3}]
[S410] 线程池配置失败 - 无法将 MinThreads 从 [工作线程: {0} 完成: {1}] 调整为: [工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性
[S411] 启动 FAS 服务时出错: [{0}]
[S412] 配置升级完成 – [从版本 {0} 到版本 {1}]
[S413] 授权证书即将过期 (剩余 {0} 天)。证书详细信息: {1}
[S414] 授权证书已过期。证书详细信息: {0}
[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行

创建身份断言 [联邦身份验证服务]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。

日志代码
[S101] 服务器 [{0}] 未获得授权在角色 [{1}] 中断言身份
[S102] 服务器 [{0}] 未能断言 UPN [{1}] (异常: {2}{3})
[S103] 服务器 [{0}] 请求了 UPN [{1}] SID {2},但查找返回了 SID {3}
[S104] 服务器 [{0}] 未能断言 UPN [{1}] (UPN 不允许由角色 [{2}])
[S105] 服务器 [{0}] 发布了身份断言 [upn: {1}, 角色 {2}, 安全上下文: [{3}]]
[S120] 正在向 [upn: {0} 角色: {1} 安全上下文: [{2}]] 颁发证书
[S121] 证书已颁发给 [upn: {0} 角色: {1}],由 [证书颁发机构: {2}] 颁发
[S122] 警告: 服务器过载 [upn: {0} 角色: {1}][每分钟请求数 {2}]。
[S123] 未能为 [upn: {0} 角色: {1}] 颁发证书 [异常: {2}]
[S124] 未能为 [upn: {0} 角色: {1}] 在 [证书颁发机构: {2}] 颁发证书 [异常: {3}]

作为信赖方 [联合身份验证服务]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。

日志代码
[S201] 信赖方 [{0}] 无权访问密码。
[S202] 信赖方 [{0}] 无权访问证书。
[S203] 信赖方 [{0}] 无权访问登录 CSP
[S204] 信赖方 [{0}] 正在访问登录 CSP,用于 [upn: {1}] 在角色: [{2}] [操作: {3}],由 [{4}] 授权
[S205] 信赖方访问被拒绝 - 调用帐户 [{0}] 不是规则 [{1}] 允许的信赖方
[S206] 调用帐户 [{0}] 不是信赖方
[S208] 私钥操作失败 [操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。

会话内证书服务器 [联合身份验证服务]

  • [事件源: Citrix.Authentication.FederatedAuthenticationService]

  • 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。

  • 日志代码
    [S301] 访问被拒绝: 用户 [{0}] 无权访问虚拟智能卡
    [S302] 用户 [{0}] 请求了未知的虚拟智能卡 [指纹: {1}]
    [S303] 访问被拒绝: 用户 [{0}] 与虚拟智能卡 [upn: {1}] 不匹配
    [S304] 用户 [{0}] 正在计算机 [{2}] 上运行程序 [{1}],使用虚拟智能卡 [upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 [{6}]
    [S305] 私钥操作失败 [操作: {0}] [upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。

FAS 断言插件 [联合身份验证服务]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

这些事件由 FAS 断言插件记录。

日志代码
[S500] 未配置 FAS 断言插件
[S501] 无法加载已配置的 FAS 断言插件 [异常:{0}]
[S502] FAS 断言插件已加载 [插件 ID={0}] [程序集={1}] [位置={2}]
[S503] 服务器 [{0}] 未能断言 UPN [{1}] (提供了登录凭据,但插件 [{2}] 不支持它)
[S504] 服务器 [{0}] 未能断言 UPN [{1}] (提供了登录凭据,但没有配置 FAS 插件)
[S505] 服务器 [{0}] 未能断言 UPN [{1}] (插件 [{2}] 拒绝了登录凭据,状态为 [{3}],消息为 [{4}])
[S506] 插件 [{0}] 接受了来自服务器 [{1}] 的 UPN [{2}] 的登录凭据,消息为 [{3}]
[S507] 服务器 [{0}] 未能断言 UPN [{1}] (插件 [{2}] 在方法 [{4}] 期间抛出异常 [{3}])
[S507] 服务器 [{0}] 未能断言 UPN [{1}] (插件 [{2}] 抛出异常 [{3}])
[S508] 服务器 [{0}] 未能断言 UPN [{1}] (提供了访问处置,但插件 [{2}] 不支持它)
[S509] 服务器 [{0}] 未能断言 UPN [{1}] (提供了访问处置,但没有配置 FAS 插件)
[S510] 服务器 [{0}] 未能断言 UPN [{1}] (访问处置被插件 [{2}] 视为无效)

启用 Workspace 的 FAS [联合身份验证服务]

[事件源: Citrix.Fas.Cloud]

当 FAS 与 Workspace 结合使用时,将记录这些事件。

日志代码
[S001] 轮换了 Citrix Cloud 授权密钥 [FAS ID: {0}] [旧密钥 ID:{1}] [新密钥 ID:{2}]
[S002] 云支持模块正在启动。FasHub 云服务 URL: {0}
[S003] FAS 已向云注册 [FAS ID: {0}] [事务 ID: {1}]
[S004] FAS 未能向云注册 [FAS ID: {0}] [事务 ID: {1}] [异常: {2}]
[S005] FAS 已将其当前配置发送到云 [FAS ID: {0}] [事务 ID: {1}]
[S006] FAS 未能将其当前配置发送到云 [FAS ID: {0}] [事务 ID: {1}] [异常: {2}]
[S007] FAS 已从云注销 [FAS ID: {0}] [事务 ID: {1}]
[S009] FAS 未能从云注销 [FAS ID: {0}] [事务 ID: {1}] [异常: {2}]
[S010] FAS 服务已连接到云消息传递 URL: {0}
[S011] FAS 服务未连接到云
[S012] FAS 服务可用于 Citrix Cloud 的单点登录
[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。[{0}] 更多详细信息可在管理控制台中找到
[S014] 对云服务 # 排查 Windows 登录问题

本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。

  • 证书和公钥基础结构

  • Windows Active Directory 维护多个证书存储,用于管理用户登录证书。

  • NTAuth 证书存储:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0>
  • 根证书和中间证书存储: 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。
  • 登录证书扩展和组策略: 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)
注册表策略 说明
AllowCertificatesWithNoEKU 禁用时,证书必须包含智能卡登录扩展密钥用法 (EKU)。
  • AllowSignatureOnlyKeys 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。
    AllowTimeInvalidCertificates 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。
    EnumerateECCCerts 启用椭圆曲线身份验证。
    X509HintsNeeded 如果证书不包含唯一的用户主体名称 (UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。
    UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors 禁用吊销检查(在域控制器上设置)。
    • 域控制器证书:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。

UPN 名称和证书映射

建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。

Active Directory 中的 UPN 名称

默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 <samUsername>@<domainNetBios> 和 <samUsername>@<domainFQDN>。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。

此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。

按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。

证书映射服务

如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。

提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。

如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。

控制登录域控制器选择

当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。

控制域控制器选择

要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。

该位置通常有一个名为 “lmhosts.sam” 的示例文件。只需包含一行:

1.2.3.4 dcnetbiosname #PRE #DOM:mydomai

其中 “1.2.3.4” 是 “mydomain” 域中名为 “dcnetbiosname” 的域控制器的 IP 地址。

重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。

识别正在使用的域控制器

登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:echo %LOGONSERVER% 启动命令提示符。

与身份验证相关的日志存储在此命令返回的计算机上。

启用帐户审核事件

默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。

启用帐户审核事件

证书验证日志

检查证书有效性

-  如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。

-  ### 启用 CAPI 日志记录

在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。

  • 在域控制器和 VDA 计算机上,打开事件查看器并导航到 应用程序和服务日志 > Microsoft > Windows > CAPI2 > 操作。右键单击 操作 并选择 启用日志

  • 此外,可以通过以下注册表值微调 CAPI 日志记录:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。

描述
DiagLevel (DWORD) 详细级别(0 到 5)
DiagMatchAnyMask (QUADWORD) 事件筛选器(全部使用 0xffffff)
DiagProcessName (MULTI_SZ) 按进程名称筛选(例如,LSASS.exe)

CAPI 日志

消息 描述
构建链 LSA 调用 CertGetCertificateChain(包括结果)
验证吊销 LSA 调用 CertVerifyRevocation(包括结果)
X509 对象 在详细模式下,证书和证书吊销列表 (CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects
验证链策略 LSA 调用 CertVerifyChainPolicy(包括参数)

错误消息

错误代码 描述
证书不受信任 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。
证书吊销检查错误 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅证书和公钥基础结构部分。
证书使用错误 该证书不适用于登录。例如,它可能是服务器证书或签名证书。

Kerberos 日志

若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值:

配置单元 值名称 值 [DWORD]
CurrentControlSet\Control\Lsa\Kerberos\Parameters LogLevel 0x1
CurrentControlSet\Control\Lsa\Kerberos\Parameters KerbDebuglevel 0xffffffff
CurrentControlSet\Services\Kdc KdcDebugLevel 0x1
CurrentControlSet\Services\Kdc KdcExtraLogLevel 0x1f

Kerberos 日志记录输出到系统事件日志。

  • “不受信任的证书”等消息应易于诊断。
  • 两个错误代码是信息性的,可以安全地忽略:
    • KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容)
    • 未知错误 0x4b

域控制器和工作站日志

本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。

  • 域控制器 CAPI2 日志
  • 域控制器安全日志
  • 虚拟投递代理 (VDA) 安全日志
  • VDA CAPI 日志
  • VDA 系统日志

域控制器 CAPI2 日志

在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。

域控制器 CAPI2 日志

最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。

域控制器 CAPI2 日志 2

域控制器安全日志

域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。

此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。

域控制器安全日志

VDA 安全日志

对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。

VDA 安全日志

VDA CAPI 日志

此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。

VDA CAPI 日志 2

VDA 系统日志

启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。

VDA 系统日志

使用 Windows 事件日志监视 FAS

所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。

FAS 服务是否正在运行

要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。

本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 FAS 事件日志

FAS 运行状况事件

以下事件显示您的 FAS 服务是否正常运行。

事件源为 Citrix.Authentication.FederatedAuthenticationService

事件 事件文本 说明 备注
[S003] 管理员 [{0}] 将维护模式设置为 [{1}] FAS 服务已进入或退出维护模式。 处于维护模式时,FAS 服务器无法用于单点登录。
[S022] 管理员 [{0}] 将维护模式设置为“关” FAS 服务已退出维护模式。 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。
[S023] 管理员 [{0}] 将维护模式设置为“开” FAS 服务已进入维护模式。 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。
[S123] 无法为 [upn: {0} 角色: {1}] 颁发证书 [异常: {2}] 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 [S124] 之后发生。该用户的单点登录将失败。 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。
[S124] 无法在 [证书颁发机构: {2}] 为 [upn: {0} 角色: {1}] 颁发证书 [异常: {3}] FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。
[S413] 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 可以使用 cmdlet Set-FasRaCertificateMonitor 调整默认设置;请参阅 PowerShell cmdlet
[S414] 授权证书已过期。证书详细信息: {0} 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。

云连接的 FAS 事件

如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。

事件源为 Citrix.Fas.Cloud

事件 事件文本 说明 备注
[S012] FAS 服务可用于从 Citrix Cloud 进行单点登录 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 在发出此事件之前,FAS 会检查 (1) 是否已配置,(2) 是否未处于维护模式,以及 (3) 是否已连接到 Citrix Cloud。
[S013] FAS 服务无法用于从 Citrix Cloud 进行单点登录。[{0}] 更多详细信息可在管理控制台中找到。 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接

安全事件

以下事件表明未经授权的实体尝试使用 FAS。

事件源为 Citrix.Authentication.FederatedAuthenticationService

事件 事件文本 说明
[S001] 访问被拒绝: 用户 [{0}] 不是 Administrators 组的成员 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。
[S002] 访问被拒绝: 用户 [{0}] 不是角色 [{1}] 的管理员 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。
[S101] 服务器 [{0}] 无权在角色 [{1}] 中声明身份 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。
[S104] 服务器 [{0}] 声明 UPN [{1}] 失败(角色 [{2}] 不允许 UPN) 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。
[S205] 信赖方访问被拒绝 - 调用帐户 [{0}] 不是规则 [{1}] 的允许信赖方 VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。

FAS 事件日志

以下表格列出了 FAS 生成的事件日志条目。

管理事件 [Federated Authentication Service]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

这些事件是响应 FAS 服务器中的配置更改而记录的。

日志代码
[S001] 访问被拒绝: 用户 [{0}] 不是 Administrators 组的成员
[S002] 访问被拒绝: 用户 [{0}] 不是角色 [{1}] 的管理员
[S003] 管理员 [{0}] 将维护模式设置为 [{1}]
[S004] 管理员 [{0}] 使用模板 [{2} 和 {3}] 从 CA [{1}] 请求授权证书
[S005] 管理员 [{0}] 取消授权 CA [{1}]
[S006] 管理员 [{0}] 创建证书定义 [{1}]
[S007] 管理员 [{0}] 更新证书定义 [{1}]
[S008] 管理员 [{0}] 删除证书定义 [{1}]
[S009] 管理员 [{0}] 创建规则 [{1}]
[S010] 管理员 [{0}] 更新规则 [{1}]
[S011] 管理员 [{0}] 删除规则 [{1}]
[S012] 管理员 [{0}] 创建证书 [upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}]
[S013] 管理员 [{0}] 删除证书 [upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}]
[S015] 管理员 [{0}] 创建证书请求 [TPM: {1}]
[S016] 管理员 [{0}] 导入授权证书 [引用: {1}]
[S022] 管理员 [{0}] 将维护模式设置为“关”
[S023] 管理员 [{0}] 将维护模式设置为“开”
[S024] 管理员 [{0}] 设置系统运行状况监视器
[S025] 管理员 [{0}] 设置系统运行状况监视器
[S026] 管理员 [{0}] 设置 RA 证书监视器
[S027] 管理员 [{0}] 重置 RA 证书监视器
[S050] 管理员 [{0}] 创建云配置: [{1}]
[S051] 管理员 [{0}] 更新云配置: [{1}]
[S052] 管理员 [{0}] 正在移除云配置
[S060] 管理员 [{0}] 正在请求云注册。实例: {1}
[S060] 管理员 [{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2}
[S061] 管理员 [{0}] 正在完成云注册。资源位置: {1},规则名称: {2}
[S062] 管理员 [{0}] 已完成云注册。资源位置: {1} ({2}),规则名称: {3},客户: {4} ({5})
[S063] 云注册期间发生 KRS 错误。异常为 {0}
[S064] 云注册期间发生未知错误。异常为 {0}
日志代码
[S401] 正在执行配置升级 - [从版本 {0} 到版本 {1}]
[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 [当前运行身份: {0}]
[S404] 强制擦除 Citrix 联邦身份验证服务数据库
[S405] 将数据从注册表迁移到数据库时发生错误: [{0}]
[S406] 数据从注册表到数据库的迁移已完成 (注意: 用户证书未迁移)
[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在
[S408] 无法降级配置 – [从版本 {0} 到版本 {1}]
[S409] 线程池配置成功 - MinThreads 已从 [工作线程: {0} 完成: {1}] 调整为: [工作线程: {2} 完成: {3}]
[S410] 线程池配置失败 - 无法将 MinThreads 从 [工作线程: {0} 完成: {1}] 调整为: [工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性
[S411] 启动 FAS 服务时出错: [{0}]
[S412] 配置升级完成 – [从版本 {0} 到版本 {1}]
[S413] 授权证书即将过期 (剩余 {0} 天)。证书详细信息: {1}
[S414] 授权证书已过期。证书详细信息: {0}
[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行

创建身份断言 [联邦身份验证服务]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。

日志代码
[S101] 服务器 [{0}] 未获得授权在角色 [{1}] 中断言身份
[S102] 服务器 [{0}] 未能断言 UPN [{1}] (异常: {2}{3})
[S103] 服务器 [{0}] 请求了 UPN [{1}] SID {2},但查找返回了 SID {3}
[S104] 服务器 [{0}] 未能断言 UPN [{1}] (UPN 不允许由角色 [{2}])
[S105] 服务器 [{0}] 发布了身份断言 [upn: {1}, 角色 {2}, 安全上下文: [{3}]]
[S120] 正在向 [upn: {0} 角色: {1} 安全上下文: [{2}]] 颁发证书
[S121] 证书已颁发给 [upn: {0} 角色: {1}],由 [证书颁发机构: {2}] 颁发
[S122] 警告: 服务器过载 [upn: {0} 角色: {1}][每分钟请求数 {2}]。
[S123] 未能为 [upn: {0} 角色: {1}] 颁发证书 [异常: {2}]
[S124] 未能为 [upn: {0} 角色: {1}] 在 [证书颁发机构: {2}] 颁发证书 [异常: {3}]

作为信赖方 [联合身份验证服务]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。

日志代码
[S201] 信赖方 [{0}] 无权访问密码。
[S202] 信赖方 [{0}] 无权访问证书。
[S203] 信赖方 [{0}] 无权访问登录 CSP
[S204] 信赖方 [{0}] 正在访问登录 CSP,用于 [upn: {1}] 在角色: [{2}] [操作: {3}],由 [{4}] 授权
[S205] 信赖方访问被拒绝 - 调用帐户 [{0}] 不是规则 [{1}] 允许的信赖方
[S206] 调用帐户 [{0}] 不是信赖方
[S208] 私钥操作失败 [操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。

会话内证书服务器 [联合身份验证服务]

  • [事件源: Citrix.Authentication.FederatedAuthenticationService]

  • 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。

  • 日志代码
    [S301] 访问被拒绝: 用户 [{0}] 无权访问虚拟智能卡
    [S302] 用户 [{0}] 请求了未知的虚拟智能卡 [指纹: {1}]
    [S303] 访问被拒绝: 用户 [{0}] 与虚拟智能卡 [upn: {1}] 不匹配
    [S304] 用户 [{0}] 正在计算机 [{2}] 上运行程序 [{1}],使用虚拟智能卡 [upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 [{6}]
    [S305] 私钥操作失败 [操作: {0}] [upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。

FAS 断言插件 [联合身份验证服务]

[事件源: Citrix.Authentication.FederatedAuthenticationService]

这些事件由 FAS 断言插件记录。

日志代码
[S500] 未配置 FAS 断言插件
[S501] 无法加载已配置的 FAS 断言插件 [异常:{0}]
[S502] FAS 断言插件已加载 [插件 ID={0}] [程序集={1}] [位置={2}]
[S503] 服务器 [{0}] 未能断言 UPN [{1}] (提供了登录凭据,但插件 [{2}] 不支持它)
[S504] 服务器 [{0}] 未能断言 UPN [{1}] (提供了登录凭据,但没有配置 FAS 插件)
[S505] 服务器 [{0}] 未能断言 UPN [{1}] (插件 [{2}] 拒绝了登录凭据,状态为 [{3}],消息为 [{4}])
[S506] 插件 [{0}] 接受了来自服务器 [{1}] 的 UPN [{2}] 的登录凭据,消息为 [{3}]
[S507] 服务器 [{0}] 未能断言 UPN [{1}] (插件 [{2}] 在方法 [{4}] 期间抛出异常 [{3}])
[S507] 服务器 [{0}] 未能断言 UPN [{1}] (插件 [{2}] 抛出异常 [{3}])
[S508] 服务器 [{0}] 未能断言 UPN [{1}] (提供了访问处置,但插件 [{2}] 不支持它)
[S509] 服务器 [{0}] 未能断言 UPN [{1}] (提供了访问处置,但没有配置 FAS 插件)
[S510] 服务器 [{0}] 未能断言 UPN [{1}] (访问处置被插件 [{2}] 视为无效)

启用 Workspace 的 FAS [联合身份验证服务]

[事件源: Citrix.Fas.Cloud]

当 FAS 与 Workspace 结合使用时,将记录这些事件。

| 日志代码 | | – | | [S001] 轮换了 Citrix Cloud 授权密钥 [FAS ID: {0}] [旧密钥 ID:{1}] [新密钥 ID:{2}] | | [S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | [S003] FAS 已向云注册 [FAS ID: {0}] [事务 ID: {1}] | | [S004] FAS 未能向云注册 [FAS ID: {0}] [事务 ID: {1}] [异常: {2}] | | [S005] FAS 已将其当前配置发送到云 [FAS ID: {0}] [事务 ID: {1}] | | [S006] FAS 未能将其当前配置发送到云 [FAS ID: {0}] [事务 ID: {1}] [异常: {2}]| | [S007] FAS 已从云注销 [FAS ID: {0}] [事务 ID: {1}] | | [S009] FAS 未能从云注销 [FAS ID: {0}] [事务 ID: {1}] [异常: {2}] | | [S010] FAS 服务已连接到云消息传递 URL: {0} | | [S011] FAS 服务未连接到云 | | [S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | [S013] FAS 服务不可用于 Citrix Cloud 的单点登录。[{0}] 更多详细信息可在管理控制台中找到|

<服务名称># 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| 的调用失败 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S015] 来自 Citrix Cloud 的消息被阻止,因为调用方未获得许可 \[消息 ID {0}] \[事务 ID {1}] \[调用方 {2}]| | \[S016] 对云服务 # 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| | \[S014] 对云服务 # 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| <服务名称># 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| 的调用失败 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S015] 来自 Citrix Cloud 的消息被阻止,因为调用方未获得许可 \[消息 ID {0}] \[事务 ID {1}] \[调用方 {2}]| <服务名称># 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| | \[S014] 对云服务 # 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| <服务名称># 排查 Windows 登录问题 本文介绍当用户使用证书或智能卡(或两者)登录时 Windows 提供的日志和错误消息。这些日志提供可用于排查身份验证失败问题的信息。 - ## 证书和公钥基础结构 - Windows Active Directory 维护多个证书存储,用于管理用户登录证书。 - **NTAuth 证书存储**:要向 Windows 进行身份验证,立即颁发用户证书(即不支持链式结构)的证书颁发机构必须放置在 NTAuth 存储中。要查看这些证书,请从 certutil 程序中输入:<!JEKYLL@19400@0> - **根证书和中间证书存储:** 通常,证书登录系统只能提供单个证书,因此如果正在使用链式结构,则所有计算机上的中间证书存储必须包含这些证书。根证书必须位于受信任的根存储中,并且倒数第二个证书必须位于 NTAuth 存储中。 - **登录证书扩展和组策略:** 可以将 Windows 配置为强制验证 EKU 和其他证书策略。请参阅 Microsoft 文档:<https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)>。 | 注册表策略 | 说明 | |----------------------------|------------------------------------------------| | AllowCertificatesWithNoEKU | 禁用时,证书必须包含智能卡登录扩展密钥用法 \(EKU)。 | - | AllowSignatureOnlyKeys | 默认情况下,Windows 会筛选出不允许 RSA 解密的证书私钥。此选项会覆盖该筛选器。 | | AllowTimeInvalidCertificates | 默认情况下,Windows 会筛选出已过期的证书。此选项会覆盖该筛选器。 | | EnumerateECCCerts | 启用椭圆曲线身份验证。 | | X509HintsNeeded | 如果证书不包含唯一的用户主体名称 \(UPN),或者不明确,此选项允许用户手动指定其 Windows 登录帐户。 | | UseCachedCRLOnlyAnd, IgnoreRevocationUnknownErrors | 禁用吊销检查(在域控制器上设置)。 | - **域控制器证书**:要对 Kerberos 连接进行身份验证,所有服务器都必须具有相应的“域控制器”证书。可以使用“本地计算机证书个人存储”MMC 管理单元菜单请求这些证书。 ## UPN 名称和证书映射 建议用户证书在主题备用名称扩展中包含唯一的“用户主体名称 (UPN)”。 ### Active Directory 中的 UPN 名称 默认情况下,Active Directory 中的每个用户都有一个隐式 UPN,其模式为 \@\ 和 \@\。可用域和 FQDN 包含在林的 RootDSE 条目中。单个域可以在 RootDSE 中注册多个 FQDN 地址。 此外,Active Directory 中的每个用户都有一个显式 UPN 和 altUserPrincipalNames。这些是用于指定用户 UPN 的 LDAP 条目。 按 UPN 搜索用户时,Windows 首先在当前域中(基于查找 UPN 的进程的标识)查找显式 UPN,然后查找备用 UPN。如果没有匹配项,它会查找隐式 UPN,这可能会解析为林中的不同域。 ### 证书映射服务 如果证书不包含显式 UPN,Active Directory 可以选择将每个用途的精确公共证书存储在“x509certificate”属性中。要将此类证书解析为用户,计算机可以直接查询此属性(默认情况下,在单个域中)。 提供了一个选项,供用户指定用户帐户,以加快此搜索速度,并且还允许在跨域环境中使用此功能。 如果林中有多个域,并且用户未显式指定域,则 Active Directory rootDSE 会指定证书映射服务的位置。它位于全局编录计算机上,并具有林中所有 x509certificate 属性的缓存视图。此计算机可用于仅基于证书高效地查找任何域中的用户帐户。 ## 控制登录域控制器选择 当环境包含多个域控制器时,查看和限制哪些域控制器用于身份验证会很有用,以便可以启用和检索日志。 ### 控制域控制器选择 要强制 Windows 使用特定的 Windows 域控制器进行登录,您可以通过配置 lmhosts 文件 (<!JEKYLL@19400@1>) 显式设置 Windows 计算机使用的域控制器列表。 该位置通常有一个名为 "lmhosts.sam" 的示例文件。只需包含一行: 1.2.3.4 dcnetbiosname #PRE #DOM:mydomai 其中 "1.2.3.4" 是 "mydomain" 域中名为 "dcnetbiosname" 的域控制器的 IP 地址。 重新启动后,Windows 计算机将使用该信息登录到 mydomain。调试完成后必须还原此配置。 ### 识别正在使用的域控制器 登录时,Windows 会设置一个 MSDOS 环境变量,其中包含登录用户的域控制器。要查看此信息,请使用命令:**echo %LOGONSERVER%** 启动命令提示符。 与身份验证相关的日志存储在此命令返回的计算机上。 ## 启用帐户审核事件 默认情况下,Windows 域控制器不启用完整的帐户审核日志。这可以通过组策略编辑器中安全设置中的审核策略进行控制。要在域控制器上打开组策略编辑器,请运行 <!JEKYLL@19400@2>。启用审核策略后,域控制器会在安全日志中生成额外的事件日志信息。 ![启用帐户审核事件](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-auditpolicy.png) ## 证书验证日志 ### 检查证书有效性 - 如果智能卡证书导出为 DER 证书(无需私钥),您可以使用命令 <!JEKYLL@19400@3> 对其进行验证。 - ### 启用 CAPI 日志记录 在域控制器和用户计算机上,打开事件查看器并为 Microsoft/Windows/CAPI2/Operational Logs 启用日志记录。 - 在域控制器和 VDA 计算机上,打开事件查看器并导航到 **应用程序和服务日志** > **Microsoft** > **Windows** > **CAPI2** > **操作**。右键单击 **操作** 并选择 **启用日志**。 - 此外,可以通过以下注册表值微调 CAPI 日志记录:*HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\crypt32*。以下值默认不存在,您必须创建它们。如果要恢复默认 CAPI2 日志记录设置,请删除这些值。 | 值 | 描述 | | ------ | ------ | | DiagLevel \(DWORD) | 详细级别(0 到 5) | | DiagMatchAnyMask \(QUADWORD) | 事件筛选器(全部使用 0xffffff) | | DiagProcessName \(MULTI\_SZ) | 按进程名称筛选(例如,LSASS.exe) | ### CAPI 日志 | 消息 | 描述 | | ----------------------------------------------------- | ---------------- | | 构建链 | LSA 调用 CertGetCertificateChain(包括结果) | | 验证吊销 | LSA 调用 CertVerifyRevocation(包括结果) | | X509 对象 | 在详细模式下,证书和证书吊销列表 \(CRL) 将转储到 AppData\LocalLow\Microsoft\X509Objects | | 验证链策略 | LSA 调用 CertVerifyChainPolicy(包括参数) | ### 错误消息 | 错误代码 | 描述 | |---------------|-----| | 证书不受信任 | 无法使用计算机的中间和受信任的根证书存储中的证书构建智能卡证书。 | | 证书吊销检查错误 | 无法从证书 CRL 分发点指定的地址下载智能卡的 CRL。如果强制执行吊销检查,这将阻止登录成功。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)部分。 | | 证书使用错误 | 该证书不适用于登录。例如,它可能是服务器证书或签名证书。 | ## Kerberos 日志 若要启用 Kerberos 日志记录,请在域控制器和最终用户计算机上创建以下注册表值: | 配置单元 | 值名称 | 值 \[DWORD] | | ----- | ----- | ----- | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | LogLevel | 0x1 | | CurrentControlSet\Control\Lsa\Kerberos\Parameters | KerbDebuglevel | 0xffffffff | | CurrentControlSet\Services\Kdc | KdcDebugLevel | 0x1 | | CurrentControlSet\Services\Kdc | KdcExtraLogLevel | 0x1f | Kerberos 日志记录输出到系统事件日志。 - “不受信任的证书”等消息应易于诊断。 - 两个错误代码是信息性的,可以安全地忽略: - KDC_ERR_PREAUTH_REQUIRED(用于与旧域控制器向后兼容) - 未知错误 0x4b ## 域控制器和工作站日志 本节介绍用户使用证书登录时域控制器和工作站上预期的日志条目。 - 域控制器 CAPI2 日志 - 域控制器安全日志 - 虚拟投递代理 (VDA) 安全日志 - VDA CAPI 日志 - VDA 系统日志 ### 域控制器 CAPI2 日志 在登录期间,域控制器会验证调用者的证书,并生成以下形式的日志条目序列。 ![域控制器 CAPI2 日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-log.png) 最终的事件日志消息显示域控制器上的 lsass.exe 根据 VDA 提供的证书构建了一个链,并验证其有效性(包括吊销)。结果返回为“ERROR_SUCCESS”。 ![域控制器 CAPI2 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi2-chainpolicy.png) ### 域控制器安全日志 域控制器显示一系列登录事件,其中关键事件为 4768,在此事件中,证书用于颁发 Kerberos 票证授予票证 (krbtgt)。 此之前的消息显示服务器的计算机帐户向域控制器进行身份验证。此之后的消息显示属于新 krbtgt 的用户帐户用于向域控制器进行身份验证。 ![域控制器安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-dc-security-log.png) ### VDA 安全日志 对应于登录事件的 VDA 安全审核日志是事件 ID 为 4648 的条目,源自 winlogon.exe。 ![VDA 安全日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-security-log.png) ### VDA CAPI 日志 此示例 VDA CAPI 日志显示源自 lsass.exe 的单个链构建和验证序列,用于验证域控制器证书 (dc.citrixtest.net)。 ![VDA CAPI 日志 2](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-capi-chainpolicy.png) ### VDA 系统日志 启用 Kerberos 日志记录时,系统日志会显示错误 KDC_ERR_PREAUTH_REQUIRED (可以忽略),以及来自 Winlogon 的条目,显示 Kerberos 登录成功。 ![VDA 系统日志](/en-us/federated-authentication-service/2402-ltsr/media/fas-troubleshoot-logon-vda-system-log.png) ## 使用 Windows 事件日志监视 FAS 所有 FAS 事件都写入 Windows 应用程序事件日志。您可以使用诸如 System Center Operations Manager (SCOM) 之类的产品,利用此处描述的进程和事件来监视 FAS 服务的运行状况。 ### FAS 服务是否正在运行 要确定 FAS 服务是否正在运行,请监视进程 Citrix.Authentication.FederatedAuthenticationService.exe。 本节仅介绍用于监视 FAS 服务的最重要事件。有关 FAS 事件代码的完整列表,请参阅 [FAS 事件日志](/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#fas-event-logs)。 ### FAS 运行状况事件 以下事件显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | 备注 | |-----|-----|-----|-----| | \[S003] | 管理员 \[{0}] 将维护模式设置为 \[{1}] | FAS 服务已进入或退出维护模式。 | 处于维护模式时,FAS 服务器无法用于单点登录。 | | \[S022] | 管理员 \[{0}] 将维护模式设置为“关” | FAS 服务已退出维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S023] | 管理员 \[{0}] 将维护模式设置为“开” | FAS 服务已进入维护模式。 | 适用于 FAS 10.7 / Citrix Virtual Apps and Desktops 2109。 | | \[S123] | 无法为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | 如果 FAS 配置的 CA 均未能成功颁发用户证书,则此事件会在 \[S124] 之后发生。该用户的单点登录将失败。 | 此事件表明所有配置的 CA 均无法正常工作。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。 | | \[S124] | 无法在 \[证书颁发机构: {2}] 为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {3}] | FAS 尝试从给定 CA 请求用户证书时发生故障。如果 FAS 配置了多个 CA,FAS 会尝试向另一个 CA 发出请求。 | 此事件可能表明 CA 无法正常工作或无法联系。如果 FAS 配置为使用 HSM,则也可能表明 HSM 无法正常工作。可使用异常来帮助识别问题原因。 | | \[S413] | 授权证书即将过期(剩余 {0} 天)。证书详细信息: {1} | 当 FAS 授权证书临近过期时,此事件会定期生成。默认情况下,如果授权证书在 30 天内过期,则每天都会生成此事件。 | 可以使用 cmdlet \*\*Set-FasRaCertificateMonitor\*\* 调整默认设置;请参阅 \[PowerShell cmdlet]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/ps-sdk.html)。 | | \[S414] | 授权证书已过期。证书详细信息: {0} | 当 FAS 授权证书已过期时,此事件会定期生成。默认情况下,每天都会生成此事件。 | 一旦过期,FAS 将无法生成新的用户证书,并且单点登录将开始失败。 | ### 云连接的 FAS 事件 如果您将 FAS 与 Citrix Cloud™ 结合使用,以下事件将显示您的 FAS 服务是否正常运行。 事件源为 **Citrix.Fas.Cloud**。 | 事件 | 事件文本 | 说明 | 备注 | |-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| | \[S012] | FAS 服务可用于从 Citrix Cloud 进行单点登录 | 此事件表明从 Workspace(即 Citrix Cloud)进行的单点登录应该正常工作。 | 在发出此事件之前,FAS 会检查 \(1) 是否已配置,\(2) 是否未处于维护模式,以及 \(3) 是否已连接到 Citrix Cloud。 | | \[S013] | FAS 服务无法用于从 Citrix Cloud 进行单点登录。\[{0}] 更多详细信息可在管理控制台中找到。 | 此事件表明 FAS 无法从 Workspace(即 Citrix Cloud)提供单点登录。消息中包含单点登录无法工作的原因。 | FAS 维护与 Citrix Cloud 的持久连接。此连接有时可能会因各种原因(例如网络故障或代理服务器上的连接生存期策略)而终止。发生这种情况时,事件文本包含“服务未连接到云”。\*\*这是正常行为,FAS 会立即尝试重新建立与 Citrix Cloud 的连接\*\*。 | ### 安全事件 以下事件表明未经授权的实体尝试使用 FAS。 事件源为 **Citrix.Authentication.FederatedAuthenticationService**。 | 事件 | 事件文本 | 说明 | |---|---|--| | \[S001] | 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | 尝试查看或更改 FAS 的配置,但调用者不是 FAS 管理员。 | | \[S002] | 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | 尝试查看或更改 FAS 规则的配置,但调用者不是 FAS 管理员。 | | \[S101] | 服务器 \[{0}] 无权在角色 \[{1}] 中声明身份 | 尝试声明用户身份,但调用者无权这样做。只有在 FAS 规则配置中获得许可的 StoreFront™ 服务器(如果适用,还包括 Workspace)才允许声明用户身份。 | | \[S104] | 服务器 \[{0}] 声明 UPN \[{1}] 失败(角色 \[{2}] 不允许 UPN) | 尝试声明用户身份,但根据 FAS 规则配置,该用户的帐户不被允许。 | | \[S205] | 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 的允许信赖方 | VDA 尝试使用 FAS 执行单点登录,但根据 FAS 规则配置,该 VDA 不被允许。 | ## FAS 事件日志 以下表格列出了 FAS 生成的事件日志条目。 ### 管理事件 [Federated Authentication Service] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件是响应 FAS 服务器中的配置更改而记录的。 | 日志代码 | | -- | | \[S001] 访问被拒绝: 用户 \[{0}] 不是 Administrators 组的成员 | | \[S002] 访问被拒绝: 用户 \[{0}] 不是角色 \[{1}] 的管理员 | | \[S003] 管理员 \[{0}] 将维护模式设置为 \[{1}] | | \[S004] 管理员 \[{0}] 使用模板 \[{2} 和 {3}] 从 CA \[{1}] 请求授权证书 | | \[S005] 管理员 \[{0}] 取消授权 CA \[{1}] | | \[S006] 管理员 \[{0}] 创建证书定义 \[{1}] | | \[S007] 管理员 \[{0}] 更新证书定义 \[{1}] | | \[S008] 管理员 \[{0}] 删除证书定义 \[{1}] | | \[S009] 管理员 \[{0}] 创建规则 \[{1}] | | \[S010] 管理员 \[{0}] 更新规则 \[{1}] | | \[S011] 管理员 \[{0}] 删除规则 \[{1}] | | \[S012] 管理员 \[{0}] 创建证书 \[upn: {1} sid: {2} 规则: {3}]证书定义: {4} 安全上下文: {5}] | | \[S013] 管理员 \[{0}] 删除证书 \[upn: {1} 角色: {2} 证书定义: {3} 安全上下文: {4}] | | \[S015] 管理员 \[{0}] 创建证书请求 \[TPM: {1}] | | \[S016] 管理员 \[{0}] 导入授权证书 \[引用: {1}] | | \[S022] 管理员 \[{0}] 将维护模式设置为“关” | | \[S023] 管理员 \[{0}] 将维护模式设置为“开” | | \[S024] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S025] 管理员 \[{0}] 设置系统运行状况监视器 | | \[S026] 管理员 \[{0}] 设置 RA 证书监视器 | | \[S027] 管理员 \[{0}] 重置 RA 证书监视器 | | \[S050] 管理员 \[{0}] 创建云配置: \[{1}] | | \[S051] 管理员 \[{0}] 更新云配置: \[{1}] | | \[S052] 管理员 \[{0}] 正在移除云配置 | | \[S060] 管理员 \[{0}] 正在请求云注册。实例: {1} | | \[S060] 管理员 \[{0}] 正在请求直接信任云注册。实例: {1} 云服务 URL 格式: {2} | | \[S061] 管理员 \[{0}] 正在完成云注册。资源位置: {1},规则名称: {2} | | \[S062] 管理员 \[{0}] 已完成云注册。资源位置: {1} \({2}),规则名称: {3},客户: {4} \({5}) | |\[S063] 云注册期间发生 KRS 错误。异常为 {0} | |\[S064] 云注册期间发生未知错误。异常为 {0} | | 日志代码 | |--| | \[S401] 正在执行配置升级 - \[从版本 {0} 到版本 {1}] | | \[S402] 错误: Citrix 联邦身份验证服务必须以 Network Service 身份运行 \[当前运行身份: {0}] | | \[S404] 强制擦除 Citrix 联邦身份验证服务数据库 | | \[S405] 将数据从注册表迁移到数据库时发生错误: \[{0}] | | \[S406] 数据从注册表到数据库的迁移已完成 \(注意: 用户证书未迁移) | | \[S407] 基于注册表的数据未迁移到数据库,因为数据库已存在 | | \[S408] 无法降级配置 -- \[从版本 {0} 到版本 {1}] | | \[S409] 线程池配置成功 - MinThreads 已从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}] | | \[S410] 线程池配置失败 - 无法将 MinThreads 从 \[工作线程: {0} 完成: {1}] 调整为: \[工作线程: {2} 完成: {3}]; 这可能会影响 FAS 服务器的可伸缩性 | | \[S411] 启动 FAS 服务时出错: \[{0}] | | \[S412] 配置升级完成 -- \[从版本 {0} 到版本 {1}] | | \[S413] 授权证书即将过期 \(剩余 {0} 天)。证书详细信息: {1} | | \[S414] 授权证书已过期。证书详细信息: {0} | | \[S415] 授权证书检查已完成。已记录 {0} 个问题。下次检查将在 {1} 后进行 | ### 创建身份断言 [联邦身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当受信任的服务器断言用户登录时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S101] 服务器 \[{0}] 未获得授权在角色 \[{1}] 中断言身份 | | \[S102] 服务器 \[{0}] 未能断言 UPN \[{1}] \(异常: {2}{3}) | | \[S103] 服务器 \[{0}] 请求了 UPN \[{1}] SID {2},但查找返回了 SID {3} | | \[S104] 服务器 \[{0}] 未能断言 UPN \[{1}] \(UPN 不允许由角色 \[{2}]) | | \[S105] 服务器 \[{0}] 发布了身份断言 \[upn: {1}, 角色 {2}, 安全上下文: \[{3}]] | | \[S120] 正在向 \[upn: {0} 角色: {1} 安全上下文: \[{2}]] 颁发证书 | | \[S121] 证书已颁发给 \[upn: {0} 角色: {1}],由 \[证书颁发机构: {2}] 颁发 | | \[S122] 警告: 服务器过载 \[upn: {0} 角色: {1}]\[每分钟请求数 {2}]。 | | \[S123] 未能为 \[upn: {0} 角色: {1}] 颁发证书 \[异常: {2}] | | \[S124] 未能为 \[upn: {0} 角色: {1}] 在 \[证书颁发机构: {2}] 颁发证书 \[异常: {3}] | ### 作为信赖方 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 当 VDA 登录用户时,这些事件在 FAS 服务器上运行时记录。 | 日志代码 | | --| | \[S201] 信赖方 \[{0}] 无权访问密码。 | | \[S202] 信赖方 \[{0}] 无权访问证书。 | | \[S203] 信赖方 \[{0}] 无权访问登录 CSP | | \[S204] 信赖方 \[{0}] 正在访问登录 CSP,用于 \[upn: {1}] 在角色: \[{2}] \[操作: {3}],由 \[{4}] 授权 | | \[S205] 信赖方访问被拒绝 - 调用帐户 \[{0}] 不是规则 \[{1}] 允许的信赖方 | | \[S206] 调用帐户 \[{0}] 不是信赖方 | | \[S208] 私钥操作失败 \[操作: {0} upn: {1} 角色: {2} 证书定义 {3} 错误 {4} {5}]。 | ### 会话内证书服务器 [联合身份验证服务] - [事件源: Citrix.Authentication.FederatedAuthenticationService] - 当用户使用会话内证书时,这些事件在 FAS 服务器上记录。 - | 日志代码 | | -- | | \[S301] 访问被拒绝: 用户 \[{0}] 无权访问虚拟智能卡 | | \[S302] 用户 \[{0}] 请求了未知的虚拟智能卡 \[指纹: {1}] | | \[S303] 访问被拒绝: 用户 \[{0}] 与虚拟智能卡 \[upn: {1}] 不匹配 | | \[S304] 用户 \[{0}] 正在计算机 \[{2}] 上运行程序 \[{1}],使用虚拟智能卡 \[upn: {3} 角色: {4} 指纹: {5}] 进行私钥操作 \[{6}] | | \[S305] 私钥操作失败 \[操作: {0}] \[upn: {1} 角色: {2} 容器名称 {3} 错误 {4} {5}]。 | ### FAS 断言插件 [联合身份验证服务] [事件源: Citrix.Authentication.FederatedAuthenticationService] 这些事件由 FAS 断言插件记录。 | 日志代码 | | -- | | \[S500] 未配置 FAS 断言插件 | | \[S501] 无法加载已配置的 FAS 断言插件 \[异常:{0}] | | \[S502] FAS 断言插件已加载 \[插件 ID={0}] \[程序集={1}] \[位置={2}] | | \[S503] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但插件 \[{2}] 不支持它) | | \[S504] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了登录凭据,但没有配置 FAS 插件) | | \[S505] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 拒绝了登录凭据,状态为 \[{3}],消息为 \[{4}]) | | \[S506] 插件 \[{0}] 接受了来自服务器 \[{1}] 的 UPN \[{2}] 的登录凭据,消息为 \[{3}] | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 在方法 \[{4}] 期间抛出异常 \[{3}]) | | \[S507] 服务器 \[{0}] 未能断言 UPN \[{1}] \(插件 \[{2}] 抛出异常 \[{3}]) | | \[S508] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但插件 \[{2}] 不支持它) | | \[S509] 服务器 \[{0}] 未能断言 UPN \[{1}] \(提供了访问处置,但没有配置 FAS 插件) | | \[S510] 服务器 \[{0}] 未能断言 UPN \[{1}] \(访问处置被插件 \[{2}] 视为无效) | ### 启用 Workspace 的 FAS [联合身份验证服务] [事件源: Citrix.Fas.Cloud] 当 FAS 与 Workspace 结合使用时,将记录这些事件。 | 日志代码 | | -- | | \[S001] 轮换了 Citrix Cloud 授权密钥 \[FAS ID: {0}] \[旧密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S002] 云支持模块正在启动。FasHub 云服务 URL: {0} | | \[S003] FAS 已向云注册 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S004] FAS 未能向云注册 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S005] FAS 已将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S006] FAS 未能将其当前配置发送到云 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}]| | \[S007] FAS 已从云注销 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S009] FAS 未能从云注销 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S010] FAS 服务已连接到云消息传递 URL: {0} | | \[S011] FAS 服务未连接到云 | | \[S012] FAS 服务可用于 Citrix Cloud 的单点登录 | | \[S013] FAS 服务不可用于 Citrix Cloud 的单点登录。\[{0}] 更多详细信息可在管理控制台中找到| 的调用失败 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S015] 来自 Citrix Cloud 的消息被阻止,因为调用方未获得许可 \[消息 ID {0}] \[事务 ID {1}] \[调用方 {2}]| 的调用成功 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S019] FAS 已从云下载其配置 \[FAS ID: {0}] \[事务 ID: {1}] | | \[S020] FAS 未能从云下载其配置 \[FAS ID: {0}] \[事务 ID: {1}] \[异常: {2}] | | \[S021] 云支持模块未能启动。异常: {0} | | \[S022] 云支持模块正在停止 | | \[S023] 无法轮换 Citrix Cloud 授权密钥 \[fas id: {0}] \[当前密钥 ID:{1}] \[新密钥 ID:{2}] \[云中的密钥:{3}] | | \[S024] 正在启动 Citrix Cloud 授权密钥轮换 \[fas id: {0}] \[当前密钥 ID:{1}] \[新密钥 ID:{2}] | | \[S025] 此服务的授权密钥存在于 Citrix Cloud 中 \[当前密钥: {0}] \[云中的密钥: {1}] | | \[S026] 此服务的授权密钥不存在于 Citrix Cloud 中 \[当前密钥: {0}] \[云中的密钥: {1}] | | \[S027] 已升级 Citrix Cloud 授权密钥存储格式 \[fas id: {0}] | ### 登录 [VDA] [事件源: Citrix.Authentication.IdentityAssertion] 这些事件在登录阶段记录在 VDA 上。 | 日志代码 | | -- | | \[S101] 身份断言登录失败。无法识别的联合身份验证服务 \[ID: {0}] | | \[S102] 身份断言登录失败。无法查找 {0} 的 SID \[异常: {1}{2}] | | \[S103] 身份断言登录失败。用户 {0} 的 SID 为 {1},预期 SID 为 {2} | | \[S104] 身份断言登录失败。无法连接到联合身份验证服务: {0} \[错误: {1} {2}] | | \[S105] 身份断言登录。正在登录 \[用户名: {0} 域: {1}] | | \[S106] 身份断言登录。 联合身份验证服务: {0} 正在登录 \[证书: {1}] | | \[S107] 身份断言登录失败。 \[异常: {0}{1}] | | \[S108] 身份断言子系统。ACCESS\_DENIED \[调用方: {0}] | ### 会话内证书 [VDA] [事件源: Citrix.Authentication.IdentityAssertion] 当用户尝试使用会话内证书时,这些事件会记录在 VDA 上。 | 日志代码 | | -- | | \[S201] 虚拟智能卡访问由 \[{0}] 授权,用于 \[PID: {1} 程序名称: {2} 证书指纹: {3}] | | \[S203] 虚拟智能卡子系统。访问被拒绝 \[调用方: {0},会话 {1}] | | \[S204] 虚拟智能卡子系统。智能卡支持已禁用 | ### 证书请求和密钥对生成 [联合身份验证服务] [事件源: Citrix.Fas.PkiCore] 当 FAS 服务器执行低级别加密操作时,会记录这些事件。 | 日志代码 | | -- | | \[S001] TrustArea::TrustArea: 已安装证书 \[信任区域: {0} 证书 {1} 信任区域加入参数 {2}] | | \[S014] Pkcs10Request::Create: 已创建 PKCS10 请求 \[可分辨名称 {0}] | | \[S016] PrivateKey::Create \[标识符 {0} 计算机范围: {1} 提供程序: {2} 提供程序类型: {3} 椭圆曲线: {4} 密钥长度: {5} 可导出: {6}] | | \[S017] PrivateKey::Delete \[CspName: {0},标识符 {1}] | | 日志代码 | | -- | | \[S104] MicrosoftCertificateAuthority::GetCredentials: 授权使用 {0} | | \[S105] MicrosoftCertificateAuthority::SubmitCertificateRequest 提交响应错误 \[{0}] | | \[S106] MicrosoftCertificateAuthority::SubmitCertificateRequest 已颁发证书 \[{0}] | | \[S112] MicrosoftCertificateAuthority::SubmitCertificateRequest - 等待批准 \[CR\_DISP\_UNDER\_SUBMISSION] \[参考: {0}] | ## 最终用户错误消息 本节列出了在 Windows 登录页面上向用户显示的常见错误消息。 | 显示的错误消息 | 描述和参考 | |--|--| | 无效的用户名或密码 | 计算机认为您拥有有效的证书和私钥,但 Kerberos 域控制器拒绝了连接。请参阅本文的“\*\*\*Kerberos 日志\*\*\*”部分。 | | 系统无法登录您。您的凭据无法验证。/ 不支持该请求 | 无法联系域控制器,或者域控制器未配置支持智能卡身份验证的证书。为域控制器注册“Kerberos 身份验证”、“域控制器身份验证”或“域控制器”证书。即使现有证书看起来有效,也值得尝试。 | | 系统可能无法登录您。用于身份验证的智能卡证书不受信任。 | 中间证书和根证书未安装在本地计算机上。请参阅\[证书和公钥基础结构]\(/zh-cn/federated-authentication-service/2402-ltsr/config-manage/troubleshoot-logon.html#certificates-and-public-key-infrastructure)。 | | 错误请求 | 这通常表示证书上的扩展设置不正确,或者 RSA 密钥太短 \(<2048 位)。 | ## 相关信息 - [为智能卡登录配置域](http://support.citrix.com/article/CTX206156) - [智能卡登录策略](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff404287(v=ws.10)) - [启用 CAPI 日志记录](http://social.technet.microsoft.com/wiki/contents/articles/242.troubleshooting-pki-problems-on-windows.aspx) - [启用 Kerberos 日志记录](https://support.microsoft.com/zh-cn/kb/262177) - [使用第三方证书颁发机构启用智能卡登录的指南](https://support.microsoft.com/zh-cn/kb/281245) 服务名称>服务名称>服务名称>服务名称>