検索

1.5. 新機能および機能拡張

download PDF

次のリリースノートは、Red Hat build of Keycloak の最初の 24.0 リリースである 24.0.3 を対象とします。

1.5.1. ユーザープロファイルとプログレッシブプロファイリング

ユーザープロファイルのプレビュー機能が完全にサポートされるようになり、ユーザープロファイルがデフォルトで有効になりました。

この機能の主な特徴をいくつか紹介します。

  • ユーザーと管理者が管理できる属性をきめ細かく制御し、予期しない属性や値が設定されるのを防ぐことができます。
  • 通常のユーザーまたは管理者に対してフォームに表示される管理対象のユーザー属性を指定できます。
  • 動的フォーム - 以前は、ユーザーがプロファイルを作成または更新するフォームに、ユーザー名、メールアドレス、名、姓などの 4 つの基本属性が含まれていました。属性を追加する (または一部のデフォルト属性を削除する) には、カスタムテーマを作成する必要がありました。現在は、特定のデプロイメントの要件に基づいて、要求される属性が正確にユーザーに表示されるため、カスタムテーマは必要なくなる可能性があります。
  • 検証 - ユーザー属性の検証を指定する機能。組み込みのバリデーターを使用して、最大長や最小長、特定の正規表現を指定したり、特定の属性を URL または数値に制限したりできます。
  • アノテーション - 特定の属性を、たとえばテキスト領域、指定オプションを含む HTML の select、カレンダー、またはその他のオプションとしてレンダリングするよう指定する機能。また、JavaScript コードを特定のフィールドにバインドして、属性のレンダリング方法を変更し、その動作をカスタマイズすることもできます。
  • プログレッシブプロファイリング - scope パラメーターの特定の値に対してのみ、フォーム上の一部のフィールドを必須または使用可能フィールドとして指定する機能。これにより、プログレッシブプロファイリングが効果的に可能になります。登録時にユーザーに 20 個の属性を尋ねる必要がなくなります。代わりに、ユーザーが使用する個々のクライアントアプリケーションの要件に応じて、段階的に属性を入力するようにユーザーに求めることができます。
  • 以前のバージョンからの移行 - ユーザープロファイルが常に有効になりました。ただし、この機能を使用していないユーザーの場合は、以前と同じように動作します。ユーザープロファイルの機能を利用することもできますが、必ずしも使用する必要はありません。移行手順については、アップグレードガイド を参照してください。

ユーザープロファイルは、サポート対象の機能として初めてリリースされました。これは出発点であり、アイデンティティー管理に関する機能をさらに提供するためのベースラインです。

ユーザープロファイル機能の詳細は、サーバー管理ガイド を参照してください。

1.5.1.1. User Profile SPI の重大な変更

このリリースでは、User Profile SPI への変更により、この SPI に基づく既存の実装に影響が及ぶ可能性があります。詳細は、アップグレードガイド を参照してください。

1.5.1.2. ユーザープロファイルとレルムに基づいてページをレンダリングする Freemarker テンプレートの変更

このリリースでは、次のテンプレートが更新され、レルムに設定されたユーザープロファイル設定に基づいて属性を動的にレンダリングできるようになりました。

  • login-update-profile.ftl
  • register.ftl
  • update-email.ftl

詳細は、アップグレードガイド を参照してください。

1.5.1.3. ブローカー経由で初めてログインしたときのプロファイル更新ページ用の新しい Freemarker テンプレート

このリリースでは、ユーザーが idp-review-user-profile.ftl テンプレートを使用して初めてブローカー経由で認証するときに、サーバーが更新プロファイルページをレンダリングします。

詳細は、アップグレードガイド を参照してください。

1.5.2. マルチサイトのアクティブ/パッシブデプロイメント

環境によっては、障害からの迅速な回復と高可用性を実現するために、複数の独立したサイトに Red Hat build of Keycloak をデプロイすることが不可欠です。このリリースでは、Red Hat build of Keycloak のアクティブ/パッシブデプロイメントがサポートされています。

使用を開始するには、高可用性ガイド を使用してください。このガイドには、高可用性 Red Hat build of Keycloak をクラウド環境にデプロイするための包括的なブループリントも含まれています。

1.5.3. アカウントコンソールバージョン 3

アカウントコンソールバージョン 3 には、ユーザープロファイル機能のサポートが組み込まれています。管理者はアカウントコンソールでユーザーが使用できる属性を設定し、ログイン後にユーザーを個人アカウントページに直接移動させることができます。

このテーマのカスタマイズ機能を使用または拡張する場合は、追加の移行を実行する必要がある場合があります。詳細は、アップグレードガイド を参照してください。

アカウントコンソールバージョン 2 は非推奨になりました。後続のリリースで削除される予定です。

1.5.4. Welcome ページの再設計

Red Hat build of Keycloak を初めて使用したときに表示される Welcome ページが再設計されました。新しいページは、より優れたセットアップエクスペリエンスを提供し、最新バージョンの PatternFly に準拠しています。ページのレイアウトが簡略化され、最初の管理ユーザーを登録するためのフォームのみが表示されます。登録が完了すると、ユーザーは管理コンソールに直接移動します。

カスタムテーマを使用している場合は、新しい Welcome ページをサポートするためにテーマを更新する必要がある場合があります。詳細は、アップグレードガイド を参照してください。

1.5.5. リバースプロキシー設定の強化

新しい --proxy-headers オプションを使用して、Forwarded ヘッダーまたは X-Forwarded-* ヘッダーのいずれかの解析を個別に有効にできるようになりました。詳細は、リバースプロキシーの使用 を参照してください。元の --proxy オプションは現在非推奨となっており、今後のリリースで削除される予定です。移行手順については、アップグレードガイド を参照してください。

1.5.7. 認証

1.5.7.1. パスキーのサポート

Red Hat build of Keycloak は、パスキー のプレビューサポートを提供します。

パスキーの登録と認証は WebAuthn の機能によって実現されます。したがって、Red Hat build of Keycloak のユーザーは、既存の WebAuthn の登録と認証を使用して、パスキーの登録と認証を行うことができます。

同期されたパスキーとデバイスにバインドされたパスキーは、Same-Device Authentication と Cross-Device Authentication の両方に使用できます。ただし、パスキー操作の成功は、ユーザーの環境によって異なります。どの操作が 環境 で正常に実行されるかを確認してください。

1.5.7.2. WebAuthn の改善

WebAuthn ポリシーに、新しいフィールド Extra Origins が追加されました。これにより、非 Web プラットフォーム (ネイティブモバイルアプリケーションなど) との相互運用性が向上します。

1.5.7.3. You are already logged-in

このリリースでは、ユーザーが複数のブラウザータブでログインページを開いていて、1 つのブラウザータブでユーザーが認証するときに発生する問題に対処しています。ユーザーが別のブラウザータブで認証を試みると、You are already logged-in というメッセージが表示されていました。最初のタブで認証された後、他のブラウザータブでユーザーが自動的に認証されるようになったため、この問題は改善されました。しかし、さらなる改善が必要です。たとえば、あるブラウザータブで認証セッションが有効期限切れになった後に再開されても、他のブラウザータブではログインが自動的に行われません。

1.5.7.4. 最大認証時間を指定するためのパスワードポリシー

Red Hat build of Keycloak は、再認証なしでユーザーがパスワードを変更できる最大認証有効期間を指定できる新しいパスワードポリシーをサポートするようになりました。このパスワードポリシーが 0 に設定されている場合、ユーザーはアカウントコンソールまたはその他の手段でパスワードを変更するために再認証する必要があります。デフォルト値の 5 分よりも低い値または高い値を指定することもできます。

1.5.8. サーバー分散

1.5.8.1. 負荷制限のサポート

Red Hat build of Keycloak に、高負荷時に受信要求を適切に拒否できるようにする http-max-queued-requests オプションが追加されました。詳細は、サーバーガイド を参照してください。

1.5.8.2. RESTEasy Reactive

Red Hat build of Keycloak は RESTEasy Reactive に切り替わりました。quarkus-resteasy-reactive を使用するアプリケーションで、リアクティブスタイル/セマンティクスを使用していない場合でも、起動時間、実行時パフォーマンス、メモリーフットプリントの改善による利点が得られるはずです。JAX-RS API に直接依存する SPI は、通常、この変更に対して互換性があります。ResteasyClientBuilder など、RESTEasy Classic に依存する SPI は、互換性がないため、更新が必要になります。この更新は、Jersey のような JAX-RS API の他の実装にも必要になります。

1.5.9. Keycloak CR

1.5.9.1. Keycloak CR の Optimized フィールド

Keycloak CR に startOptimized フィールドが追加されました。これを使用すると、start コマンドに --optimized フラグを使用するかどうかに関するデフォルトの想定をオーバーライドできます。そのため、カスタム Keycloak イメージを使用する場合でも、CR を使用してビルド時のオプションを設定できます。

1.5.9.2. Keycloak CR の resources オプション

Keycloak CR で、Keycloak コンテナーのコンピュートリソースを管理するための resources オプションを指定できるようになりました。これにより、Keycloak CR を使用して Red Hat build of Keycloak に対して、および Realm Import CR を使用してレルムインポートジョブに対して、個別にリソースを要求および制限できます。

値が指定されていない場合、デフォルトの requests メモリーが 1700MiB に設定され、limits メモリーが 2GiB に設定されます。

次のように、要件に応じてカスタム値を指定できます。

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  ...
  resources:
    requests:
      cpu: 1200m
      memory: 896Mi
    limits:
      cpu: 6
      memory: 3Gi

詳細は、Operator ガイド を参照してください。

1.5.9.3. Keycloak CR の cache-config-file オプション

Keycloak CR で、cache 仕様の configMapFile フィールドを使用して cache-config-file オプションを指定できるようになりました。次に例を示します。

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  ...
  cache:
    configMapFile:
      name: my-configmap
      key: config.xml

1.5.10. 機能のバージョン管理

機能のバージョン管理がサポートされるようになりました。下位互換性を維持するために、既存のすべての機能 (account2 および account3 を含む) がバージョン 1 としてマークされています。新しく導入された機能ではバージョン管理が使用されるため、ユーザーは必要な機能のさまざまな実装を選択できます。

詳細は、サーバーガイド を参照してください。

1.5.10.1. Keycloak CR のトラストストア

Keycloak CR を使用して、トラストストアの新しいサーバー側処理を利用することもできます。次に例を示します。

spec:
  truststores:
    mystore:
      secret:
        name: mystore-secret
    myotherstore:
      secret:
        name: myotherstore-secret

現在はシークレットのみがサポートされています。

1.5.10.2. Kubernetes CA の信頼

Kubernetes CA の証明書は、Operator によって管理される Red Hat build of Keycloak Pod に自動的に追加されます。

1.5.11. グループのスケーラビリティー

多数のグループとサブグループを使用するユースケースで、グループの検索に関するパフォーマンスが向上します。ページ分割されたサブグループ検索を可能にする強化が行われました。

1.5.12. Keycloak JS

1.5.12.1. package.jsonexports フィールドの使用

Red Hat build of Keycloak JS アダプターが、package.json 内の exports フィールド を使用するようになりました。この変更により、Webpack 5 や Vite などの最新のバンドラーのサポートが改善されますが、避けられない重大な変更がいくつか発生します。詳細は、アップグレードガイド を参照してください。

1.5.12.2. PKCE がデフォルトで有効

Red Hat build of Keycloak JS アダプターが、pkceMethod オプションをデフォルトで S256 に設定するようになりました。この変更により、アダプターを使用するすべてのアプリケーションで Proof Key Code Exchange (PKCE) が有効になります。PKCE をサポートしていないシステムでアダプターを使用する場合は、pkceMethod オプションを false に設定すると、PKCE を無効にできます。

1.5.13. パスワードハッシュ化の変更

このリリースでは、パスワードハッシュ化のデフォルトを、パスワード保存に関する OWASP の推奨事項 に合わせて調整しました。

この変更の一環として、デフォルトのパスワードハッシュ化プロバイダーが pbkdf2-sha256 から pbkdf2-sha512 に変更されました。また、pbkdf2 ベースのパスワードハッシュ化アルゴリズムのデフォルトハッシュ反復回数が変更されました。この変更により、最新の推奨事項に沿ったセキュリティー向上が実現しますが、パフォーマンスへの影響が生じます。パスワードポリシー hashAlgorithmhashIterations をレルムに追加することで、古い動作を維持できます。詳細は、アップグレードガイド を参照してください。

1.5.14. トラストストアの改善

Red Hat build of Keycloak に、改善されたトラストストアの設定オプションが導入されました。Red Hat build of Keycloak のトラストストアが、送信接続、mTLS、データベースドライバーを含むサーバー全体で使用されるようになりました。個々の領域ごとに個別のトラストストアを設定する必要がなくなりました。トラストストアを設定するには、トラストストアファイルまたは証明書をデフォルトの conf/truststores に配置するか、新しい truststore-paths 設定オプションを使用します。

詳細は、サーバーガイド を参照してください。

1.5.15. その他の変更点

1.5.15.1. SAML アイデンティティープロバイダーの自動証明書管理

IDP エンティティーメタデータ記述子エンドポイントから署名証明書を自動的にダウンロードするように SAML アイデンティティープロバイダーを設定できるようになりました。新しい機能を使用するには、プロバイダーの Metadata descriptor URL オプション (証明書を含む IDP メタデータ情報が公開される URL) を設定し、Use metadata descriptor URLON に設定します。証明書はその URL から自動的にダウンロードされ、public-key-storage SPI にキャッシュされます。管理コンソールから、プロバイダーページのアクションコンボを使用して、証明書を再読み込みまたはインポートすることもできます。

新しいオプションの詳細は、サーバー管理ガイド を参照してください。

1.5.15.2. ロードバランサーの非ブロッキングヘルスチェック

/lb-check で利用可能な新しいヘルスチェックエンドポイントが追加されました。イベントループ内で実行が動作するため、このチェックは、リクエストキューで待機している多数の要求を Red Hat build of Keycloak が処理する必要がある過負荷の状況でも応答します。この動作は、たとえば、マルチサイトデプロイメントで、負荷の高い別のサイトへのフェイルオーバーを回避する場合に役立ちます。このエンドポイントは、現在、組み込みおよび外部 Infinispan キャッシュの可用性をチェックします。今後、他のチェックが追加される可能性があります。

このエンドポイントはデフォルトでは利用できません。有効にするには、multi-site 機能を使用して Keyloak を実行します。詳細は、機能の有効化と無効化 を参照してください。

1.5.15.3. Admin API コンテキストと Account コンテキストの両方におけるユーザー表現の変更

このリリースでは、Admin Account と Account REST API を使用するときにルートユーザー属性 (usernameemailfirstNamelastNamelocale など) をマーシャリングおよびアンマーシャリングする方法を一致させるために、これらの属性を基底/抽象クラスに移動してカプセル化しています。

この方法により、クライアントによる属性の管理方法の一貫性が確保され、レルムに設定されたユーザープロファイル設定に属性が確実に準拠するようになります。

詳細は、アップグレードガイド を参照してください。

1.5.15.4. 管理ユーザー API を通じてユーザーを更新する際のユーザー属性の部分的な更新はサポートされなくなりました。

管理ユーザー API を介してユーザー属性を更新する場合、usernameemailfirstNamelastName などのルート属性を含むユーザー属性を更新するときに、部分的な更新はできません。

詳細は、アップグレードガイド を参照してください。

1.5.15.5. オフラインセッションとリモートセッションの順次ロード

このリリースから、Red Hat build of Keycloak クラスターの最初のメンバーが、リモートセッションを並行してではなく順番にロードするようになります。オフラインセッションのプリロードが有効になっている場合は、それらも順番にロードされます。

詳細は、アップグレードガイド を参照してください。

1.5.15.6. 認証済みの別のユーザーに代わってアクションを実行することが不可能

このリリースでは、ユーザーがすでに認証されていて、アクションが別のユーザーにバインドされている場合、メール検証などのアクションを実行できなくなりました。たとえば、メールリンクが別のアカウントにバインドされている場合、ユーザーは検証メールフローを完了できません。

1.5.15.7. メールアドレス検証フローの変更

このリリースでは、ユーザーがリンクをクリックしてメールアドレスを検証しようとしたときに、メールアドレスが以前に検証済みである場合、適切なメッセージが表示されます。

さらに、すでに検証済みのメールアドレスを検証しようとしていることを示すために、新しいエラー (EMAIL_ALREADY_VERIFIED) イベントが発生するようになりました。このイベントを使用すると、リンクが漏洩した場合にユーザーアカウントを乗っ取る可能性のある攻撃を追跡したり、ユーザーがアクションを認識していない場合に警告したりすることができます。

1.5.15.8. テーマのローカリゼーションファイルのデフォルト設定が UTF-8 エンコード

テーマのメッセージプロパティーファイルが UTF-8 エンコードで読み取られるようになり、自動的に ISO-8859-1 エンコードにフォールバックされます。

詳細は、アップグレードガイド を参照してください。

1.5.15.9. オフラインセッションの有効期間をメモリー内でオーバーライドするための設定オプション

メモリー要件を削減するために、Infinispan キャッシュにインポートされたオフラインセッションの有効期間を短縮する設定オプションが導入されました。現在、オフラインセッションの有効期間のオーバーライドはデフォルトで無効になっています。

詳細は、サーバー管理ガイド を参照してください。

1.5.15.10. Infinispan メトリクスがキャッシュマネージャーとキャッシュ名のラベルを使用

Red Hat build of Keycloak の組み込みキャッシュのメトリクスを有効にしたときに、メトリクスがキャッシュマネージャーとキャッシュ名のラベルを使用するようになりました。

詳細は、アップグレードガイド を参照してください。

1.5.15.11. ユーザー属性値の長さの拡張

このリリース以降、Red Hat build of Keycloak は、以前は制限されていた 255 文字を超えるユーザー属性値の保存と検索をサポートします。

詳細は、アップグレードガイド を参照してください。

1.5.15.12. ブルートフォース保護の変更

ブルートフォース保護にいくつかの機能拡張が加えられました。

  1. ブルートフォース保護により OTP またはリカバリーコードによる認証の試行が失敗すると、アクティブな認証セッションが無効になります。そのセッションでさらに認証を試みても失敗します。
  2. 以前のバージョンの Red Hat build of Keycloak では、アカウントに対するブルートフォース攻撃を受けた際に、ユーザーを一時的に無効にするか、永久に無効にするかを管理者が選択する必要がありました。管理者は、一定回数の一時的なロックアウト後にユーザーを永久に無効にできるようになりました。
  3. プロパティー failedLoginNotBeforebrute-force/users/{userId} エンドポイントに追加されました。

1.5.15.13. 認可ポリシー

以前のバージョンの Red Hat build of Keycloak では、ユーザー、グループ、またはクライアントポリシーの最後のメンバーが削除されると、そのポリシーも削除されていました。そのため、このポリシーが集約ポリシーで使用された場合、権限の昇格が発生することがありました。権限の昇格を回避するために、有効なポリシーが削除されなくなりました。また、管理者がこのようなポリシーを更新する必要があります。

1.5.15.14. 一時的なロックアウトログのイベントへの置き換え

ブルートフォースプロテクターによってユーザーが一時的にロックアウトされた場合に、新しいイベント USER_DISABLED_BY_TEMPORARY_LOCKOUT が発生するようになりました。新しいイベントは情報を構造化された形式で提供するため、ID KC-SERVICES0053 のログは削除されました。

詳細は、アップグレードガイド を参照してください。

1.5.15.15. Cookie の更新

新しい Cookie プロバイダーを含め、Cookie 処理コードがリファクタリングされ、改善されました。これにより、Red Hat build of Keycloak によって処理される Cookie の一貫性が向上し、必要に応じて Cookie に関する設定オプションを導入できるようになります。

1.5.15.16. SAML User Attribute Mapper For NameID で有効な NameID 形式のみを提案

以前は、User Attribute Mapper For NameID で、Name ID Format オプションを次の値に設定できました。

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity

しかし、Red Hat build of Keycloak は、これらの NameIDPolicy のいずれかを使用した AuthnRequest ドキュメントの受信をサポートしていないため、これらのマッパーは使用されません。サポートされるオプションが更新され、次の Name ID Formats だけが含まれるようになりました。

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

1.5.15.17. コンテナー内で実行する場合の異なる JVM メモリー設定

Red Hat build of Keycloak では、初期ヒープサイズと最大ヒープサイズにハードコード値を指定せずに、コンテナーの合計メモリーに対する相対値を使用します。JVM オプション -Xms および -Xmx が、-XX:InitialRAMPercentage-XX:MaxRAMPercentage に置き換えられました。

警告

メモリー消費に大きな影響を与える可能性があるため、特定のアクションが必要になる場合があります。

詳細は、アップグレードガイド を参照してください。

1.5.15.18. オフラインセッションのプリロードの非推奨化

Red Hat build of Keycloak のデフォルトの動作では、オンデマンドでオフラインセッションをロードします。起動時にオフラインセッションをプリロードするという従来の動作は、非推奨になりました。起動時にプリロードすると、セッション数の増加に応じて適切にスケールすることができず、Red Hat build of Keycloak のメモリー使用量が増加するためです。古い動作は今後のリリースで削除される予定です。

詳細は、アップグレードガイド を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.