Open Liberty 23.0.0.8におけるOpenID ConnectクライアントのPKCEサポートによる認可コード傍受攻撃の防止
Open Liberty の新しい PKCE (Proof Key for Code Exchange) サポートを OpenID Connect クライアントに使用することで、特定のシナリオで発生する可能性のある認証コードの傍受攻撃を防ぐことができます。また、このリリースでは featureUtility installFeature
コマンドが更新され、 インストールするフィーチャー間の依存関係をより適切に管理できるようになりました。OpenTelemetryとJaegerの使い方に関する新しいガイドもあります。
In Open Liberty 23.0.0.8:
ランタイムに追加された新しいフィーチャーや機能とともに、私たちはガイドの更新も行いました。
23.0.0.8で修正されたバグリストをご参照ください。
過去のOpen Liberty GAリリースのブログ記事もご参照ください。
23.0.0.8を使用してアプリを実行する
Mavenを使うときは下記の設定をお使いください。
<dependency>
<groupId>io.openliberty</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>23.0.0.8</version>
<type>zip</type>
</dependency>
Gradleの場合はこちらです。
dependencies {
libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[23.0.0.8,)'
}
コンテナ・イメージの場合はこちらです。
FROM icr.io/appcafe/open-liberty
またはダウンロード・ページをご参照ください。
OpenID ConnectクライアントのPKCEサポートによる認証コード傍受攻撃の防止
LibertyのOpenID ConnectクライアントがProof Key for Code Exchange (PKCE) (RFC 7636)に対応しました。PKCEはOAuth 2.0仕様の拡張であり、OAuth 2.0パブリッククライアントの認証コード傍受攻撃からの保護を提供します。非常に特殊なシナリオでは、悪意のあるアプリケーションが、正当な OAuth 2.0 公開クライアントに意図された認証コードを傍受し、その認証コードを使用してクライアントに代わってアクセス・トークンや ID トークンを取得することができます。PKCE では、このような傍受攻撃を防ぐために、追加のステップとリクエスト・パラメータを導入しています。
この機能は server.xml
の <openidConnectClient>
エレメントか <oidcLogin>
エレメントの pkceCodeChallengeMethod
属性を使用して有効にします。
例えば、OpenID Connect Clientフィーチャーを使用する場合、以下の例のような設定を含めます。
<featureManager>
<feature>openidConnectClient-1.0</feature>
</featureManager>
...
<openidConnectClient pkceCodeChallengeMethod="S256" ... />
ソーシャルメディア・ログイン・フィーチャーを使用する場合は、以下の例のような設定を含めます。
<featureManager>
<feature>socialLogin-1.0</feature>
</featureManager>
...
<oidcLogin pkceCodeChallengeMethod="S256" ... />
構成オプションの詳細については、openidConnectClientエレメント および oidcLoginエレメント のドキュメントを参照してください。
featureUtility installFeature
コマンドを使用する際に、十分なフィーチャーがインストールされていることを確認
コマンドラインで featureUtility installFeature <featurename>
を使ってフィーチャーをインストールすると、そのフィーチャーと必要な依存関係がすべてインストールされます。
しかし、これはそのフィーチャーがサーバーの他のフィーチャーと一緒に使われたときに正しく起動することを保証するものではありません。つまり、コマンドラインで使いたい機能をすべて挙げてみたものの、featureUtility
がすべての依存関係の正しいバージョンをインストールしていなかったために、それらがすべて一緒に動作しないことがわかった、ということがありえます。
この問題を防ぐために、featureUtility installFeature <featurename>
を実行すると、要求された機能が必要とする依存関係のすべてのバージョンがインストールされるようになりました。
同様のコマンドである featureUtility installServerFeatures <servername>
はこの問題の影響を受けず、動作も変わりません。installServerFeatures` を使用すると、指定されたサーバ構成に必要な最小限のフィーチャーを常にインストールすることができるので、フィーチャーをインストールする場合には installServerFeatures
を使用することを推奨します。
詳細は以下をご参照ください。
本リリースにおけるセキュリティ脆弱性 (CVE) の修正
CVE | CVSSスコア | 脆弱性評価 | 影響を受けるバージョン | ノート |
---|---|---|---|---|
5.9 |
Denial of service |
22.0.0.13 - 23.0.0.7 |
restfulWS-3.0とrestfulWS-3.1フィーチャーに影響あり。 |
過去のセキュリティ脆弱性の修正のリストについては、Security vulnerability (CVE) listをご参照ください。
前回のリリース以降の新しいガイドと更新されたガイド
Open Libertyのフィーチャーや機能が成長し続けるにしたがい、それらのトピックに関するopenliberty.ioへの新しいガイドを引き続き追加し、できるだけ簡単に導入できるようにしています。 また、報告されたバグや問題に対処し、内容を最新に保ち、トピックを拡大するために、既存のガイドも更新しています。
-
OpenTelemetryとJaegerでmicroservicesの分散トレースを可能にする
Observabilityカテゴリのこの新しいガイドでは、OpenTelemetryとJaegerを使ってmicroservicesで分散トレースを有効にする方法を学びます。クラウドホスト版もあります。
-
OpenShift Localを使用したOpenShiftクラスタへのマイクロサービスのデプロイ
こちらは「Deploying microservices to OpenShift using CodeReady Containers」ガイドの新しい名称です。このアプリケーションは、MicroProfile 6 と Jakarta EE 10 のフィーチャーを使用するように更新されています。このガイドでは、
oc
コマンドとpodman
コマンドを使用して、OpenShift Local (以前は CodeReady Containers という名でした) で実行されているローカルの OpenShift クラスタに microservices をデプロイする方法を学ぶことができます。OpenShift Local にはoc
とpodman
バイナリが含まれています。
今すぐOpen Liberty 23.0.0.8を入手する
Gradle, Docker,ダウンロード可能なアーカイブからも入手可能です。