7.2. 身份管理中的一次性密码(OTP)身份验证


一次性密码可为您的身份验证安全性增加一步。身份验证使用您的密码,并自动生成一次性密码。

要生成一次性密码,您可以使用硬件或软件令牌。IdM 同时支持软件和硬件令牌。

身份管理支持以下标准的 OTP 机制:

  • 基于 HMAC 的一次性密码(HOTP)算法是基于计数器的。HMAC 代表哈希消息身份验证代码。
  • 基于时间的一次性密码(TOTP)算法是 HOTP 的扩展,来支持基于时间的移动因子。
重要

IdM 不支持活动目录信任用户的 OTP 登录。

警告

以下安全性和其它限制目前与 IdM 中的 OTP 支持相关:

  • 最重要的安全限制是潜在的漏洞,可以在系统中重播攻击。复制是异步的,因此可在复制期间重复使用 OTP 代码。用户可以同时登录两台服务器。但是,由于全面的加密,此漏洞通常很难利用。
  • 无法使用不支持 OTP 身份验证的客户端获取票据授予票(TGT)。这可能会影响某些用例,如使用 mod_auth_kerb 模块或通用安全服务 API (GSSAPI)的身份验证。

7.2.1. 可用的 OTP 身份验证方法

在启用 OTP 身份验证时,您可以从以下验证方法中选择:

双因素身份验证(密码 + OTP)
使用此方法时,始终用户需要输入标准密码和 OTP 代码。
密码
使用此方法时,用户仍可以选择使用标准密码进行身份验证。
RADIUS 代理服务器身份验证
有关在 IdM 中为 OTP 验证配置 RADIUS 服务器的详情,请参考 在 IdM 中为 OTP 验证配置 RADIUS 服务器
全局和特定于用户的身份验证方法

您可以在全局范围内或个人用户配置这些身份验证方法:

  • 默认情况下,特定于用户的身份验证方法设置优先于全局设置。如果没有为用户设置验证方法,则应用全局定义的方法。
  • 您可以为任何用户禁用按用户的身份验证方法设置。这样可确保 IdM 忽略了每个用户的设置,并始终为用户应用全局设置。
合并多个验证方法

如果您配置了多种身份验证方法,则其中任何一种都足以成功验证用户。例如:

  • 如果您同时配置双因素和密码身份验证,用户必须提供密码(第一个因素),但在使用命令行时提供 OTP (秒因数)是可选的:

    First Factor:
    Second Factor (optional):
    Copy to Clipboard Toggle word wrap
  • 在 Web UI 中,用户必须仍然提供这两个因素。

但是,当配置了 RADIUS 和另一个验证方法时,会存在小的异常:

  • Kerberos 始终使用 RADIUS,但不使用 LDAP。LDAP 只能识别密码和双因素身份验证方法。
  • 如果您使用外部双因素身份验证供应商,请从应用程序中使用 Kerberos。如果您只想让用户使用密码进行身份验证,请使用 LDAP。建议应用程序使用 Apache 模块和 SSSD,这允许配置 Kerberos 或 LDAP。

7.2.2. GNOME Keyring 服务支持

IdM 将 OTP 身份验证与 GNOME Keyring 服务集成。请注意,GNOME Keyring 集成要求用户分别输入第一个和第二个因素:

First factor: static_password
Second factor: one-time_password
Copy to Clipboard Toggle word wrap

7.2.3. 使用 OTP 进行离线身份验证

IdM 支持离线 OTP 身份验证。但是,要能够离线登录,用户必须首先通过单独输入静态密码和 OTP 来在系统在线时进行身份验证:

First factor: static_password
Second factor: one-time_password
Copy to Clipboard Toggle word wrap

如果用户在在线登录时单独输入这两个密码,则即使中央身份验证服务器不可用,用户也可以进行身份验证。请注意,当用户验证离线时,IdM 只提示输入第一个因素的传统静态密码。

IdM 还支持在 First factor 提示符下将静态密码和 OTP 输入在一个字符串中。但是,此方法与离线 OTP 身份验证不兼容。如果用户在单个提示中输入这两个因素,IdM 必须联系中央身份验证服务器以验证凭据,这需要系统在线。

重要

如果您在还离线运行的设备中使用 OTP 身份验证,如笔记本电脑,红帽建议单独输入静态密码和 OTP,以确保离线身份验证可用。否则,IdM 不允许在系统离线后登录。

如果您想从 OTP 离线身份验证中受益,除了单独输入静态和 OTP 密码外,还要确保满足以下条件:

  • /etc/sssd/sssd.conf 文件中的 cache_credentials 选项被设置为 True,这会启用缓存第一个因素密码。
  • 第一个因素静态密码满足在 /etc/sssd/sssd.conf 中设置的 cache_credentials_minimal_first_factor_length 选项中定义的密码长度要求。默认最小长度为 8 个字符。有关选项的详情,请查看 sssd.conf (5) 手册页。
注意

即使 /etc/sssd/sssd.conf 文件中的 krb5_store_password_if_offline 选项被设置为 true,当系统返回到在线状态时,SSSD 不会尝试刷新 Kerberos 票据授予票(TGT)。这是因为,在此时,一次性密码(OTP)可能已经无效。要获得新的 TGT,用户必须使用这两个因素重新进行身份验证。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat