Windows域中的NTLM SSO如何工作



我使用nodesspi在打字稿中为单签名提供了概念证明。这起作用,我获得了我在公司广告域上登录的用户名 - 而无需输入任何帐户信息或凭据。但是我想知道这是如何详细的,因为它可以在IE和Chrome开箱即用。我发现了有关NTLM的MSDN文章,该文章说:

  1. 登录用户的用户名已发送到服务器
  2. 服务器生成的随机数挑战并将其发送给客户端
  3. 客户端通过用户密码哈希加密挑战,并将其发送回服务器
  4. 服务器向DC发送用户名,挑战和挑战 - 响应
  5. DC将PW与数据库进行比较,如果用户匹配
  6. ,则对用户进行身份验证

我特别想知道步骤1和2:这在哪里发生?如何用户名转移到服务器?它是HTTP请求的一部分吗?我从Chrome Developer Tools的请求中查看,看不到任何标题或其他信息,表明例如我的广告用户名已发送到服务器。

请注意:这些问题仅适用于 no 凭证由用户提供!由于用户进入他的凭据时,这很明显。

它是HTTP请求的一部分吗?

是。如RFC 4559中所述,您应该查看服务器响应中的www-authenticate:从客户端的授权标头进行协商。

如果开发人员工具不显示此信息,请返回网络捕获。

最新更新