因此,我们将 ADFS 代理与 ADFS (Install-WebApplicationProxy) 连接,都是 Windows Server 2019。必须重新建立信任,但等待很长时间,正在重试身份验证
AD FS 事件日志
ADFS 端的事件 276 具有奇怪的值:
联合服务器代理无法向联合身份验证服务进行身份验证。用户操作 确保代理受到联合身份验证服务的信任。为此,请使用证书使用者名称中标识的主机名登录到代理计算机,并使用 Install-WebApplicationProxy cmdlet 在代理和联合身份验证服务之间重新建立信任。
附加数据
证书详情:
主题名称: 指纹:
不在时间之前:
不在时间之后:
代理每约 20 秒重试一次身份验证,就会发生很多此类事件。然而,Install-WebApplicationProxy 之后生成的第一个事件是 395:
使用帐户“example\administrator”成功建立联合服务器代理和联合身份验证服务之间的信任。
代理信任证书主题:CN=ADFS ProxyTrust - ADFSproxy。代理信任证书指纹:3F5DBD1C735A57C5FEA8C18905EE83CEAE3EA732 显然我的凭据是正确的,证书可以传递到 ADFS。我使用 certlm.msc 验证了它 - 证书位于 AdfsTrustedDevices 下
S频道日志
我在 ADFS 和 ADFS 代理上看到以下事件:
事件 36867:
创建 TLS 客户端凭据。
但是,对于 ADFS 代理,也存在警告,事件 ID 36857:
远程服务器已请求 TLS 客户端身份验证,但找不到合适的客户端证书。将尝试匿名连接。此 TLS 连接请求可能会成功或失败,具体取决于服务器的策略设置。
AD FS 跟踪
打开调试日志。
广告文件系统:
多个事件 107 错误:
ProxyRequestHandler.DefaultExceptionHandler:无法验证 ProxyTrust 的主题名称为“”和指纹“”的证书。
异常详细信息: 异常:未找到与请求关联的客户端证书。StackTrace:在 Microsoft.IdentityServer.Web.Proxy.TlsRequestVerificationMethod.VerifyTrustedRequest(WrappedHttpListenerContext 上下文,String&auditInformation) 在 Microsoft.IdentityServer.Web.Rest.RestRequestHandler.OnGetContext(WrappedHttpListenerContext 上下文)
检索代理配置时出错。Microsoft.IdentityServer.WebHost.Proxy.ProxyTrustException:找不到与请求关联的客户端证书。在 Microsoft.IdentityServer.Web.Proxy.TlsRequestVerificationMethod.VerifyTrustedRequest(WrappedHttpListenerContext 上下文,字符串&auditInformation) 在 Microsoft.IdentityServer.Web.Rest.RestRequestHandler.OnGetContext(WrappedHttpListenerContext 上下文)
TlsRequestVerificationMethod:传入请求不包含证书。
ADFS 代理。
事件 54:
Found certificate matching thumbprint '3F5DBD1C735A57C5FEA8C18905EE83CEAE3EA732'
事件 52 错误:
配置请求失败,状态:ProtocolError 消息:远程服务器返回错误:(401) 未经授权。异常:System.Net.WebException:远程服务器返回错误:(401)未经授权。在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.IdentityServer.Management.Proxy.StsConfigurationProvider.GetStsProxyConfiguration(X509Certificate2 trustCert)
随机尝试的事情
- 禁用 TLS1.3(不是 2019 年的事情)https://jaapwesselius.com/2022/01/19/adfs-web-application-proxy-configuration-wizard-fails-with-trust-certificate-error/
- 启用 TLS 1.0、1.1(之前仅配置了 1.2)
- 缺少用于启用强加密的 .NET 注册表项。添加。+ 设置默认 TLS 1.2
- 使用注册表将 winHTTP 默认协议设置为 TLS1.2
- 在两台服务器上均获得最新的 CU 2024-03
- 检查 adfsproxy 上生成的证书是否具有 adfssrv、appproxyctrl 和 appproxysvc 服务帐户的私钥读取权限。
总而言之,似乎证书已传递到 ADFS,但客户端身份验证失败。
我不太了解 ADFS 代理/Web 应用程序代理的内部结构 - 希望有人可以指导我如何进一步解决此问题。现在我们必须忍受一些停机时间:(
PS 如果有人建议重新建立信任 - 我正在尝试这样做。这些事件是作为该过程的一部分生成的。它失败并显示:尝试从联合服务器检索配置数据时发生错误。无法检索亲...
PPS 是否有某种配置阻止 AdfsTrustedDevices 中的证书用于客户端身份验证?PSADFS ProxyTrust - ADFSproxy
证书没有任何增强的密钥用法 - 但我检查了其他正在运行的代理服务器,它也没有。它如何信任这个自签名证书?ADFS 是否隐式信任 AdfsTrustedDevices 中的自签名证书?