如何使用javascript在浏览器中检索keberos票证



我们正在内部网的reactjs中构建一个javascript-client。内部网站使用自动窗口身份验证。我必须承认,我们不知道该系统如何工作的确切细节,只是用户直接存储在活动中,并且我们可以在 windows 命令提示符下使用klist命令检索 kerberos 票证列表。我们的应用程序应该嵌入在内部网站中,并且应该检索经过身份验证的用户的用户名。此用户名将被转发到我们构建的后端系统,并将用于查询活动目录以获取用户的详细信息。我们无法控制内部网站,也不知道它是如何构建的。

现在回答我的问题。是否可以在浏览器中仅使用 javascript 来检索经过身份验证的用户的 Kerberos 票证,然后我们可以使用它来提取他们的用户名?是否有其他可能性可以访问经过身份验证的用户的用户名?

客户端脚本无法请求安全令牌,否则这会让你陷入一个奇怪的安全兔子洞。

您真正需要做的是让服务器发送带有 401 错误代码的WWW-Authenticate: Negotiate响应标头。客户端将发送Authorization: Negotiate XYZ请求标头。然后,后端框架必须将其转换为可用的标识。

这只能在 Internet Explorer 中使用 ActiveX 控件来实现,该控件将提示用户是否要允许。您可以在此处查看代码:

var objUserInfo = new ActiveXObject("WScript.network");
document.write(objUserInfo.ComputerName+"<br>"); 
document.write(objUserInfo.UserDomain+"<br>"); 
document.write(objUserInfo.UserName+"<br>");  

没有其他浏览器会让你这样做。

服务器代码必须将用户名注入发送到浏览器的 JavaScript 中。

相关内容

  • 没有找到相关文章

最新更新