公司网络上的内部网站如何自动验证用户身份?

时间:2020-08-06 14:10:50

标签: authentication active-directory single-sign-on kerberos saml

在公司环境中,当用户登录其笔记本电脑时,可以自动为内部网站进行身份验证。

这是如何实现的?网站和浏览器如何知道用户身份并对其进行身份验证?

2 个答案:

答案 0 :(得分:4)

有很多方法,但是规范方法是通过像Kerberos这样的协议进行的。过程如下:

  1. 使用某种凭据登录到您的计算机,这些凭据将授予您所谓的票证授予票证(TGT)。
  2. 您打开浏览器并访问内部网站https://internal/page.html
  3. 网站以错误代码HTTP 401和标题WWW-Authenticate: Negotiate进行响应。
  4. 浏览器检测到这一点,并调用操作系统的GSS / SSPI服务,并说“请使用http/internal软件包给我一张negotiate的票”。
  5. GSS / SSPI服务看到您有一个TGT,并呼叫KDC(活动目录),并索要前往http/internal的票。
  6. KDC说“确定”,并将机票退还给客户。
  7. GSS / SSPI服务将票证转换为所谓的AP-REQ,将其包装在SPNEGO消息中,然后将其返回给浏览器。
  8. 浏览器将其编码为base64,将其粘贴在Authorization: Negotiate {base64}标头中,然后将请求重试到站点。
  9. 该站点收到标头,检测到它是“协商”的,因此它将其传递给它自己的GSS / SSPI服务。
  10. 这些服务对消息进行解码,提取AP-REQ,对其进行解密,并验证其是否可以理解。
  11. 从票证中提取身份,并提供给Web应用程序内部。

最终用户所做的全部是(1)和(2)。客户端计算机完成了其余的工作。

然后,诸如SAML等的更高级别的协议可以依靠上面的流程来对您的IdP进行身份验证,然后IdP可以将令牌发送给您可能拥有的任何依赖方。

答案 1 :(得分:-1)

有几种提到的方法。一种是通过Windows集成身份验证和任何单点登录方法,例如OKTA,Microsoft ADFS。

从用户的角度来看,这是一个很好的体验,因为我们不需要记住那么多的凭据