Keycloak migration

こちらは、Keycloakのバージョン16.0.0から17.0.0への移行に関するブログ投稿のドラフトです:

Keycloak 16.0.0への移行

主な変更点

  1. レガシーセキュリティサブシステムの廃止
    • standalone.xmlまたはhost.xmlファイルのsecurity-realm要素が削除されました。
      • データベースを使用せずに、プロパティファイルを使ってユーザーを定義できます。
  2. プロキシ設定
    • リクエストとレスポンスが同じプロキシを経由するようになりました。
  3. Keycloak Operatorの変更
    • Metrics拡張を含むKeycloak Operatorが削除されました。

詳細なアップグレード手順については、公式アップグレードガイドを参照してください。

Keycloak 17.0.0への移行

主な変更点

  1. デフォルトディストリビューションの変更: WildFlyからQuarkusへ
    • 旧ディストリビューションを使用するには、legacyまたは17.0.0-legacyタグを使用します。
    • Quarkusではデフォルトでコンテキストパスから/authが削除されています。これを維持するには、以下のコマンドでサーバーを起動します:

      bin/kc.[sh|bat] start-dev --http-relative-path /auth
      
  2. クライアントスコープ条件
    • クライアントスコープ条件のJSONドキュメント内のscopeフィールド名がscopesに変更されました。
  3. 設定の変更
    • 新しいQuarkus CLIコマンドがWildFly CLIの代わりになります。詳細はサーバーガイドを参照してください。
  4. 管理者ユーザーの設定
    • 初回起動時にKEYCLOAK_ADMINKEYCLOAK_ADMIN_PASSWORD環境変数を設定します。追加のユーザーはkcadm.shまたはkcadm.batを使用して追加できます。
  5. カスタムプロバイダーの移行
    • カスタムプロバイダーはstandalone/deploymentsではなくprovidersディレクトリに配置します。
    • EARパッケージ形式とjboss-deployment-structure.xmlはサポートされなくなりました。
  6. ヘッダー処理の変更
    • X-Forwarded-PortヘッダーがX-Forwarded-Hostに含まれるポートよりも優先されます。

データベーススキーマの更新

  • インデックスIDX_USER_SERVICE_ACCOUNTが追加されました。
  • スキーマバージョンを確認するには、以下のSQLを実行します:

    SELECT * FROM DATABASECHANGELOG;
    

詳細は、データベーススキーマの更新ドキュメントを参照してください。

参考資料

関連記事