【问题标题】:How does NTLM SSO in a Windows Domain works?Windows 域中的 NTLM SSO 如何工作?
【发布时间】:2018-02-08 17:30:57
【问题描述】:

我使用NodeSSPI 对 TypeScript 中的单点登录进行了概念验证。这很有效,我获得了我在公司 AD 域上登录​​的用户名 - 无需输入任何帐户信息或凭据。但我想详细了解这是如何实现的,因为它可以在 IE 和 Chrome 中开箱即用。我找到了这个MSDN article about NTLM,上面写着:

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

我特别想知道第 1 步和第 2 步:这是在哪里发生的?怎么样?转移到服务器的用户名?它是http请求的一部分吗?我查看了来自 chrome 开发人员工具的请求,但看不到任何标头或其他信息表明例如我的 AD 用户名发送到服务器。

请注意:这些问题仅适用于用户提供没有凭据的 SSO!因为当用户输入他的凭据时,这很清楚。

【问题讨论】:

标签: active-directory single-sign-on windows-authentication ntlm


【解决方案1】:

它是http请求的一部分吗?

是的。如RFC 4559 中所述,您应该会看到来自服务器响应的 WWW-Authenticate: Negotiate 标头,因此会看到来自客户端的 Authorization 标头。

如果开发人员工具未显示此内容,请返回网络捕获。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多