一 Kerberos的三个角色
Kerberos主要是有三个重要的角色:
访问服务的Client
提供服务的Server
KDC(Key Distribution Center)密钥分发中心,其中报错AS(authorization server)和TGS(ticket granting server)
上图 AD其实类似于一个本机的一个数据库,存储所有client的白名单。
二 Kerberos的认证流程
根据上图我们梳理胰腺癌Kerberos的具体认证流程:
首先client表明需求并使用密码对请求进行加密,去访问KDC中AS,AS用提供的密码对请求进行解密后得到请求内容,返回给client一个TGT(ticket granting tickets)(加密的)
client得到TGT后使用TGT去访问TGS,TGS验证TGT后(使用密钥解密)返回Ticket给client
client得到ticket后去访问server,server收到ticket和KDC进行验证,验证通过后提供服务。
需要注意:Kerberos每次认证都有一个认证允许访问时间,也就是client认证通过后,下次访问如果在还在允许访问时间内,那样就不用再次认证了。
我们简单的举个生活中例子来理解:
比如现在疫情期间去公园玩,需要提前一天预约,你在网上预约后,会给你一个预约信息,第二天拿着预约信息去售票处买票,售票处会给你一张公园门票,你拿着门票去公园入口刷门票才能进入公园。
在去公园玩的流程中
网上预约返回给你一个预约信息这个过程就相当于client(你)去访问AS(网上预约中心),AS返回给client一个TGT(预约信息)
你拿着预约信息去售票处买票,售票处给你一张票这个过程就相当于client(你)使用TGT(预约信息)去访问TGS(售票处),TGS返回client一个Ticket(公园门票)
你拿着门票去刷票入园就相当于client(你)用ticket(公园门票)去server(公园入口),server收到ticket和KDC(检票机)进行验证,通过才能访问
门票的时间是一天,相当于Kerberos的允许访问时间,你进公园再出来,当天在进公园就不需要再去预约,买票了,只需要去刷票进去就行。
三 Kerberos的搭建
客户方都是搭建好的,有需求再更新
四 Kerberos的使用
需要知道两个重要文件,krb5.conf里边是Kerberos的配置信息,***.keytab文件可以理解问ticket钥匙(公园门票)
Kerberos的账户样式:用户名/instance@域名 (域名大写)
客户端进行kerberos认证的方法(一些在客户现场可能用到的简单操作):
#(例如kerberos用户为:test/admin@KYLIN.COM)#客户端使用kerberos先执行下边命令获取ticketkinit test/admin@KYLIN.COM然后需要输入用户密码#输入密码后执行klist命令查看ticket信息#为账户创建.keytab文件 #首先需要先进入Kerberos的admin后台,执行 kadmin #创建用户test/admin@KYLIN.COM的免密登陆keytab文件 ktadd -k {keytab文件路径}/test.keytab #又keytab文件后可以指定keytab文件进行免密认证 kinit -kt {路径}/test.keytab test/admin@KYLIN.COM #再执行klist查看时候认证成功,成功后返回ticket信息
来源地址:https://blog.csdn.net/qq_45329047/article/details/129731585