第 21 章 使用 Ansible 在 IdM 中配置系统帐户以更改用户密码,而无需重置
使用 Ansible 配置身份管理(IdM)系统帐户,以便外部凭据管理系统可以在不在第一次登录时强制重置的情况下设置用户密码。在与外部服务集成时,您要保留 IdM 密码策略强制。
默认情况下,当 IdM 管理员重置 IdM 用户的密码时,密码在第一次成功登录后过期。但是,当将 IdM 部署与外部凭证管理系统集成时,您可能需要确保此外部系统设置的密码在第一次使用时不会过期,因为这可能对最终用户不方便。同时,绕过 IdM 密码策略会带来安全风险,因此保持密码强度和历史记录检查在 IdM 端非常重要。
为了支持这种情况,从 RHEL 10.2 开始 ansible-freeipa 中提供了一个 系统帐户 接口。例如,sysaccount 模块允许您将管理高度特权 IdM 帐户的安全委托给具有管理特权的那些具有管理特权的 IdM 帐户,从而满足您的合规性要求。
21.1. 身份管理中的系统帐户 复制链接链接已复制到粘贴板!
了解系统帐户如何启用自动化和第三方集成,同时使人类管理员凭证安全,并且您的审计日志保持干净。
系统帐户(也称为服务帐户)是应用程序、服务或自动化工具用来与身份管理(IdM)目录交互的非人身份。它们的主要目的是,为软件提供安全、可跟踪且可管理的方式来执行任务,而不必使用人工管理员的凭据。
系统帐户的主要目的包括:
- 编程 LDAP 访问(绑定帐户)
- 许多应用程序(如传统 wiki 或人工资源门户)必须连接到 IdM,以验证用户是否存在或检索其组成员资格。该应用使用系统帐户来执行 LDAP 绑定。这可让应用程序搜索目录,而无需人人首先登录。要提高安全性,请将应用程序限制为对目录的特定部分的只读访问。
- 密码同步(与 Active Directory 集成)
-
系统帐户在同步工作流中充当网桥。当通过 WinSync 与 Active Directory (AD)集成时,Windows-side 服务使用系统帐户,例如
cn=ad_sync,cn=sysaccounts,cn=etc,以向 IdM 和推送密码更新进行身份验证。此集成使外部服务绕过标准用户密码策略,例如在第一次登录时更改密码的要求。 - 自动化和 DevOps (CI/CD)
- 作为代码(IaC)工具(如 Ansible)的现代基础架构通常必须修改 IdM 环境。例如,这些工具可以自动向域添加新虚拟机或创建 DNS 记录。您可以创建一个有限权限的系统帐户,而不是硬编码管理员的密码到脚本中。如果脚本被破坏,攻击者只获得分配给该特定系统帐户的有限权限,而不是完整的域管理员权限。
| 功能 | 标准用户帐户 | 系统帐户(sysaccount) |
|---|---|---|
| 位置 |
|
|
| 交互式登录 | 是(SSH、Web UI、桌面) | 否(仅限 LDAP 绑定) |
| 密码到期 | 根据全局策略 | 通常设置为永不过期 |
| Kerberos 支持 | 完全支持 | None |
| 默认对象类 |
|
|