1.8. 削除された機能
前のセクションでは、一部の機能が削除されたことがすでに説明されています。次のセクションでは、削除されたその他の機能を詳しく説明します。
1.8.1. UMD ディストリビューションのサポートの削除
Keycloak JS ライブラリーの UMD ディストリビューションの ユニバーサルモジュール定義 が削除されました。つまり、ライブラリーはグローバル変数として公開されなくなり、代わりに モジュール としてインポートする必要があります。この変更は、最新の JavaScript 開発手法に沿ったものであり、ブラウザーとビルドツール間のエクスペリエンスの一貫性が向上し、一般的に副次的な影響が少なく予測可能なコードになります。
Vite や Webpack などのバンドラーを使用している場合は何も変更されず、以前と同じ使用感が得られます。ブラウザーでライブラリーを直接使用している場合は、コードを更新してライブラリーをモジュールとしてインポートする必要があります。
<!-- Before --> <script src="/path/to/keycloak.js"></script> <script> const keycloak = new Keycloak(); </script> <!-- After --> <script type="module"> import Keycloak from '/path/to/keycloak.js'; const keycloak = new Keycloak(); </script>
ライブラリーのインポートを簡潔にするために、インポートマップ を使用することもできます。
<script type="importmap"> { "imports": { "keycloak-js": "/path/to/keycloak.js" } } </script> <script type="module"> // The library can now be imported without specifying the full path, providing a similar experience as with a bundler. import Keycloak from 'keycloak-js'; const keycloak = new Keycloak(); </script>
TypeScript を使用している場合は、ライブラリーを解決できるように tsconfig.json
を更新する必要がある場合があります。
{ "compilerOptions": { "moduleResolution": "Bundler" } }
1.8.2. CollectionUtil intesection メソッドの削除
org.keycloak.common.util.CollectionUtil.intersection
メソッドが削除されました。既存のコレクションでは代わりに 'java.util.Collection.retainAll' を使用する必要があります。
1.8.3. Account Console v2 テーマの削除
Account Console v2 テーマは、Red Hat build of Keycloak から削除されました。このテーマは Red Hat build of Keycloak 24 で非推奨となり、Account Console v3 テーマに置き換えられました。このテーマをまだ使用している場合は、Account Console v3 テーマに移行する必要があります。
1.8.4. 元のホスト名オプションの削除
これらのオプションは、Hostname v2 と呼ばれる新しいオプションに置き換えられました。詳細は、ホスト名の設定 (v2) および 新しいホスト名のオプション を参照してください。
1.8.5. proxy オプションの削除
proxy
オプションは Red Hat build of Keycloak 24 では非推奨となり、必要に応じてホスト名オプションと組み合わせた proxy-headers
オプションに置き換えられました。詳細は、リバースプロキシーの使用 を参照してください。
1.8.6. ほとんどの Java アダプターの削除
ほとんどの Java アダプターは、Red Hat build of Keycloak コードベースとダウンロードページから削除されました。
-
OAuth 2.0/OIDC の場合、これには EAP アダプター、Servlet Filter アダプター、
KeycloakInstalled
デスクトップアダプター、jaxrs-oauth-client
アダプター、JAAS ログインモジュール、Spring アダプター、および SpringBoot アダプターの削除が含まれます。 - SAML の場合、これには Servlet Filter アダプターの削除が含まれます。SAML アダプターは JBoss EAP でも引き続きサポートされます。
- 汎用 Authorization Client ライブラリーは引き続きサポートされます。他の OAuth 2.0 または OpenID Connect ライブラリーと組み合わせて使用できます。この認可クライアントライブラリーを Elytron OIDC や SpringBoot などのサードパーティー Java アダプターと一緒に使用する例については、クイックスタート を参照してください。WildFly で使用される SAML アダプターの例については、クイックスタートも確認できます。
1.8.7. OSGi メタデータの削除
OSGi メタデータを使用していたすべての Java アダプターが削除されたため、jar に対して OSGi メタデータは生成されなくなりました。
1.8.8. レガシーの Cookie の削除
Red Hat build of Keycloak では、_LEGACY
Cookie が送信されなくなりました。この Cookie は、Cookie の SameSite
フラグをサポートしていない古いブラウザーへの回避策として導入されました。
_LEGACY
Cookie は、安全でないコンテキストからのログインを許可する別の目的でも使用できます。Red Hat build of Keycloak の実稼働環境では安全でないコンテキストは決して推奨されませんが、localhost
の外部から http
経由で Red Hat build of Keycloak にアクセスすることは比較的頻繁に行われます。_LEGACY
Cookie の代わりとして、Red Hat build of Keycloak では secure
フラグが設定されなくなりました。ただし、安全でないコンテキストが使用されていることを検出すると、SameSite=None
ではなく SameSite=Lax
が設定されます。
1.8.9. EnvironmentDependentProviderFactory の削除
EnvironmentDependentProviderFactory.isSupported()
メソッドは、ふくすのリリースで非推奨となり、現在は削除されています。
代わりに、isSupported (Config.Scope config)
を実装します。
1.8.10. 従来の redirect_uri
パラメーターおよび SPI オプションのサポートの削除
以前のバージョンの Red Hat build of Keycloak は、http(s)://example-host/auth/realms/my-realm-name/protocol/openid-connect/logout?redirect_uri=encodedRedirectUri
などのログアウトエンドポイント URL を開いて、ユーザーの自動ログアウトおよびアプリケーションへのリダイレクトをサポートしていました。この機能は Red Hat build of Keycloak 18 で非推奨となり、OpenID Connect 仕様への準拠が優先され、このバージョンでは削除されました。
この変更の一環として、SPI の関連する次の設定オプションが削除されました。
-
--spi-login-protocol-openid-connect-legacy-logout-redirect-uri
-
--spi-login-protocol-openid-connect-suppress-logout-confirmation-screen
ログアウトにこれらのオプションまたは redirect_uri
パラメーターをまだ使用している場合は、代わりに OpenID Connect RP-Initiated Logout 仕様 を実装する必要があります。
1.8.11. org.keycloak:keycloak-model-legacy の削除
org.keycloak:keycloak-model-legacy
モジュールは以前のリリースで非推奨となり、このリリースでは削除されました。代わりに org.keycloak:keycloak-model-storage
モジュールを使用してください。
1.8.12. オフラインセッションの事前読み込みの削除
起動時にオフラインセッションをプリロードする古い動作は、以前のリリースで非推奨になった後に削除されました。
1.8.13. JavaScript Admin Client からの setOrCreateChild()
メソッドの削除
groups.setOrCreateChild()
メソッドは、JavaScript ベースの管理クライアントから削除されました。まだこのメソッドを使用している場合は、代わりに createChildGroup()
または updateChildGroup()
メソッドを使用してください。
1.8.14. session_state
クレームの削除
sid
クレームと同じ値を含む session_state
クレームは、OpenID Connect Front-Channel Logout および OpenID Connect Back-Channel Logout の仕様に準拠するようになり、不要になったため、すべてのトークンから削除されました。session_state
クレームは、OpenID Connect Session Management 仕様に従って、Access Token Response 内に残ります。
なお、setSessionState()
メソッドも IDToken
クラスから削除され、代わりに setSessionId()
メソッドが導入され、getSessionState()
メソッドは非推奨になりました。
新しい セッション状態 (session_state)
マッパーも含まれており、クライアントスコープ (たとえば、basic
クライアントスコープ) に割り当てて、古い動作に戻すことができます。
古いバージョンの JS アダプターを使用する場合は、上記のようにクライアントスコープを使用して セッション状態 (session_state)
マッパーも使用する必要があります。
1.8.15. 永続セッションが有効になっている場合のアイドルセッションの猶予期間の削除
以前のバージョンの Red Hat build of Keycloak では、ユーザーおよびクライアントセッションのアイドル時間に 2 分間の猶予期間が追加されました。以前のアーキテクチャーで、セッションの更新時間がクラスターで非同期に複製されていたため、この猶予期間が追加されました。永続的なユーザーセッションでは、これは不要になり、猶予期間が削除されました。
以前の動作を維持するには、レルム設定を更新し、セッションとクライアントのアイドル時間を 2 分延長します。
1.8.16. アダプターおよびその他の BOM ファイルの削除
org.keycloak.bom:keycloak-adapter-bom
および org.keycloak.bom:keycloak-misc-bom
BOM ファイルは削除されます。ほとんどの Java アダプターが削除されたため、アダプター BOM は役に立たなくなりました。misc BOM には、keycloak-test-helper
というアーティファクトが 1 つだけ含まれていましたが、このリリースではそのアーティファクトも削除されます。
1.8.17. keycloak-test-helper の削除
このリリースでは、maven アーティファクト org.keycloak:keycloak-test-helper
が削除されました。このアーティファクトは、Java 管理クライアントを処理するためのヘルパーメソッドをいくつか提供しました。ヘルパーメソッドを使用する場合は、必要に応じてそれらをアプリケーションにフォークすることが可能です。
1.8.18. JEE admin-client の削除
このリリースでは JEE admin-client は削除されていますが、Jakarta admin-client は引き続きサポートされます。
1.8.19. 特定のクラスからの非推奨メソッドの削除
以下のメソッドが AccessToken
クラスから削除されました。
-
expiration
.代わりにexp
メソッドを使用してください。 -
notBefore
.代わりにnbf
メソッドを使用してください。 -
issuedAt
.代わりにiat
メソッドを使用してください。
以下のメソッドは IDToken
クラスから削除されました。
-
getAuthTime
およびsetAuthTime
。getAuth_time
メソッドとsetAuth_time
メソッドをそれぞれ使用します。 -
notBefore
.代わりにnbf
メソッドを使用してください。 -
issuedAt
.代わりにiat
メソッドを使用してください。 -
setSessionState
.代わりにsetSessionId
メソッドを使用してください (詳細は、上記のsession_state
クレームに関するセクションを参照してください)
以下のメソッドは JsonWebToken
クラスから削除されました。
-
expiration
.代わりにexp
メソッドを使用してください。 -
notBefore
.代わりにnbf
メソッドを使用してください。 -
issuedAt
.代わりにiat
メソッドを使用してください。
また、exp
と nbf
のクレームはオプションであるため、トークンに設定されないことも想定する必要があります。以前は、これらのクレームの値は有効な NumericDate
である必要があるため、0
の値に設定されていましたが、これはまったく意味がありません。
1.8.20. 非推奨の Cookie メソッドの削除
カスタム Cookie を設定するための次の API は削除されました。
-
ServerCookie
-NewCookie.Builder
に置き換えられました -
LocaleSelectorProvider.KEYCLOAK_LOCALE
-CookieType.LOCALE
に置き換えられました -
HttpCookie
-NewCookie.Builder
に置き換えられました -
HttpResponse.setCookieIfAbsent (HttpCookie cookie)
-HttpResponse.setCookieIfAbsent (NewCookie cookie)
に置き換えられました
1.8.21. 非推奨の LinkedIn プロバイダーの削除
バージョン 22.0 では、LinkedIn の OAuh 2.0 ソーシャルプロバイダーが新しい OpenId Connect 実装に置き換えられました。レガシープロバイダーは非推奨になりましたが、既存のレルムでまだ機能している場合に備えて削除されませんでした。Red Hat build of Keycloak 26 では、古いプロバイダーとそれに関連する linkedin-oauth
機能が削除されます。今後は、デフォルトの LinkedIn
ソーシャルプロバイダーのみが利用可能なオプションです。