Kerberos作用
简单来说安全相关一般涉及以下方面:用户认证(Kerberos的作用)、用户授权、用户管理.。而Kerberos功能是用户认证,通俗来说解决了证明A是A 的问题。
认证过程(时序图)
核心角色/概念
- KDC:密钥分发巾心,负责管理发放票据,记录授权。
- Realm: Kerberos管理领域的标识。
- principal:Kerberos 下的用户可以称为 Principal,当每添加一个用户或服务的时候都需要向kdc添加一条principal, principal的形式为:主名称/实例名@领域名。
1)用户principal
用户principal的形式:
Name[/Instance]@REALM
其中Instance是可选 的,通常用于更好地限定用户的类型。比如,一个管理员用户通常会有admin instance,即Name/admin@REALM。
下面是指代用户的 一些principal的例子:
pippo@EXAMPLE.COM
admin/admin@EXAMPLE.COM
cnicetoupp/admin@EXAMPLE.COM
2)服务principal
用户principal的形式:
Service/Hostname@REALM
第一部分是service的名字,比如imap, AFS, ftp. 通常’host’这个名字被用于指明对一台机器的通用的访问(telnent, rsh, ssh)。
第二个component是提供这个服务的机器的全限定域名(FQDN)。这个component跟DNS对应用服务器的IP地址进行逆向解析后得到的主机名。
下面是指代服务principal的例子:
imap/hadoop-node1@EXAMPLE.COM
host/hadoop-node1@EXAMPLE.COM
afs/hadoop-node1@EXAMPLE.COM - 主名称:主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs、yam,、hive) 的主体。
- 实例名:实例名简单理解为主机名。
- keytab文件:存储了用户的加密密码。常用这种方式认证。
常用认证相关命令
- 登录控制台
kadmin.local
- 用户创建
kadmin.local -q "addprinc -pw 111111 testuser"
- 用户生成授权
kadmin.local -q "xst -k user.keytab user@BLUE.COM"
- 使用授权
kinit test.keytab testuser@xxx.com
- 查看当前认证信息
klist
- 销毁当前认证
kdestory
官方使用文档
详细的官方使用文档、命令可以参考官方链接:[https://web.mit.edu/kerberos/krb5-latest/doc/](https://web.mit.edu/kerberos/krb5-latest/doc/)
win客户端,访问Kerberos大数据组件页面