Open Liberty 22.0.0.10 では、発行者クレームを使用して、より簡単にOpenID Connect クライアント構成ができるようになりました
Open Liberty 22.0.0.10 は、OpenID Connect Client 1.0 フィーチャーを拡張して、JWT または JWS アクセス・トークンからの発行者クレームに応じて、openidConnectClient
構成を選択できるようになりました。
このリリースには、重要なセキュリティ脆弱性 (CVE) の修正と、多くの重要なバグ修正も含まれています。
In Open Liberty 22.0.0.10:
ランタイムに追加された新しい機能と機能に加えて、 ガイドも更新されました。
修正されたバグのリストはこちらを参照してください。 22.0.0.10.
22.0.0.10 を使用してアプリを実行する
Mavenを使う時には下記の設定を使ってください。
<dependency>
<groupId>io.openliberty</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>22.0.0.10</version>
<type>zip</type>
</dependency>
Gradleの場合は、下記の設定です。
dependencies {
libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[22.0.0.10,)'
}
Dockerを使っているときは、下記のイメージを使ってください。
FROM open-liberty
または、Open Libertyのダウンロード・ページ.
受信リクエストのJWTトークン内の発行者クレームの値に応じて、OICDクライアント構成を選択する (OpenID Connect Client 1.0)
22.0.0.10 以降、OpenID Connect Client 1.0 機能は、JWT または JWS アクセス トークンの中の発行者クレームに応じて、複数の openidConnectClient
構成のうち、どの構成を使うか指定できるようになりました。以前のリリースでは、同じリソースに複数の発行者が使われている場合、複雑な認証フィルターを構成する必要がありました。このリリースから、OpenID Connect Client 1.0 機能は、必要な発行者ごとに、より単純な openidConnectClient
要素で構成できるようになりました。
A Liberty OpenID Connect Relying Party will automatically use the issuer claim from a JWT or JWS access token to select the openidConnectClient
configuration with a matching issuerIdentifier
attribute.
Liberty OpenID Connect Relying Party は、JWT または JWS アクセス トークンからの発行者クレームを自動的に使用して、一致する issuerIdentifier
属性を持つ openidConnectClient
構成を選択します。
The following server.xml
file example shows two Open ID connect client configurations, with an authentication filter configured to route requests to the RP2
configuration. If a request with an issuer claim value of https://hostname/op1
is presented, the RP1
configuration is selected unless the rp2filter
applies to the request.
次の server.xml
ファイルの例は、リクエストを RP2
構成にルーティングするように構成されたauthentication filter を含む 2 つの Open ID Connect クライアント構成を示しています。 . https://hostname/op1
の発行者クレーム値を持つリクエストが提示された場合、rp2filter
がリクエストに適用されない限り、RP1
構成が選択されます。
<server>
<featureManager>
<feature>openidConnectClient-1.0</feature>
</featureManager>
...
<openidConnectClient id="RP1" issuerIdentifier="https://hostname/op1" ... />
<openidConnectClient id="RP2" issuerIdentifier="https://hostname/op2" authFilterRef="rp2filter" .../>
<authFilter id="rp2filter">
...
</authFilter>
...
</server>
Open Liberty は、以下のアルゴリズムに従って、JWT 要求に使用する openidConnectClient
構成を選択します。
-
openidConnectClient
構成の認証フィルターが、リクエストと一致する場合は、フィルターの構成を優先します。 -
すべての
openidConnectClient
要素のissuerIdentifier
属性に対して、JWT からの発行者クレーム(Issuer Claim)を確認します。 JWT からの発行者クレームが 1 つの`openidConnectClient` 構成要素のみのissuerIdentifier
属性と一致する場合は、その構成を選択します。 -
JWT からの発行者クレームが複数の
openidConnectClient
構成要素のissuerIdentifier
属性と一致する場合は、一致する最初の構成を選択します -
JWT からの issuer クレームがどの
openidConnectClient
構成要素のissuerIdentifier
属性とも一致しない場合は、構成要素の 1 つを非決定的な方法で選択します。
OpenID Connect クライアントの詳細については、OpenID Connect クライアント仕様 を参照してください。
セキュリティ脆弱性 (CVE) の修正
CVE |
CVSSスコア |
脆弱性評価 |
影響を受けるバージョン |
修正済みバージョン |
ノート |
5.4 |
HTTP header injection |
17.0.0.3 - 22.0.0.9 |
22.0.0.10 |
For a list of past security vulnerability fixes, reference the Security vulnerability (CVE) list.
過去のセキュリティ脆弱性の修正のリストについては、次のリンクを参照してください: /docs/latest/security-vulnerabilities.html[セキュリティ脆弱性 (CVE) リスト]。
主なバグ修正
以下のセクションでは、このリリースで修正したバグの一部について説明します。興味がある場合は、22.0.0.10で修正されたバグのリストを参照してください。
-
JDBC connection not validated when numConnectionsPerThreadLocal is used
JDBC データソースが
validationTimeout
で構成されている場合、コネクションプールは、接続がアプリケーションに戻される前に、接続を検証する必要があります。接続が無効な場合 (データベース フェイルオーバー の後など)、プール内の他の接続はpurgePolicy
構成に従ってパージする必要があります。したがって、アプリケーションが無効なデータベース接続を受け取ることはめったにありません。ただし、接続マネージャーが
numConnectionsPerThreadLocal=1
で構成されている場合、接続がThreadLocal
として保管されてしまうと、この接続は、アプリケーションによって使用される前に検証されず、SQLException
が発生します。また、アプリケーションがこの接続に対してisValid
を呼び出し、その接続が無効であるという結果が返ってきた場合、接続マネージャーはpurgePolicy
ロジックを、コネクションプールの他の接続に適用しなくなります。そのため、クライアントは各ワーカー・スレッドが処理されるまで複数のエラーを表示することがあります。<dataSource id="fhirDatasourcePglocalDefault" jndiName="jdbc/fhir_ibmfhirpg_default" type="javax.sql.XADataSource" statementCacheSize="200" syncQueryTimeoutWithTransactionTimeout="true" validationTimeout="30s"> <jdbcDriver javax.sql.XADataSource="org.postgresql.xa.PGXADataSource" libraryRef="sharedLibPostgres"/> <properties.postgresql serverName="localhost" portNumber="5432" databaseName="a-database-name" user="a-database-user" password="a-database-password" currentSchema="a-database-schema" /> <connectionManager minPoolSize="40" maxPoolSize="80" agedTimeout="-1" numConnectionsPerThreadLocal="1" connectionTimeout="60s" maxIdleTime="2m" purgePolicy="EntirePool" /> </dataSource>
修正後、`validationTimeout`が構成されていると、接続は使用前に検証され、`purgePolicy`に従って接続プールから不良な接続が削除されます。
-
JobOperator.getRunningExecutions の出力には、実行されていないジョブの実行が含まれていました
Liberty Java バッチ
JobOperator.getRunningExecutions()
API は、バグにより、実行中のジョブ実行 ID だけでなく、実行中のジョブ インスタンスに関連付けられたすべてのジョブ実行 ID が返されていました。修正後、そのジョブ名に対して JobOperator.getRunningExecutions() が呼び出されると、元の (停止された) 実行 ID と新しい (再開された) 実行 ID の両方が返されます。
-
hideMessageのloggingをからメッセージIDを削除したとき、サーバーが動的に更新されるようになりました
hideMessage
のlogging属性からのメッセージ IDを削除しても、実行中のサーバーに反映されませんでした。この問題は解決され、実行中のサーバーの構成が適切に更新され、属性から削除されたメッセージは表示されるようになりました。
-
AllowAuthenticationFailOverToAuthMethod
オプションの翻訳がありませんでしたAllowAuthenticationFailOverToAuthMethod
オプションの説明には、翻訳されていない NLS 定数が含まれていました。これは、メタタイプの NLS ファイルから定数が欠落していたことが原因でした。この修正により、すべての
AllowAuthenticationFailOverToAuthMethod
オプションの説明が適切に翻訳されるようになりました。 -
サーバーのシャットダウン中のセッション キャッシュ サービスのタイミングの問題により、キャッシュ サービスの終了中に、セッションを無効化するスレッドがキャッシュにアクセスする可能性がありました。これは、無効なリスナーの処理時にキャッシュ インスタンスがチェックされていないために発生する可能性があります。
この問題は、このリリースで解決されました。
-
22.0.0.4 以降で FFDCIgnore が適用されない
22.0.0.4 以降、1.0 仕様のデプロイメント記述子を持つリソース アダプタがインストールされた場合、
@FFDCIgnore
アノテーションが無視され、FFDC が誤って発行されました。修正後、FFDC は作成されなくなりました。
新規および更新されたガイド
Open Liberty の特徴と機能が成長し続けるにつれて、openliberty.io の新しいガイドにトピックを追加し続けます。既存のガイドは、報告されたバグ/問題に対処し、コンテンツを最新の状態に保ち、トピックの対象範囲を拡大するために、更新することもあります。
-
GraphQL クライアントを使用して GraphQL クエリとミューテーションを実行する
-
SmallRyeのGraphQLクライアントのタイプセーフなインターフェースを使用して、複数のマイクロサービスからデータを照会および変更する方法を学びます
-
Open Liberty 22.0.0.10 を今すぐ入手
下記のリンクから入手可能です。 Maven, Gradle, Docker, and as a downloadable archive.