参考资料:

Documentation - FreeIPA

Kerberos - FreeIPA

SSSD Architecture - sssd.io

Password management — MIT Kerberos Documentation

https://posts.specterops.io/attacking-freeipa-part-i-authentication-77e73d837d6a

freeIPA中kerberos跟LDAP是怎么交互的?

kerberos跟LDAP二者之间的连接是ldapi:///var/run/xxxxIEEVEE-COM.socket这种形式,具体代码可以参见

ipadb_realm_to_ldapi_uri和ipadb_get_connection。

LDAPI使用了IPC通信,通过slapd-xx.socket允许不同进程间通信,相关信息可以参考RedHat的介绍。LDAPI方式比普通LDAP更快,更安全。

Kerberos

Kerberos

The Kerberos KDC/Kadmin components are implemented using theMIT Kerberossoftware. It provides authentication services for the entire FreeIPA realm, it's users services and other components. Kerberos server is one of the base stones of a FreeIPA server.

How it works

When you runkinitcommand you invoke a client that connects to the Kerberos server, called KDC. As a result of the authentication the client receives a ticket. This ticket is a temporary pass or better say a pass-book. The best example from the real life will a be pass to a movie festival. A pass to such festival would allow someone to attend different movies at their discretion. Kerberos is very similar. When user tries to access some kind of resource protected by Kerberos the resource requires the user to present a valid ticket – same as with the movies.

To get such a ticket the user needs to prove that he is who he is. Asking user to authenticate with his password all the time might be too annoying and hard to manage. This is why there is a multi tier process. First user authenticates and gets so calledTGT(ticket granting ticket). This ticket can be presented to Kerberos server at any moment and a new ticket specific to the resource the user wants to access can be acquired. All the tickets have a configurable expiration time (runipa help krbtpolicyto get more information) so user needs to re-authenticate from time to time but it is much less of a burden.

When SSSD project is used, the ticket is get for a user automatically as he authenticates to client machine.

当使用SSSD项目时,用户向客户端计算机进行身份验证时,会自动为其获取票据。

Data

MIT Kerberos KDC server reads all the user and service identity information from aDirectory Server. FreeIPA implements an own ipa-kdb KDC data backend implementation reading and writing all the required information to LDAP tree. The provides both basic identity retrieval function, but also more advanced features, like verifying, signing and producing Kerberos ticket MS-PAC extension whenTrustsare in place.

Kerberos为整个FreeIPA领域、用户服务和其他组件提供身份验证服务。it is one of base stones of a FreeIPA server.

在FreeIPA server中,389服务负责存储Kerberos的数据。

SSSD负责在客户端自动获取、缓存服务信息。

SSSD

SSSD的主要目的是将远程数据库中的数据存储在本地缓存中,然后将这些数据提供给目标用户(应用程序)。使缓存保持最新和有效是一项困难的任务,要做到这一点,SSSD由多个组件(进程和库)组成,这些组件通过各种进程间通信技术相互通信。下面的图表让您对组件及其关系有一个基本的了解。下图对组件进行了更详细的描述。

BACKENDS 后端是写入本地缓存的唯一组件。


缓存查找

SSSD能够缓存许多对象类型,例如用户和组,但也可以缓存soutofs映射、sudo规则、SSH密钥等等。请求数据时执行缓存查找。查找是通过统一的cacheinterface执行的,因此,无论对象类型如何,所有查找都共享基本算法。下面的图表可以让您基本了解lookup是如何执行的。


Kerberos专用术语

身份验证服务器(AS)

一种服务器,它为所需的服务发出票证,然后将票证交给用户访问该服务。AS响应来自没有或没有随请求一起发送凭据的客户端的请求。它通常用于通过发出票证授予票证(TGT)来访问票证授予服务器(TGS)服务。AS通常与密钥分发中心(KDC)在同一主机上运行。

ciphertext 密文

加密数据。

client 客户

网络上可以从Kerberos接收票证的实体(用户、主机或应用程序)。

credentials 资格证书

一组临时的电子凭证,用于验证特定服务的客户端的身份。也叫罚单。

credential cache or ticket file 凭证缓存或票证文件

一种文件,其中包含加密用户与各种网络服务之间通信的密钥。Kerberos 5支持使用其他缓存类型(如共享内存)的框架,但更全面地支持文件。

crypt hash 加密哈希

用于验证用户身份的单向哈希。它们比使用未加密的数据更安全,但对于经验丰富的解密者来说,它们仍然相对容易解密。

GSS-API Generic Security Service Application Program Interface

通用安全服务应用程序接口(定义见互联网工程任务组发布的RFC-2743)是一组提供安全服务的功能。客户机和服务使用此API相互验证,而无需任何一个程序对底层机制有特定的了解。如果网络服务(如cyrus IMAP)使用GSS-API,则可以使用Kerberos进行身份验证。

hash

也称为哈希值。通过哈希函数传递字符串而生成的值。这些值通常用于确保传输的数据未被篡改。

hash function 散列函数

从输入数据生成数字“指纹”的一种方法。这些函数重新排列、转置或以其他方式更改数据以生成哈希值。

key 钥匙

加密或解密其他数据时使用的数据。加密的数据不能解密没有适当的密钥或一个非常好的运气的一部分解密。

key distribution center 密钥分发中心(KDC)

发出Kerberos票证的服务,通常与票证授予服务器(TGS)在同一主机上运行。

keytab (or key table)

包含未加密的主体及其密钥列表的文件。他们需要使用keykintab而不是使用keykintab从服务器检索文件。默认的keytab文件是 /etc/krb5.keytab。KDC管理服务器, /usr/kerberos/sbin/kadmind,是唯一使用任何其他文件的服务(它使用/var/kerberos/krb5kdc/kadm5.keytab ).

kinit

kinit命令允许已经登录的主体获取并缓存初始票证授予票证(TGT)。有关更多信息,请参阅kinit手册页。

principal (or principal name) 委托人(或委托人姓名)

主体是允许使用Kerberos进行身份验证的用户或服务的唯一名称。 遵循表格根[/instance]@领域。对于典型用户,根目录与其登录ID相同。实例是可选的。如果主体有一个实例,则用正斜杠(“/”)将其与根分隔开。空字符串(“”)被视为有效实例(这与默认的空实例不同),但使用它可能会令人困惑。一个领域中的所有主体都有自己的密钥,对于用户来说,密钥是从密码中派生出来的,或者是为服务随机设置的。

realm 领域

一种使用Kerberos的网络,由一个或多个称为KDCs的服务器和大量的客户机组成。

service 服务

通过网络访问的程序。

ticket 票

一组临时的电子凭证,用于验证特定服务的客户端的身份。也称为凭证。

ticket-granting server (TGS) 票证授予服务器(TGS)

一种服务器,它为所需的服务发出票证,然后将票证交给用户访问该服务。TGS通常与KDC运行在同一主机上。

ticket-granting ticket (TGT) 授权票(TGT)

一种特殊的票证,允许客户机在不从KDC申请的情况下获得额外的票证。

unencrypted password 未加密密码

一个纯文本,人类可读的密码。


freeipa 客户端 Kerberos认证 SSSD关系相关推荐

  1. hadoop java client_hadoop3 Java client客户端kerberos认证

    hadoop集群升级hadoop3,并需要Kerberos认证,hadoop3代码包做了合并,引用jar包如下: org.apache.hadoop hadoop-hdfs 3.1.1 org.apa ...

  2. python子进程进行kinit认证_使用kafka-python客户端进行kafka kerberos认证

    之前说过python confluent kafka客户端做kerberos认证的过程,如果使用kafka python客户端的话同样也可以进行kerberos的认证,具体的认证机制这里不再描述,主要 ...

  3. HDFS配置Kerberos认证

    为什么80%的码农都做不了架构师?>>>    本文主要记录 CDH Hadoop 集群上配置 HDFS 集成 Kerberos 的过程,包括 Kerberos 的安装和 Hadoo ...

  4. 配置两个Hadoop集群Kerberos认证跨域互信(两个集群互通)

    配置两个Hadoop集群Kerberos认证跨域互信 两个Hadoop集群开启Kerberos验证后,集群间不能够相互访问,需要实现Kerberos之间的互信,使用Hadoop集群A的客户端访问Had ...

  5. Kerberos认证协议

    序言:近几天学习了Kerberos认证协议,觉得有必要把学习过程和学习心得记录一下,文章内容有William Stallings编著的<网络安全基础>中的部分内容,也有自己的理解和思考.我 ...

  6. Kerberos认证原理与环境部署

    文章目录 一.概述 1)应用场景 2)功能特性 二.Kerberos中的核心概念 1)用户principal 2)服务principal 3)Ticket 三.Kerberos架构与工作原理 四.Ke ...

  7. CDH 的Kerberos认证配置

    2019独角兽企业重金招聘Python工程师标准>>> 最近因为项目需要,需要对用户权限做限制,最终选择了kerberos+sentry+hue模式来管理用户,但是这个kerbero ...

  8. openGauss数据库客户端接入认证详解

    目录 前言 认证方式 配置文件解析 示例 参数解释 如何配置 常见错误 前言 日常生活工作中,我们经常遇到需要接入认证的场景,如登录网站.服务器或连接wifi.vpn等等.当一个客户端应用连接一个数据 ...

  9. Kerberos安装以及使用ambari开启HDP集群Kerberos认证

    文章目录 环境准备 安装KDC MASTER 安装KDC SLAVER 安装客户端: 使用ambari 环境准备 安装jdk 下载Cryptography Extension (JCE) Unlimi ...

最新文章

  1. ROS系统 C++或Python实现话题消息的定义与使用
  2. 安装ORACLE 11.2.0.3 错误
  3. 什么是光纤以太网交换机?
  4. php 出错处理,PHP 错误处理机制
  5. css3实现的一些灰色的导航条按钮
  6. 平台建设的根节与基础保障——互联网平台建设系列...
  7. BOOM!多模态遇上推荐系统
  8. 记录——《C Primer Plus (第五版)》第七章编程练习第三题
  9. VASP_INCAR参数及其含义
  10. Linux命令brctl介绍
  11. 北航 软件学院课程 实用软件工具
  12. 京东在线客服话术汇总!
  13. 基于AC自动机的表白墙解析工具
  14. js实现手机摇一摇功能
  15. 微信付款为什么无法连接服务器,前台微信付款报错:无法连接服务器,请检查网络连接?...
  16. 【国产替代】推动安全芯片产业国产化,华秋电子与华翼微达成合作!
  17. GE可能会出售其工业软件业务的股份
  18. postgis+geoserver最短路径
  19. Blender入门级使用
  20. android,java判断密码强度

热门文章

  1. 不同测序数据应用与基因组组装|Canu
  2. Fiddler数据抓包试玩改包工具使用畅享
  3. 主板烧糊,大短路,不开机且烧糊成碳了还会导电
  4. PPT如何在投影不显示放映备注,在电脑上可以显示备注
  5. error超频 whea win10_win10蓝屏whea_uncorr修复
  6. 上传Excel文件进度条原理
  7. 文心一格x网易「EVE宇宙航母预研」主题AI绘画大赛即将开启!
  8. APDL电磁仿真学习中可能会遇到的问题1
  9. hive sql union all的性能优化
  10. 程序员如何求职找工作?这样分析就对了!