大数据之Kerberos认证

这篇具有很好参考价值的文章主要介绍了大数据之Kerberos认证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基本概念

1、Kerberos 是什么?

Kerberos 是一个网络身份验证协议,用于在计算机网络中进行身份验证和授权。它提供了一种安全的方式,允许用户在不安全的网络上进行身份验证,并获取访问网络资源的权限。

2、Kerberos 的基本原理:

Kerberos 使用密钥分发中心(Key Distribution Center,KDC)来管理认证过程。KDC 包含两个组件:身份认证服务器(Authentication Server,AS)和票据授权服务器(Ticket Granting Server,TGS)。
用户首先向 AS 发送用户名和密码进行身份验证。如果验证成功,AS 会向用户颁发一个票据授权票(Ticket Granting Ticket,TGT)。
用户在访问特定服务时,使用 TGT 请求 TGS 颁发一个服务票据(Service Ticket)。
TGS 根据 TGT 验证用户身份,并颁发一个用于访问特定服务的服务票据。
用户使用服务票据向服务请求访问,并在访问过程中进行相应的身份验证。

3、Kerberos 认证的优势:

相比传统的明文密码认证方式,Kerberos 提供了更强的安全性。用户密码不会在网络中传输,而是在 Kerberos 协议中使用密钥进行加密和传输。
Kerberos 提供单点登录(Single Sign-On,SSO)功能,用户只需在登录时进行一次身份验证,然后可以在网络中访问多个服务而无需重新输入密码。
Kerberos 使用票据来进行授权,减少了对身份验证服务器的频繁访问,提高了性能和可扩展性。

4、Kerberos 实现的要素:

主体(Principal):表示一个被 Kerberos 认可的实体,可以是用户、服务或服务器。
密钥分发中心(Key Distribution Center,KDC):包含身份认证服务器(AS)和票据授权服务器(TGS),负责颁发票据和验证身份。
票据授权票(Ticket Granting Ticket,TGT):由 AS 颁发给用户,用于请求服务票据。
服务票据(Service Ticket):由 TGS 颁发给用户,用于访问特定服务。

5、Kerberos 在实际应用中的使用场景:

在企业网络中进行用户身份验证和单点登录。
在分布式系统中实现跨域用户身份验证和授权。
在云环境中确保用户和服务之间的安全通信。

6、Kerberos 认证流程:

用户向身份认证服务器(AS)发送用户名和密码进行身份验证请求。
AS 验证用户的身份,并生成一个会话密钥(Session Key)作为票据授权票(TGT)的一部分。
AS 将 TGT 加密并发送给用户。
用户收到 TGT 后,保存在本地,并在需要访问服务时使用。
用户向票据授权服务器(TGS)发送 TGT 请求服务票据。
TGS 验证用户的身份,生成一个服务票据并用 TGS 的密钥对其加密。
TGS 将服务票据发送给用户。
用户收到服务票据后,将其发送给目标服务。
目标服务使用自己的密钥解密服务票据并验证用户的身份。
如果验证成功,目标服务向用户提供所需的服务。

7、Kerberos 中的密钥:

Kerberos 使用密钥来保证身份验证和票据的安全性。
用户和身份认证服务器之间有一个共享的密码密钥(Password Key)。
用户和票据授权服务器之间有一个共享的票据授权服务密钥(TGS Session Key)。
用户和每个服务之间有一个共享的会话密钥(Session Key)。
这些密钥用于加密票据和提供安全通信。

8、Kerberos 的实现和支持:

Kerberos 是一个开放标准,有多种实现和支持。
MIT Kerberos:MIT(麻省理工学院)开发和维护的开源 Kerberos 实现,被广泛应用于各种操作系统和应用程序。
Microsoft Active Directory:微软的域控制器和身份认证解决方案使用 Kerberos 作为其身份验证协议。
其他厂商和开发者也提供了各种 Kerberos 实现和集成支持。

简化认证流程图:

kerberos认证,服务器,安全

 二、举例

1、如果用户想访问hadoop集群?

1、在 Kerberos 认证中,用户和 Hadoop 各个组件(如HDFS、YARN等)都需要在身份认证服务器(AS)中进行注册,以建立相应的主体(Principal)和密钥。

2、用户使用 kinit 命令输入账号和密码进行身份验证。
如果认证通过,AS 会颁发一个 TGT(Ticket Granting Ticket),它是一个加密的票据,代表用户的身份验证成功,并且可以用于请求服务票据。

3、当用户需要访问 Hadoop 集群中的某个组件时(如HDFS、YARN),用户向票据授权服务器(TGS)发送 TGT 请求服务票据。

4、TGS 验证用户的身份,并生成一个服务票据(Service Ticket),该票据是针对特定服务的,TGS 将服务票据发送给用户。

5、用户收到服务票据后,向目标服务(如HDFS、YARN)发送服务票据,表示对该服务的请求。

6、目标服务使用自己的密钥解密服务票据,并验证用户的身份和授权。如果验证通过,目标服务向用户提供所需的服务,如访问 HDFS 文件或执行 YARN 作业。

kerberos认证,服务器,安全

总体来说,Kerberos 提供了一种安全的方式,确保用户可以在集群中进行身份验证,并且通过票据授权访问特定的服务。如果用户通过身份验证并且拥有有效的票据,就可以与集群进行安全通信和访问。

三、Kerberos 认证的主要方式

1、使用 kinit 命令进行认证:

kinit 是 Kerberos 提供的命令行工具,用于向身份认证服务器(AS)发送认证请求,并获取 TGT(Ticket Granting Ticket)票据。
当你使用 kinit 命令时,会被提示输入用户名和密码。这些凭据将被发送给 AS 进行身份验证。
如果认证成功,kinit 会将 TGT 票据保存在你的本地凭据缓存中(通常是一个加密的票据文件),以便后续的服务票据请求和访问。

2、保存票据进行认证:

一旦你通过 kinit 命令获取了 TGT 票据,你可以选择将票据保存在本地,并在需要访问服务时使用它。保存票据可以通过不同的方式,比如将 TGT 票据文件存储在特定的位置,如默认的票据缓存文件夹。当你需要访问服务时,你可以使用保存的票据进行认证,而无需重新进行用户名和密码的身份验证。

需要注意的是,保存票据的方式仍然依赖于 kinit 命令的执行来获取初始的 TGT 票据。一旦你拥有有效的 TGT 票据,你可以在一定时间内多次使用它进行访问,而无需重复进行身份验证。

总之,使用 kinit 命令进行认证是获取 TGT 票据的初始步骤,而保存票据则是在一段时间内持久化这个票据,并在需要访问服务时使用它进行认证。这两种方式共同构成了 Kerberos 认证的流程。

四、保存票据进行认证的时效性

1、通过 Kerberos 认证,你只需要在一定时间内输入一次密码进行身份验证,获取到有效的 TGT(Ticket Granting Ticket)票据。这个 TGT 票据可以用于在一段时间内多次访问不同的服务而无需重复输入密码。

2、一旦获得了 TGT 票据,你可以使用它向票据授权服务器(TGS)请求服务票据。服务票据是特定服务的授权凭证,它由 TGS 使用服务的密钥对其进行加密生成,并只能由该服务解密和验证。

3、当你需要访问特定服务时,你只需将相应的服务票据提供给服务即可,无需再次输入密码。服务会使用自己的密钥解密服务票据,验证你的身份和授权,然后提供相应的服务。

4、这种方式在一定程度上简化了认证过程,减少了密码输入的次数,提高了安全性。通过票据进行访问不仅方便,还提供了加密和授权机制,确保了通信的安全性和合法性。

也就是说在这个过程中,双方的登录主要是为了确保 TGT 票据的时效性,以便在一段时间内进行多次访问而无需重复登录。而具体的访问则是通过服务票据的加密和解密来实现安全通信和授权访问。文章来源地址https://www.toymoban.com/news/detail-624010.html

到了这里,关于大数据之Kerberos认证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 企业级大数据安全架构(十)DBeaver连接Hive的Kerberos认证配置

    1.配置本地hosts 因为Kerberos认证过程及集群服务中,很多是以主机名的形式进行访问的,所以工作机要设置hosts. 域名映射,我们通过部署CDH的集群的每一台机器都已经配置了host(文件为/etc/hosts),工作机也需要配置window的host文件,如果提示无法修改,一般是需要管理员权限的原

    2024年02月21日
    浏览(35)
  • 【网络安全】图解 Kerberos:身份认证

    Kerberos 是一种身份认证协议,被广泛运用在大数据生态中,甚至可以说是大数据身份认证的事实标准。本文将详细说明 Kerberos 原理。 Kerberos 一词来源于古希腊神话中的 Cerberus —— 守护地狱之门的三头犬。下图是 Kerberos 的 LOGO。 一句话来说,Kerberos 是一种基于加密 Ticket 的身

    2024年02月06日
    浏览(41)
  • 大数据之Kerberos认证与kafka开启Kerberos配置

    数据安全 = 认证 + 授权 授权是指用户可以访问的资源,比如:授权用户张三不能访问ods层的表,可以访问dwd层和dws层的表。 再比如java中基于角色的身份认证RBAC(Role-Based Access Control)基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予。比如大数据中使

    2024年02月02日
    浏览(30)
  • 大数据之Kerberos认证

    1、Kerberos 是什么? Kerberos 是一个网络身份验证协议,用于在计算机网络中进行身份验证和授权。它提供了一种安全的方式,允许用户在不安全的网络上进行身份验证,并获取访问网络资源的权限。 2、Kerberos 的基本原理: Kerberos 使用密钥分发中心(Key Distribution Center,KDC)来

    2024年02月14日
    浏览(32)
  • Kafka配置Kerberos安全认证及与Java程序集成

    本文主要介绍在 Kafka 中如何配置 Kerberos 认证,以及 java 使用 JAAS 来进行 Kerberos 认证连接。 本文演示为单机版。 查看 Kerberos 版本命令: klist -V 软件名称 版本 jdk 1.8.0_202 kafka 2.12-2.2.1 kerberos 1.15.1 Kerberos 是一种由 MIT(麻省理工大学)提出的网络身份验证协议,它旨在通过使用密

    2024年01月22日
    浏览(50)
  • Kafka-配置Kerberos安全认证(JDK8、JDK11)

    一、相关配置 1、JAAS 配置文件 2、keytab 文件(kafka.service.keytab) 从 Kerberos 服务器上拷贝到目标机器 或 找运维人员要一份 3、Kerberos 配置文件(krb5.conf) krb5文件参数说明:krb5.conf(5) 从 Kerberos 服务器上拷贝到目标机器 或 找运维人员要一份 Tip: JDK11版本 sun.security.krb5.Config 类

    2024年02月15日
    浏览(44)
  • CDH数仓项目(三) —— Kerberos安全认证和Sentry权限管理

    本文基于《CDH数仓项目(一) —— CDH安装部署搭建详细流程》和《CDH数仓项目(二) —— 用户行为数仓和业务数仓搭建》和搭建CDH数仓。本章节主要介绍基于CDH数仓的Kerberos认证和Sentry权限管理 Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进

    2023年04月22日
    浏览(41)
  • 【大数据安全-Kerberos】Kerberos常见问题及解决方案

    可以用来帮助诊断 Kerberos 相关问题的原因并实施解决方案的指南。 javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)] 此消息表明一个操作尝试要求以 Kerberos 的 user/host@realm 身份认证的操作,但票据 cac

    2024年02月05日
    浏览(46)
  • Flink支持kerberos认证

    在配置flink任务时,不能通过对单个任务进行kerberos验证,只能在flink-conf文件中进行认证,这样遇到的麻烦就是,每次启动不同任务的时候,都需要进行依赖不同的conf文件 通过在flink github项目中查看,发现有pr提交了代码,可以在flink任务启动之初进行,conf文件加载 通过修改

    2024年02月16日
    浏览(27)
  • Kerberos认证原理与使用教程

    ​ Kerberos 是一种计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。 这个词又指麻省理工学院为这个协议开发的一套计算机软件。 软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包