前言:面试经常会被问到Kerberos的认证流程这里就一步一步写认真水一篇文章吧。
1.Kerberos身份认证
先了解以下名词概念:
KDC(Key Distribution Center)= 密钥分发中心
AS(Authentication Server)= 认证服务器
TGS(Ticket Granting Server)= 票据授权服务器
TGT(Ticket Granting Ticket)= 票据授权票据,票据的票据
其中AS和TGS属于KDC。
1.1当Kerberos用户在某台域内机器输入账号密码的时候,也就是发起Kerberos认证请求之前,当前PC机会把输入密码生成一个加密秘钥。并保存在一个变量中。
1.2域内机器向KDC服务器的AS服务发起KRB_AS_REQ(Kerberos身份验证服务请求),这个请求的目的是为了向KDC服务器的TGS服务申请TGT。听起来有点拗口,其实就是客户端向认证服务器申请某项服务的权限。这个请求分为两个部分。
第一部分:用户标识+你要请求的TGS服务
第二部分:预认证数据(通过第一步由密码生成的加密秘钥加密当前时间戳)