Red Hat 6/7 SSSD场景下身份提供商与认证提供商的区别
RHEL 6/7 SSSD 场景下身份提供商与认证提供商的差异
你提到的谷歌、Facebook这类面向互联网第三方登录的服务属于公共领域的身份提供商,在红帽RHEL 6/7的系统安全服务守护进程(SSSD)场景中,身份提供商(IdP)和认证提供商是逻辑完全独立的两个角色,具体差异如下:
核心定位差异
- 身份提供商(Identity Provider)
核心职责是存储和管理身份实体的全量元数据,包括但不限于用户名、UID/GID、用户组归属、sudo权限、shell配置、家目录路径、账户有效期等所有和身份属性相关的信息。
RHEL 6/7环境中SSSD常用的对接IdP包括FreeIPA、Active Directory(AD)、开源LDAP目录服务。SSSD会将IdP中的身份属性缓存到本地,保障离线场景下也能正常完成身份识别。 - 认证提供商(Authentication Provider)
核心职责仅为验证身份的合法性,仅校验用户登录时提交的凭证(密码、SSH密钥、OTP令牌、数字证书等)是否和该身份预绑定的凭证一致,不存储也不返回任何额外身份属性。
RHEL 6/7环境中SSSD常用的对接认证提供商包括Kerberos、OTP认证服务、本地证书认证服务。
SSSD工作流中的协作逻辑
用户登录RHEL主机时,二者的协作流程如下:
- SSSD首先将用户提交的登录凭证发送给
auth_provider指定的认证提供商,完成凭证有效性校验 - 校验通过后,SSSD向
id_provider指定的身份提供商拉取该用户的所有身份属性,完成本地登录环境的初始化 - 你可以在SSSD配置文件
/etc/sssd/sssd.conf中分别配置两个角色的对接参数,二者完全解耦,可以独立对接不同的后端服务
常见误区说明
你之前接触的公共互联网IdP(谷歌、Facebook等)通常同时承担了认证提供商的职能:用户跳转登录时,谷歌既要校验你的登录凭证,也要返回你的邮箱、昵称等身份属性给第三方网站,因此会让人误以为二者是同一个服务。但在SSSD的模块化设计中,二者是完全独立的,比如你完全可以配置SSSD对接LDAP作为IdP存储身份属性,同时对接Kerberos作为认证提供商校验密码。
内容的提问来源于stack exchange,提问作者Boney Jacob
相关产品推荐
相关产品推荐

