我正在尝试为我的网页实现活动目录登录。该网页托管在Node.js服务器上,该服务器可以通过LDAP与AD服务器通信(因此它现在不在同一台物理机器上)。
为了触发登录请求,我向加载页面时触发的GET请求发送401
和WWW-Authorize: Neogiate
响应。这会导致Chrome打开一个用户名/密码对话框。但是,当我输入一些信息并单击Submit时,我没有看到任何用户名/密码数据。我看到的是authorization: 'Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAGNFAAAADw=='
解码后是NTLMSSP cE
我不知道如何处理这个令牌,也不知道如何继续。
您遇到这个错误,因为服务器正在指导您实现和受保护的GSSAPI协商机制。这是Microsoft的一项发明,用于协商用于Web SSO(单点登录)的身份验证类型:
-
要么NTLM
Kerberos 或
您需要将此令牌存储到localStorage或cookie中。
例如,当您从服务器获得令牌时,您可以将其保存在localStorage上,如下所示:
localStorage.setItem('token', token);
然后当你调用API时,你必须将这个令牌发送给服务器。