第8章 認証の設定
この章では、複数の認証トピックを説明します。以下のトピックを以下に示します。
- 厳密なパスワードおよびワンタイムパスワード (OTP) ポリシーを強制します。
- 異なる認証情報タイプの管理
- Kerberos でログインします。
- ビルトイン認証情報タイプを無効にして有効化します。
8.1. パスワードポリシー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak は、レルム作成時にパスワードポリシーをレルムに関連付けません。長さ、セキュリティー、または複雑性に制限のない簡単なパスワードを設定できます。実稼働環境では、シンプルなパスワードは受け入れられません。Red Hat build of Keycloak には、管理コンソールから利用できるパスワードポリシーのセットが含まれています。
手順
- メニューで Authentication をクリックします。
- Policies タブをクリックします。
- Add policy ドロップダウンボックスで、追加するポリシーを選択します。
- 選択したポリシーに適用する値を入力します。
Save をクリックします。
パスワードポリシー
ポリシーを保存すると、Red Hat build of Keycloak が新規ユーザーにそのポリシーを適用します。
新しいポリシーは既存のユーザーには無効になります。したがって、レルム作成の最初からパスワードポリシーを設定するか、既存のユーザーに "パスワードの更新" を追加するか、"パスワードの有効期限" を使用してユーザーが次の "N" 日以内にパスワードを更新するようにしてください。これにより、実際には新しいパスワードポリシーに合わせて調整します。
8.1.1. パスワードポリシータイプ リンクのコピーリンクがクリップボードにコピーされました!
8.1.1.1. HashAlgorithm リンクのコピーリンクがクリップボードにコピーされました!
パスワードは平文で保存されません。Red Hat build of Keycloak は、保存または検証の前に、標準のハッシュアルゴリズムを使用してパスワードをハッシュ化します。
サポートされているパスワードハッシュアルゴリズムを次の表に示します。
| ハッシュアルゴリズム | 説明 |
|---|---|
|
| Argon2 (FIPS 以外のデプロイメントのデフォルト) |
|
| SHA512 を使用した PBKDF2 (FIPS デプロイメントのデフォルト) |
|
| SHA256 を使用した PBKDF2 |
|
| PBKDF2 と SHA1 (非推奨) |
PBKDF2 に比べて CPU 要件が大幅に少なく、それと同時により安全であるため、可能な場合は Argon2 を使用することを強く推奨します。
サーバーのデフォルトのパスワードハッシュアルゴリズムは、--spi-password-hashing-provider-default=<algorithm> で設定できます。
メモリーと CPU の過剰な使用を防ぐため、デフォルトでは、Argon2 によるハッシュの並列計算において、JVM で利用可能なコア数が上限となっています。Argon2 ハッシュプロバイダーを設定するには、プロバイダーオプションを使用します。
独自のハッシュアルゴリズムを追加する方法は、サーバー開発者ガイド を参照してください。
ハッシュアルゴリズムを変更した場合、ストレージ内のパスワードハッシュは、ユーザーがログインするまで変更されません。
8.1.1.2. ハッシュの反復 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak が、保存または検証前にパスワードをハッシュ化する回数を指定します。デフォルト値は -1 で、次の表に示すように、選択したハッシュアルゴリズムのデフォルトのハッシュイテレーションを使用します。
| ハッシュアルゴリズム | デフォルトのハッシュイテレーション |
|---|---|
|
| 5 |
|
| 210,000 |
|
| 600,000 |
|
| 1,300,000 |
ほとんどの場合、ハッシュイテレーションは推奨されるデフォルト値から変更しないでください。イテレーションの値が小さいとセキュリティーが不十分になり、値が大きいと CPU パワー要件が高くなります。
8.1.1.3. 数字 リンクのコピーリンクがクリップボードにコピーされました!
パスワード文字列に必要な数字の数。
8.1.1.4. 小文字 リンクのコピーリンクがクリップボードにコピーされました!
パスワード文字列に必要な小文字の数。
8.1.1.5. 大文字 リンクのコピーリンクがクリップボードにコピーされました!
パスワード文字列に必要な大文字の数。
8.1.1.6. 特殊文字 リンクのコピーリンクがクリップボードにコピーされました!
パスワード文字列で必要な特殊文字の数。
8.1.1.7. ユーザー名なし リンクのコピーリンクがクリップボードにコピーされました!
パスワードはユーザー名と同じにすることはできません。
8.1.1.8. メールなし リンクのコピーリンクがクリップボードにコピーされました!
パスワードは、ユーザーのメールアドレスと同じにすることはできません。
8.1.1.9. 正規表現 リンクのコピーリンクがクリップボードにコピーされました!
パスワードは、定義された 1 つ以上の Java 正規表現パターンと一致する必要があります。正規表現の構文は、Java 正規表現のドキュメント を参照してください。
8.1.1.10. パスワードが失効する リンクのコピーリンクがクリップボードにコピーされました!
パスワードが有効な日数。有効期限が切れた日数が経過したら、パスワードを変更する必要があります。
8.1.1.11. 最近使用されていない リンクのコピーリンクがクリップボードにコピーされました!
ユーザーがパスワードを使用できない。Red Hat build of Keycloak は、使用されたパスワードの履歴を保存します。保存される古いパスワードの数は、Red Hat build of Keycloak で設定できます。
8.1.1.12. 最近使用されていない (日数) リンクのコピーリンクがクリップボードにコピーされました!
設定された期間 (日数) 内はパスワードを再利用できません。この期間内に新しいパスワードが最後に設定された場合、ユーザーは別のパスワードを入力するよう強制されます。
8.1.1.13. パスワードのブラックリスト リンクのコピーリンクがクリップボードにコピーされました!
パスワードをブラックリストファイルに含めることはできません。
- ブラックリストファイルは、Unix 行で終わる UTF-8 プレーンテキストファイルです。すべての行は、ブラックリストに指定されたパスワードを表します。
- Red Hat build of Keycloak は、大文字と小文字を区別せずにパスワードを比較します。
-
ブラックリストファイルの値は、ブラックリストファイルの名前 (たとえば、
100k_passwords.txt) である必要があります。 ブラックリストファイルは、デフォルトでは
${kc.home.dir}/data/password-blacklists/に対して解決されます。以下を使用して、このパスをカスタマイズします。-
keycloak.password.blacklists.pathシステムプロパティー。 -
passwordBlacklistポリシー SPI 設定のblacklistsPathプロパティー。CLI を使用してブラックリストフォルダーを設定するには、--spi-password-policy-password-blacklist-blacklists-path=/path/to/blacklistsFolderを使用します。
-
誤検知に関する注意事項
現在の実装では、特定のパスワードがブラックリストに含まれているかどうかなど、誤検知の可能性がある封じ込めチェックを高速かつメモリー効率よく行うために BloomFilter を使用しています。
-
デフォルトでは、
0.01%の誤検知確率が使用されます。 -
CLI 設定によって誤検知確率を変更するには、
--spi-password-policy-password-blacklist-false-positive-probability=0.00001を使用します。
8.1.1.14. 認証の最大有効期間 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーが再認証なしでパスワードを更新できるユーザー認証の最大有効期間を秒単位で指定します。値が 0 の場合、ユーザーはパスワードを更新する前に常に現在のパスワードで再認証する必要があることを示します。このポリシーに関する詳細は、AIA セクション を参照してください。
認証の最大有効期間は、管理コンソールの Required Actions タブで必要なアクション Update Password を設定するときにも設定できます。認証の最大有効期間 パスワードポリシーは、今後非推奨化または削除される可能性があるため、設定に必要なアクションを使用することを推奨します。