back to all blogsすべてのブログ投稿を表示

Open Liberty 23.0.0.9におけるSpring Boot 3.0のサポートと新しいセキュリティ機能

image of author image of author
Laura Cowen and 浅田 かおり (翻訳) 2023年9月19日
他言語版へのリンク: English , 简体中文 ,

新しいSpring Boot Support 3.0機能により、LibertyアプリケーションでSpring Boot 3.xの機能を使用できます。 また、クライアントシークレットを使うよりも安全なプライベートキー方式でOpenID Connectクライアントを認証できるようになり、LTPAやJWT Cookieを使う場合は、アプリケーションごとにコンテキストルートに応じて異なるCookieを使えるようになりました。

そして、happy birthday! Open Libertyは6歳になりました。Maker Projectにおける私たちの歴史をご参照ください。

In Open Liberty 23.0.0.9:

23.0.0.9で修正されたバグリストをご参照ください。

23.0.0.9を使用してアプリを実行する

Mavenを使うときは下記の設定をお使いください。

<plugin>
    <groupId>io.openliberty.tools</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>3.8.2</version>
</plugin>

Gradleの場合はこちらです。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'io.openliberty.tools:liberty-gradle-plugin:3.6.2'
    }
}
apply plugin: 'liberty'

コンテナ・イメージの場合はこちらです。

FROM icr.io/appcafe/open-liberty

またはダウンロード・ページをご参照ください。

Stack Overflowで質問する

Spring Boot 3.0 サポート

Liberty Spring Boot Support 3.0フィーチャーは、Liberty上でSpring Boot 3.0アプリケーションを実行するための、より完全なサポートを提供します。また、コンテナでアプリケーションを作成する際に、 thin the application の機能を提供します。

Libertyの以前のリリースでは、Spring Boot 1.5とSpring Boot 2.0のアプリケーションを提供していました。 また、LibertyはWARファイルとしてパッケージ化されたSpring Bootアプリケーションもサポートしていました。 最新のブログ記事 で紹介されています。 Open Liberty 23.0.0.9では、`springBoot-3.0`フィーチャーを有効にすることで、Spring Boot 3.xアプリケーションをデプロイすることができます。

Liberty上でSpring Boot 3.xアプリケーションを実行するには、Java 17以上で実行する必要があります。 さらに、アプリケーションがJakarta Servlet機能を使う場合は、Jakarta Servet 6.0でなければなりません。以下の例のように、server.xml ファイルにこれらのフィーチャーを設定します。

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

以前のバージョンのSpring Boot Supportフィーチャーと同様に、Spring BootアプリケーションのJARファイルを /dropins/spring/ ディレクトリに置くことができます。 あるいは、server.xml ファイルに Spring Bootの設定エレメント を指定します。例えば:

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

詳細については、Spring Bootアプリケーションの設定とデプロイを参照してください。

以前のバージョンのSpring Bootサポートフィーチャーを使用していて、Spring Boot 3を使用するようにアプリケーションを移行する場合は、以下の要件に注意してください。

OIDCクライアントにおける秘密鍵JWT認証のサポート

Liberty の OpenID Connect クライアントは、OpenID Connect トークンのエンドポイントで private_key_jwt クライアント認証メソッドをサポートするようになりました。

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

クライアントアプリケーションでは、tokenEndpointAuthMethod 属性の private_key_jwt オプションと、クライアントの server.xml ファイルの openidConnectClient 要素または oidcLogin 要素の tokenEndpointAuthSigningAlgorithm 属性と keyAliasName 属性を使用して、この機能を有効にします。

例えば、OpenID Connect Clientフィーチャーを使用する場合、以下の設定を含めます。

<featureManager>
   <feature>openidConnectClient-1.0</feature>
</featureManager>
    ...
<openidConnectClient tokenEndpointAuthMethod="private_key_jwt" keyAliasName="privateKeyJwtAliasRS512" ... />

ソーシャルメディア・ログイン機能を使用する場合は、以下の設定を含めます。

<featureManager>
    <feature>socialLogin-1.0</feature>
</featureManager>
...
<oidcLogin tokenEndpointAuthMethod="private_key_jwt" tokenEndpointAuthSigningAlgorithm="E512" keyAliasName="privateKeyJwtAliasES512" ... />

tokenEndpointAuthSigningAlgorithm 属性は、クライアント認証に使われる JWT に署名するアルゴリズムを指定します。keyAliasName 属性は JWT に署名するために使用する鍵を指し、秘密鍵に対応する公開鍵の別名でなければなりません。秘密鍵は、OIDCクライアント構成で sslRef によって参照されるSSL構成によって指定されるキーストアになければなりません。公開鍵は以下のいずれかの場所にある必要があります。

  • trustStoreRef 属性で指定されたトラストストア

  • sslRef によって参照されるSSL設定によって指定されるトラストストア

  • sslRef で参照されるSSL設定によって指定されるキーストア

設定オプションの詳細については、ドキュメントをご参照ください。

JWT認証の詳細については、以下を参照してください。

以前のリリースでは、LTPAとJWTのCookieは常にCookieパスが`/`に設定されていたので、ドメイン上のどのパスに対して行われたリクエストもCookieを含んでいました。LTPAまたはJWTクッキーのパスをアプリケーションコンテキストルートに設定できるようになりました。この設定によって、アプリケーションごとに異なる LTPA と JWT トークンを使うことができます。

` webAppSecurity` エレメントの useContextRootForSSOCookiePath 属性を有効にします。例えば、server.xml に以下の行を追加します。

<webAppSecurity useContextRootForSSOCookiePath="true"/>

Open LibertyのLTPAの詳細については、ドキュメントをご参照ください。

今すぐOpen Liberty 23.0.0.9を入手する