理解ldap - 使用SSSD接入OpenLDAP实现身份验证
Overview SSSD (System Security Services Daemon) 是一套用于远程身份验证的套件服务,为使用SSSD服务的客户端提供了远程访问身份认证服务来获取权限,其后端包括AD, LDAP等,本文将围绕下列方向来阐述SSSD: 为什么需要SSSD,以及使用SSSD来解决什么 使用SSSD的好处 SSSD服务工作原理及架构 如何在Linux上配置SSSD+LDAP 为什么需要SSSD SSSD设计主要是为了传统使用身份认证服务,例如PAM+NSS架构中存在的一些问题: PAM+NSS扩展性差,并配置较为复杂,尽管提供了 authconfig ,通常在大多数教程中以及不同的系统中配置都不相同 PAM+NSS不是真正意义上的离线身份认证,如果当 nslcd 或者 slapd 等服务异常时,无法完成用户认证 以及越来越多的后端,例如LDAP, AD, IPA, IdM,Kerberos等无法做到很好的适配 SSSD就是为了解决上述的问题,对于Linux平台中,SSSD拥有比传统PAM+NSS更好的优势: 符合现代Linux基础架构设计需求,可以适配更多的后端,并降低了操作配置的复杂性 增加了缓存功能,有效的减少了对于后端服务器的负载 因为有了缓存功能,实现了真正的离线认证功能,即使后端服务异常,例如LDAP服务down 了解SSSD架构 了解SSSD架构,其实就是了解前两章的内容,要做到真正的多后端,真脱机,那么服务就有多个组件组成: Monitor:所有SSSD的父进程,即用于管理 Providers 与 Responders Providers:用于感知验证后端的模块,后端就是提供目录树的一端 Responders:为Linux提供与后端交互的功能,这部分通常为 NSS PAM sudo等 图:SSSD架构图 Source:https://sssd.io/docs/architecture.html Providers Local:保存在本地缓存中的账户信息 LDAP, Kerberos, AD, IPA :用于 Linux/UNIX 网络环境中集成身份和身份验证解决方案。 IdM:一种使用本地 Linux 工具在 Linux 系统上创建身份存储、集中身份验证、Kerberos 和 DNS 服务的域控制以及授权策略的目录树后端 sudo,autofs 与LDAP集成的功能 Responders nss:名称解析服务,用于解析组与用户信息 pam:用于用户验证的模块 autofs:自动挂载模块,通常用于与LDAP集成,用于映射LDAP目录树 sudo:linux中用户权限控制,通常也是与LDAP集成 ssh: sssd_be:SSSD的后端进程:其中每一种后端都代表都作为一个sssd_be进程启动 monitor monitor是SSSD的进程,是用于管理(启动,停止,监控服务状态)Provider与Responders的功能...