17.8. 从非 FIPS 环境迁移
如果您之前在非fips 环境中使用了 Red Hat build of Keycloak,则可以将其迁移到 FIPS 环境中,包括其数据。但是,在上一节中所述,存在限制和注意事项,即:
-
从红帽构建的 Keycloak 25 开始,密码散列的默认算法是
argon2
。但是,FIPS 140-2 不支持这个算法。这意味着,如果您的用户使用argon2
对密码进行哈希处理,该用户将无法在切换到 FIPS 环境后登录。如果您计划迁移到 FIPS 环境,请考虑从头(创建任何用户之前)设置域的密码策略,并覆盖 example 为pbkdf2-sha512
(符合 FIPS)的默认算法。此策略有助于把系统迁移到 FIPS 环境变得平稳。否则,如果您的用户已在argon2
密码上,只需要求用户在迁移到 FIPS 环境后重置密码。例如,要求用户使用"Forget 密码"或向所有用户发送电子邮件。 - 确保所有红帽构建的 Keycloak 功能依赖于密钥存储,它只使用受支持的密钥存储类型。这与是否使用严格的模式或非限制模式而有所不同。
-
Kerberos 身份验证可能无法正常工作。如果您的身份验证流使用
Kerberos
验证器,则当迁移到 FIPS 环境时,这个验证器会自动切换到DISABLED
。建议您从您的域中删除任何Kerberos
用户存储供应商,并在切换到 FIPS 环境前禁用 LDAP 供应商中的Kerberos
相关功能。
除了前面的要求外,请务必在切换到 FIPS 严格模式前再次检查它:
- 确保所有红帽构建的 Keycloak 功能依赖于密钥(如 realm 或客户端密钥)至少使用 2048 位的 RSA 密钥
-
确保依赖使用客户端
Secret 签名 JWT
的客户端至少使用 14 个字符长 secret (最好生成 secret) -
如前所述,密码长度限制。如果您的用户有较短的密码,请确保启动将 max padding length 设置为 14 of PBKDF2 供应商的服务器。如果您希望避免这个选项,您可以要求所有用户在新环境中进行第一个身份验证期间重置其密码(
例如,Forgot 密码
链接)。