LoginSignup
3
1

Open Liberty / WebSphere Liberty最新情報:2023年7月〜2023年9月

Posted at

Open Libertyおよび製品版のWebSphere Libertyについて,2023年7月にリリースされた22.0.0.7から2023年9月の23.0.0.9までで追加された新機能について紹介します。また,これ以外にも多くのバグやCVE脆弱性が修正されています。

前回の記事はこちらです→ Liberty最新情報:2023年3月〜2023年6月

API

Spring Boot 3.0対応

2023年9月にでたVersion 23.0.0.9より,Liberty上でSpring Boot 3.0アプリケーションを実行できるようになりました。

過去のバージョンでは,Spring Boot 1.5およびSpring Boot 2.xアプリケーションのサポートが提供されていました。また,WAR形式でパッケージされたSpring Boot 3.0アプリケーションも実行することができました。

今回のバージョンで,JAR形式のSpring Boot 3.0アプリケーションの実行もサポートされるようになりました。Java 17以降のJDKを使用し,以下のように構成してください。

<features>
   <feature>springBoot-3.0</feature>
   <feature>servlet-6.0</feature>
</features>

JARファイルは${server.config.dir}/dropins/spring/におくことができ,追加の構成なしで利用することができます。また,${server.config.dir}/appsにJARファイルを置き,以下のように構成することでも利用できます。

<springBootApplication id="spring-boot-app" name="spring-boot-app"
    location="spring-boot-app-0.1.0.jar" />

サーバー作成時に使用できるテンプレートとして,springBoot3も追加されています。以下のように利用してください。

$ server create myserver --template=springBoot3

Spring Boot 3.xアプリケーション内でJava EE/Jakarta EEの機能を使用する場合は,Jakarta EE 10に含まれるバージョンを使用する必要があります。

Security

Proof Key for Code Exchange (PKCE)対応

2023年8月にでたVersion 23.0.0.8から,LibertyのOpenID Connectクライアントで,認証コード傍受攻撃を防止するための仕組みProof Key for Code Exchange (PKCE)に対応しました。

PKCEはRFC 7636で標準化されています。常に特殊なシナリオでは,悪意のあるアプリケーションが正規のOAuth 2.0クライアント向けの認証コードを傍受し,その認証コードを使用してクライアントに代わってアクセストークンとIDトークンを取得する可能性があります。これを防止するため,PKCEでは追加の手順とリクエストパラメーターが導入されています。

OpenID ConnectクライアントFeature(openidConnectClient-1.0)を使用する場合,以下のようにpkceCodeChallengeMethod属性を追加してください。

<featureManager>
    <feature>openidConnectClient-1.0</feature>
</featureManager>
    ...
<openidConnectClient pkceCodeChallengeMethod="S256" ... />

ソーシャルメディアログインFeature(socialLogin-1.0)を使用する場合,以下のように同属性を追加してください。

<featureManager>
    <feature>socialLogin-1.0</feature>
</featureManager>
    ...
<oidcLogin pkceCodeChallengeMethod="S256" ... />

秘密鍵JWT認証のサポート

2023年9月にでたVersion 23.0.0.9から,LibertyのOpenID Connectクライアントで,OpenID Connectトークン・エンドポイントでのprivate_key_jwtクライアント認証メソッドをサポートするようになりました。

OpenID Connectクライアントは、プロバイダのトークンエンドポイントを呼び出す際に、OpenID Connectプロバイダに認証データを提供する必要があります。クライアントはいくつかの方法で認証することができますが、そのほとんどはクライアントシークレットを必要とします。private_key_jwt認証メソッドを使用すると、クライアントはクライアント秘密の代わりに非対称キーを使用して署名付きJSON Webトークン(JWT)を作成し、認証を行うことができます。この認証方式を使用するOpenID Connectクライアントは、クライアントシークレットを持つ必要がなくなりました。

詳細な構成方法についてはOpenLiberty.ioのBlogの記述を参照してください。

LTPA/JWTで使用するCookieのパス

Libertyでは,SSO(Single Sign On)に使用するLTPAやJWTのCookieを,/のパスで設定しています。そのため,一つのサーバー上に二つ以上のアプリケーションが導入されているとき,それぞれで独立した認証を使用することができませんでした。

2023年9月にでたVersion 23.0.0.9から,これらのCookieのパスにアプリケーションのコンテキスト・ルートを指定できるようになりました。<webAppSecurity>要素にuseContextRootForSSOCookiePath属性を指定してください。

<webAppSecurity useContextRootForSSOCookiePath="true"/>

これにより,Set-Cookieのパスにアプリケーションのコンテキスト・ルートが指定され,アプリケーションごとに異なるLTPAトークンを使用することができるようになります。

ツール

featureUtility installFeatureコマンドの動作変更

featureUtility installFeature <Feature名>で特定のFeatureを指定してLiberty環境にインストールする際に,サーバー構成によっては,依存関係のFeatureが完全に導入されないことがあったため,安全側にたおし,必要になる可能性のあるFeatureも追加で導入されるようになりました。

featureUtility installServerFeatures <サーバー名>でFeatureを導入する場合は,従来から必要なFeatureは全て導入されるため,動作の変更はありません。

Documentation

Liberty API/SPI Javadoc

2023年7月から,OpenLiberty.ioのドキュメントページにLiberty APIおよびLiberty SPIのJavadocが掲載されるようになりました。これまでは製品版のWebSphere Libertyのマニュアルを参照する必要があったのですが,情報についてはOpen Liberty側に寄せるような形になっています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1