Windows Edge/Chrome/Firefox 可以进行 Kerberos 协商(而不是 NTLM)吗?

问题描述 投票:0回答:1

我能够在 Mac + Windows 上成功

kinit + klist
验证票据。我什至将我的 Kerberos 配置转移到“KerberosForWindows”。

Windows 上似乎没有任何浏览器可以执行 Kerberos 风格的 Negotiate,而不是 Windows 风格的 NTLM。是这样吗?

我已经尝试了所有本地站点/内联网/受信任域/浏览器配置传播域进行协商身份验证。我只是想确认 Windows 浏览器是否可以进行 GSSAPI 风格的 Negotiate。

// Kerberos authentication middleware
async function kerberosAuth(req, res, next) {
  // Check for the Authorization header and extract the token
  const authHeader = req.headers['authorization'];
  if (!authHeader || !authHeader.startsWith('Negotiate ')) {
      res.setHeader('WWW-Authenticate', 'Negotiate');
      return res.status(401).send('Kerberos authentication required');
  }
  const token = authHeader.slice('Negotiate '.length);

  // Base64 decode the token
  const decodedToken = Buffer.from(token, 'base64');

  // Check if it's NTLM
  if (decodedToken.toString('hex').startsWith('4e544c4d')) {
    // always hit on Windows
    return res.status(500).send('NTLM is not supported. Please use Kerberos authentication.');
  } else {
    // only ever hit on Mac/Linux
  }
google-chrome microsoft-edge kerberos ntlm
1个回答
0
投票

所有流行的浏览器都通过 HTTP 支持 Kerberos/SPNEGO

Negotiate
,但 MIT“Kerberos for Windows”软件包仅受 Mozilla/Firefox 支持 – 其他浏览器(IE 和 Chrome/Edge)仅支持 Windows 内置 SSPI 接口(这也是 Firefox 中的默认设置)。

© www.soinside.com 2019 - 2024. All rights reserved.