Red Hat OpenShift Container Platform 上の Open RUN 21.0.0.5 のリリースノート

Open Liberty 2021

Red Hat OpenShift Container Platform での Open RUN 2021 リリースノート

概要

本リリースノートには、Red Hat OpenShift Container Platform リリースの Open RUN 2021 に含まれる新機能、機能拡張、修正、および問題に関する最新情報が含まれています。

第1章 機能

Open RUN 21.0.0.5 は新しい Kerberos 認証方法で完了しており、LDAP ユーザーレジストリーの使用によって簡単に使用でき、同じソースから発信された接続を迅速に認証することができます。また、JAX-RS クライアントおよびサービスを使用してマルチパートペイロードを作成し、交換する機能もあります。

Open RUN 21.0.0.5 では、以下の ようになります。

1.1. 21.0.0.5 を使用したアプリケーションの実行

Maven を使用している場合は、以下のコーディネートです。

<dependency>
    <groupId>io.openliberty</groupId>
    <artifactId>openliberty-runtime</artifactId>
    <version>21.0.0.5</version>
    <type>zip</type>
</dependency>

または Gradle の場合:

dependencies {
    libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[21.0.0.5,)'
}

または、Docker を使用している場合は、以下を実行します。

FROM open-liberty

1.1.1. Kerberos 認証の LDAP 接続サポート

LDAP バインド操作は、ディレクトリーサーバーにクライアント(およびその背後でのアプリケーションやアプリケーション)を認証するために使用されます。これにより、その接続で処理される後続の操作に使用される承認アイデンティティーが確立され、クライアントが使用する LDAP プロトコルバージョンが指定されます。今回の更新以前は、LdapRegistry 要素 は匿名でバインディング、またはユーザー(bindDN)およびパスワード(bindPassword)での簡易認証の使用をサポートしていました。今回の更新で、LDAP: GSSAPI/Kerberos にバインドするオプションが追加されました。Kerberos は、クライアントとサーバーがキー配布センター(KDC)による相互認証を可能にする認証メカニズムです。Open RUN 21.0.0.5 では、Kerberos 認証情報キャッシュ(ccache)または Kerberos キータブファイルのいずれかを使用できます。

GSSAPI/Kerberos オプションを使用 するよう に LdapRegistry を更新するには、新しい LdapRegistry 属性 である bindAuthMechanism を使用して、バインド認証メカニズムタイプを設定し ます

bindAuthMechanism="GSSAPI"

Kerberos プリンシパルまたはサービスプリンシパル名も必要です。

krb5Principal="user1@EXAMPLE.COM"

Kerberos 認証情報キャッシュ(チケットキャッシュまたは ccache)を使用して Kerberos 認証情報を保存する場合は、新しい 属性 krb5TicketCache を使用して、チケットキャッシュファイル名を LdapRegistry に追加します

krb5TicketCache="${server.config.dir}/security/krb5-user1.cc"

カスタムの Kerberos 設定ファイル(krb.conf または krb.ini)を使用している場合は、グローバル Kerberos 設定要素を使用してファイル名を設定します。

<kerberos configFile="${server.config.dir}/security/krb5.conf"/>

Kerberos キータブファイルを使用してプリンシパルの暗号化キーを保存する場合は、グローバル Kerberos 設定要素を使用してファイルを設定します。

<kerberos keytab="${server.config.dir}/security/krb5.keytab" configFile="${server.config.dir}/security/krb5.conf"/>

Kerberos 設定ファイルが定義されていない場合は、JDK のデフォルトの場所とオペレーティングシステムのデフォルトロケーションを使用して、Open RUN が解決を試みます。

Kerberos 認証情報では、場所はチケットキャッシュ(指定されている場合)、設定済みのキータブファイル、JDK のデフォルトの場所など順にチェックされます。

以下の例は、チケットキャッシュおよびカスタムの Kerberos 設定ファイルを使用して LdapRegistry 要素 を設定する方法を示しています。

<kerberos keytab="${server.config.dir}/security/krb5.keytab" configFile="${server.config.dir}/security/krb5.conf"/>

<ldapRegistry id="LDAP" realm="SampleLdapADRealm" host="ldap_hostname" port="389" ignoreCase="true" baseDN="DC=example,DC=com" bindAuthMechanism="GSSAPI" krb5Principal="user1@EXAMPLE.COM" krb5TicketCache="${server.config.dir}/security/krb5-user1.cc" ldapType="Custom" />

以下の例は、キータブおよびカスタム Kerberos 設定ファイルを使用して LDAP レジストリーを設定する方法を示しています。

<kerberos keytab="${server.config.dir}/security/krb5.keytab" configFile="${server.config.dir}/security/krb5.conf" />

<ldapRegistry id="LDAP" realm="SampleLdapADRealm" host="ldap_hostname" port="389" ignoreCase="true" baseDN="DC=example,DC=com" bindAuthMechanism="GSSAPI" krb5Principal="user1@EXAMPLE.COM" ldapType="Custom" />

LdapRegistry の詳細は、LDAP User Registry のドキュメント参照してください

アプリケーションでこの新機能を有効にするには、LDAP User Registry 3.0 機能を server.xml ファイルに追加します。

<featureManager>
  <feature>ldapRegistry-3.0</feature>
</featureManager>

1.2. JAX-RS クライアントおよびサービス用のマルチパートペイロードの構築

通常、RESTful サービスまたはクライアントは、同じ要求に複数の分散部分を送信する必要があります。たとえば、名前とアドレスの画像やテキストを含む、再開/CV のアップロードなどが必要です。これは通常 multipart/form-data を使用して行います。

現在、ユーザーは multipart/form-data ペイロードを 受信 できるようにする API がありますが、現在は複数のパートペイロードを 送信 する API はありません。新しい AttachmentBuilder API を使用すると、ユーザーは JAX-RS クライアントから multipart リクエストを送信したり、JAX-RS リソースからの応答としてマルチパートペイロードを送信できるようになりました。

マルチパートリクエストを送信するには、jaxrs-2.0 または jaxrs- 2.1 機能を有効にする必要があります。たとえば、JAX-RS を使用している場合、これらの機能の 1 つが有効になっています。マルチパートペイロードを送信するには、List<IAttachment> のインスタンスを送信し ます。この一覧の各オブジェクトは、単一の添付部分を表します。以下は、JAX-RS クライアントから multipart リクエストを作成して送信する例です。

List<IAttachment> attachments = new ArrayList<>();

attachments.add(AttachmentBuilder.newBuilder("blogPost")
                                 .inputStream(new FileInputStream("/path/to/yesterdaysBlogPost.xml"))
                                 .fileName("myRenamedBlogPost.asciidoc")
                                 .contentType("text/asciidoc")
                                 .contentId("myBlogPostID")
                                 .header("X-PriorityLevel", "Medium")
                                 .build());

attachments.add(AttachmentBuilder.newBuilder("file1")
                                 .inputStream("some.xml", new FileInputStream("/path/to/myPicture.png"))
                                 .contentType("image/png")
                                 .build());

attachments.add(AttachmentBuilder.newBuilder("authorName")
                                 .inputStream(new ByteArrayInputStream("John Doe".getBytes()))
                                 .build());

Response response = client.target(BLOG_SITE_URI)
                          .request()
                          .post(Entity.entity(attachments, MediaType.MULTIPART_FORM_DATA));

詳細は、以下を参照してください。

1.3. Java SE 16 のサポート

AdoptOpenJDKOracle などの OpenJDK ベンダーからの公式 Java SE 16 リリースは、Open RUN で動作します。Java SE 16 は長期サポートリリースではないため、標準サポートが 2021 年 9 月に終了します。

Eclipse OpenJ9 は通常、Hotspot よりも起動時間を短縮 することに注意してください。

本リリースに追加された主な機能には、以下が含まれます。

  • JEP 396 デフォルトで正しくない JDK Internalsulate JDK Internalsongly Encapsulate JDK Internals
  • JEP 395 レコード
  • JEP 386 Alpine Linux Port
  • JEP 376 同時スレッド固有処理
  • JEP 397 セカンダリークラス(スプレープレビュー)
  • JEP 338 Vector API(Incubator)

Java 16 のバージョンのダウンロードに関する詳細は、「 AdoptOpenJDK.net, Eclipse. org or OpenJDK. java.net 」を参照してください。

Open RUN で server.env ファイルを使用する方法は、Open RUN Server Configuration Overview ドキュメントの「 Configuration Files 」セクションを参照してください。

Java 16 で利用可能な新機能の詳細は「 OpenJDK 」を参照してください。

第2章 解決された問題

リリースで解決した Open RUN 21.0.0.5 の問題を参照して ください。

第3章 修正された CVE

Open RUN 21.0.0.5 で修正された CVE の一覧は、「 セキュリティーの脆弱性 」を参照してください。

第4章 既知の問題

21.0.0.5 の開発中は見つかった問題の一覧を参照してください