【RedHat Linux】集中式身份管理服务 authconfig
<集中式身份管理服务>
面对多计算机的身份管理以及账户信息同步, 其解决方案并不是把信息存放在本地, 而是存放在一台提供验证服务的服务器上.
凭借SSO, 用户输入密码进行一次性身份验证即可获得用于向其他服务进行身份验证的一种票据或cookie.
集中式身份管理系统需要提供的服务;
1. 账户信息, 包括用户名 目录位置 UID GID 组成员身份等信息,解决方案有:
LDAP 轻量级目录访问协议
NIS 网络信息服务
2. 身份验证信息, 系统验证身份的方法 解决方法为:
kerberos 仅提供SSO身份验证服务, 可用于IPA服务器和Active Directory
LDAP 配合kerberos使用
<什么是LDAP?>
LDAP是一种支持TCP/IP的数据库, 但与一般表型数据库不同的是, LDAP是树形结构的.
它也有服务端与客户端, 服务端用于存储数据, 客户端用于存储数据的增删改查.
LDAP的据结构:(dn: cn , ou, dc), 可选的(o 组织, c 国家)略之
dn distinguished name区分名,就是完成的条目地址, 它是在一个目录中总是唯一的
dc domain component 是数据的存放位置(相当于SQL的表), 常用写法: dc=example, dc=com, 代表域example.com
ou organization unit 组织名, 代表数据的分组, 最多4级, 每级最长32个字符
cn common name, 代表数据的id, 一般为用户名或服务器名
那么, 回答本章, LDAP负责的就是存放用户的认证信息的数据库了.
LDAP这种数据库的特点是读效率特高, 写效率低.
LDAP的认证原理,简单讲解两种:
a).每一个登陆,连接请求先去拉取所有的可通过用户的列表,然后去查找是否在已注册用户列表。(不推荐)
b).每一个登陆,连接请求去发送本地的用户、密码给LDAP服务器,然后在LDAP服务器上进行匹配,然后判断是否可以通过认证。(推荐)
<什么是kerberos?>
Kerberos简单来说就是一个用于安全认证第三方协议,它采用了传统的共享密钥的方式,实现了在网络环境不一定保证安全的环境下,client和server之间的 通信,适用于client/server模型,由MIT开发和实现。
应用原理
在实际的应有场景中通常有三个角色,即:
1. 需要访问服务的Client
2. 提供服务的Application Server
3. 提供安全认证的第三方Kerberos服务器KDC(Key Distribution Center)。
<authconfig>
一种打包了验证功能的服务, 集成了LDAP, kerberos的功能, 通过简单的几步就能实现 LDAP, kerberos,的数据库及服务器管理配置工作.
1. 安装: yum install sssd authconfig-gtk krb5-workstation (authconfig-gtk ssh没有图形界面可使用 authconfig-tui代替, 改服务在authconfig中)
2. 配置: authconfig-atk 或 authconfig-tui
3. 用户信息(user account database)选择LDAP
4. 认证方式(authentication method)选择kerberos
3. 配置解析:
TLS: 一种加密协议,同ssh
LDAP server: LDAP的数据库服务器
LDAP search base DN: 基础搜索域如: dc=example,dc=com
Realm: kerberos域
KDCs: KDC服务器地址
Admin Servers: 管理服务器地址, 一般同上
CA Certificate: 证书下载 可输入地址
3.1 直接使用authconfig的配置方法: 正式生效则把--test 改成--update 即可
authconfig \
--enableldap \
--enableldaptls \
--ldapserver='class.example.com' \
--ldapbasedn='dc=example,dc=com' \
--ldaploadcacert='http://classroom.example.com/pub/example-ca.crt' \
--enablekrb5 \
--krb5realm='EXAMPLE.COM'\
--krb5kdc='classroom.example.com' \
--krb5adminserver='classroom.example.com' \
--disablekrb5kdcdns \
--disablekrb5realmdns \
--test
请注意!!! 本地认证方式(--enablelocauthorize)在测试时请开启,不然本地登录不了系统!!