17.8. 非 FIPS 環境からの移行
以前に Red Hat build of Keycloak を非 FIPS 環境で使用していた場合は、そのデータを含めて FIPS 環境に移行できます。ただし、前のセクションで述べたように、次のような制限と考慮事項が存在します。
-
Red Hat build of Keycloak 25 以降では、パスワードハッシュのデフォルトのアルゴリズムは
argon2
です。ただし、このアルゴリズムは FIPS 140-2 ではサポートされていません。つまり、ユーザーがargon2
を使用してパスワードをハッシュした場合、FIPS 環境に切り替えた後はログインできなくなります。FIPS 環境に移行する予定がある場合は、最初から (ユーザーが作成される前に) レルムのパスワードポリシーを設定し、デフォルトのアルゴリズムを、たとえば FIPS 準拠のpbkdf2-sha512
にオーバーライドすることを検討してください。このストラテジーにより、FIPS 環境への移行がスムーズに行われます。これ以外の場合で、ユーザーがすでにargon2
パスワードを使用している場合は、FIPS 環境に移行した後にパスワードをリセットするようユーザーに依頼します。たとえば、ユーザーに "Forget password" を使用するように依頼したり、パスワードをリセットするためのメールをすべてのユーザーに送信したりします。 - キーストアに依存するすべての Red Hat build of Keycloak 機能が、サポートされているキーストアタイプのみを使用していることを確認してください。これは、strict モードと non-strict モードのどちらが使用されているかによりことなります。
-
Kerberos 認証が機能しない可能性があります。認証フローで
Kerberos
オーセンティケーターを使用している場合、FIPS 環境に以降すると、そのオーセンティケーターは自動的にDISABLED
に切り替わります。FIPS 環境に切り替える前に、レルムからKerberos
ユーザーストレージプロバイダーを削除し、LDAP プロバイダーのKerberos
関連機能を無効にすることが推奨されます。
FIPS strict モードに切り替える前に、前述の要件に加えて、次の点を必ず再確認してください。
- キー (レルムキーやクライアントキーなど) に依存するすべての Red Hat build of Keycloak 機能が、2048 ビット以上の RSA Red Hat build of Keycloak を使用していることを確認します。
-
Signed JWT with Client Secret
に依存するクライアントが、長さが 14 文字以上のシークレット (理想的には生成されたシークレット) を使用していることを確認します。 -
前述したパスワードの長さの制限。ユーザーのパスワードがこれよりも短い場合は、前述したように、最大パディング長が 14 に設定された PBKDF2 プロバイダーを使用してサーバーを起動します。この方法を避ける場合は、たとえば全ユーザーに、新しい環境での初回認証時に (
Forgot password
リンクを使用するなどして) パスワードをリセットするように依頼できます。