使用 Microsoft Digest 对后续请求进行身份验证

注意

从 Windows 11 22H2 开始,Microsoft 将弃用 Microsoft Digest,也称为 wDigest。 我们将继续在受支持的 Windows 版本上支持 Microsoft Digest。 未来版本的 Windows 将包含 Microsoft Digest 的有限功能,最终 Windows 将不再支持 Microsoft Digest。

服务器使用摘要质询的不透明指令向客户端发送对其共享 安全上下文 的引用。 身份验证成功后,客户端必须在对目标服务器的后续请求中指定此值。 在对使用现有安全上下文可访问的资源的请求中包含不透明值,无需在域控制器上重新进行身份验证。 此类请求使用初始身份验证后缓存的摘要 会话密钥 在服务器上重新进行身份验证。

下图演示了客户端和服务器在后续请求访问保护的资源期间所执行的步骤。

使用 Microsoft 摘要对后续请求进行身份验证

若要在身份验证成功后请求其他资源,客户端会调用 Microsoft Digest MakeSignature 函数来生成摘要质询响应。 不透明值包含在发送到服务器的质询响应的不透明指令中,作为授权标头 (显示为 HTTP 请求) 。

服务器调用 AcceptSecurityContext (Digest) 函数来确定客户端是否存在现有的 安全上下文 。 找到现有上下文时,函数将返回SEC_E_COMPLETE_NEEDED,以指示服务器随后必须调用 CompleteAuthToken 函数。 此函数使用初始身份验证期间缓存的摘要 会话密钥 执行客户端 身份验证 ,而不是在域控制器上重新进行身份验证。