第3章 新機能および改良された機能

3.1. セキュリティー

Elytron 監査ロギングのパフォーマンスおよび信頼性の調整

JBoss EAP 7.2 では、Elytron ファイル監査ロギングの syncronized 属性により、出力ストリームをフラッシュし、ファイル記述子をすべての監査イベントの後に同期するかどうかが定義されていました。

本リリースでは、ストリームのフラッシュとファイル同期を分離するための新しい autoflush 属性が導入されました。これにより、Elytron 監査ロギングのパフォーマンスおよび信頼性を詳細に調整できるようになりました。

Elytron 監査ロギングの設定に関する詳細は、JBoss EAP『 How to Configure Server Security 』の「 Elytron Audit Logging 」を参照してください。

JwtValidator の改良

本リリースでは、JwtValidator に複数のキーとリモート公開鍵のサポートが追加されました。key-store 属性が、public-key の代替として使用できる certificate 属性と組み合わせ可能になりました。client-ssl-context 属性は、リモート JSON Web Key(JWK)に使用する SSL コンテキストを定義します。これにより、jku (JSON Key URL) ヘッダーパラメーターの URL を使用して、トークンの検証用に公開鍵を取得できます。

詳細は、JBoss EAP『 How to Configure Server Security』の「 token-realm jwt Attributes」 表を参照してください。

デフォルトの SSLContext

今回のリリースでは、デフォルトの SSLContext を起動時に登録するようになりました。これは、デフォルトのコンテキストを利用可能なライブラリーで使用できます。

詳細は、JBoss EAP『 How to Configure Server Security』の「 Default SSLContext 」を 参照してください。

Elytron を使用した JASPI (Java Authentication SPI for Containers) のセキュリティー

このリリースの elytron サブシステムは、JASPI (Java Authentication SPI for Containers) からの Servlet プロファイル実装を行うことができます。これにより、Elytron のセキュリティー機能とのより密接な統合が可能になります。

詳細は、JBoss EAP『開発ガイド』の「 Elytron を使用した Java Authentication SPI(JASPI)セキュリティーの設定 」を 参照 してください。

Server SSL Server Name Indication (SNI) コンテキスト

本リリースの server-ssl-sni-context は、サーバー側の SNI 一致に使用されます。与えられたホスト名がいずれも一致しない場合のデフォルトとともに、ホスト名を SSL コンテキストに関連付けるためのマッチングルールを利用できます。

詳細は、JBoss EAP『 How to Configure Server Security 』の「 Using a server-ssl-sni-context 」を参照してください。

キーストアタイプの自動検出

以下のキーストアタイプが自動的に検出されるようになりました。

  • JKS
  • JCEKS
  • PKCS12
  • BKS
  • BCFKS
  • UBER

その他のキーストアタイプは手動で指定する必要があります。

詳細は、JBoss EAP『 How to Configure Server Security 』の 「 Elytron Subsystem Components Reference 」を参照してください。

Elytron での Java EE Security API サポート

elytron サブシステムは JSR 375 で定義した Java EE Security API に対応するようになりました。

Java EE Security API は、認証およびアイデンティティーストアの移植可能なプラグインインターフェースと、プログラムによるセキュリティーのアクセスポイントを提供する新しい injectable-type SecurityContext インターフェースを定義します。これらの API のビルトイン実装を使用するか、カスタム実装を定義することができます。仕様の詳細は、「 Java EE Security API Specification 」を参照してください。

管理 CLI では、最小限の設定手順で、elytron サブシステムにおいて Java EE Security API を有効にできます。

Java EE Security API の有効化に関する詳細は、『開発ガイド』の「 Java EE Security API について 」を参照してください。

Elytron でのサイレント BASIC 認証

elytron サブシステムを設定することで、サイレント BASIC 認証を実行できるようになりました。

サイレント認証が有効になっていると、ユーザーの要求に承認ヘッダーが含まれていない場合でも、Web アプリケーションにアクセスする際にユーザーログインが求められません。

サイレント BASIC 認証の有効化に関する情報は、『 How to Configure Identity Management』の「 Configure Web Applications to Use Elytron or Legacy Security for Authentication 」を参照 してください。

Elytron でプロパティーベースのセキュリティーレルムをファイルシステムレルムに移行するユーティリティー

elytron-tool.sh ツールの filesystem-realm コマンドを使用して、レガシープロパティーベースのセキュリティーレルムを Elytron のファイルシステムベースのレルムに移行できようになりました。

ファイルシステムベースのレルムは、ユーザー ID を保存するための、Elytron で使用されるファイルシステムベースのアイデンティティーストアです。filesystem-realm コマンドは、properties-realm ファイルを filesystem-realm に移行します。また、このレルムとセキュリティードメインを elytron サブシステムに追加するコマンドも生成します。

filesystem-realm コマンドの詳細は、JBoss EAP『 移行ガイド』の「 Migrate to Filesystem-based Security Realm Using the filesystem-realm Command 」を参照 してください。

JDBC レルムでの 16 進数エンコーディングのサポート

Elytron は、JDBC レルムのパスワードハッシュアルゴリズムに対する 16 進数エンコーディングに対応するようになりました。

詳細は、JBoss EAP『 How to Configure Identity Management』のPassword Mappers 」を参照してください。

JDBC レルムでの Modular Crypt Passwords のサポート

Modular Crypt パスワードエンコーディングが JDBC レルムでサポートされるようになりました。

Modular Crypt エンコーディングでは、パスワードタイプ、ハッシュまたはダイジェスト、ソルト (salt)、反復カウント (iteration count) などの複数の情報が単一文字列でエンコードできるようになります。

詳細は、JBoss EAP『 How to Configure Identity Management』のPassword Mappers 」を参照してください。

集約レルムでの承認に複数のセキュリティーレルムを組み合わせる機能

aggregate-realms 属性持つ authorization-realms での承認に複数のセキュリティーレルムを使用できるようになりました。

詳細は、JBoss EAP 『 How to Configure Identity Management』ガイドの「 Configure Authentication and Authorization Using Multiple Identity Stores 」を参照してください。

プリンシパルとして X.509 証明書からのサブジェクトの別名テクステンションを使用できる機能

証明書に関連するプリンシパルとして X.509 証明書からのサブジェクトの別名を使用するように、エビデンスデコーダーを設定できるようになりました。

詳細は、『 How to Configure Server Security』ガイドの「 Configuring Evidence Decoder for X.509 Certificate with Subject Alternative Name Extension 」を 参照してください。

集約エビデンスデコーダーと複数のエビデンスデコーダーを組み合わせられる機能

Elytron では、集約型デコーダーを利用して、2 つ以上のエビデンスデコーダーを単一のデコーダーに統合できます。

詳細は、『 How to Configure Server Security』ガイド の「 Configuring an Aggregate Evidence Decoder 」を 参照してください。

OCSP を使用した証明書失効機能

Elytron は、undertow がロードバランサーとして使用される場合に、RFC6960 に定義される Online Certificate Status Protocol(OCSP)を使用して証明書失効機能を提供するようになりました。

詳細は、JBoss EAP『 How to Configure Server Security 』の「 Using Online Certificate Status Protocol for Certificate Revocation 」を参照してください。

syslog 監査ロギングの改良

Elytron syslog 監査ロギングが、監査イベントを記述するために RFC5424 および RFC 3164 で定義されたログ形式をサポートするようになりました。

新しい属性 reconnect-attempts では、UDP を使用する際に接続を閉じる前に Elytron が連続メッセージを syslog サーバーに送信する最大試行回数を設定できるようになりました。

機能拡張に関する詳細は、JBoss EAP『 How to Configure Server Security 』の「 Syslog Audit Logging 」を参照してください。

マスクしたパスワードの Elytron サポート

Elytron の元の実装は、マスクされたパスワードに対応していませんでした。

JBoss EAP 7.3 では、マスクされたパスワードタイプは PicketBox パスワードとの後方互換性として対応しています。

Let's Ecrypt からのサーバー証明書の取得

JBoss EAP 7.2 では、SSL の管理を行うために基本的な CLI コマンドが追加されていました。

JBoss EAP 7.3 では、これらのコマンドは、Let’s Encrypt 認証局からサーバー証明書を取得するように強化されています。

集約レルムに追加されたプリンシパルトランスフォーマー

Elytron には集約セキュリティーレルムが含まれます。これは、認証レルムと 1 つ以上の承認レルムなど、2 つ以上のレルムを組み合わせたものです。

JBoss EAP 7.2 以前では、認証 ID の読み込み後および承認 ID の読み込み前でプリンシパルを変換する機能はありませんでした。

現在では、集約レルムは、マッパーの設定で定義されたプリンシパルトランスフォーマーで設定でき、この変換を実行できます。

Elytron リソース filesystem-realm サポート

JBoss EAP 7.1 および 7.2 では、filesystem-realm はテクノロジープレビューとして利用できました。

本リリースでは、ファイルシステムでサポートされる Elytron リソース定義として filesystem-realm がサポートされるようになりました。

本リリースではデフォルトで有効になっている AJP コネクター

JBoss EAP 7.3 では undertow サブシステムの AJP コネクターはデフォルトで有効になっています。AJP コネクターはこのサブシステムの潜在的なセキュリティーリスクとして特定されました。

この リスク を解決するための推奨される方法は、https://access.redhat.com/solutions/4851251 を参照してください。

HTTP 管理エンドポイントのカスタムヘッダー

以前のリリースの JBoss EAP には、管理インターフェースでエンドポイントのカスタム HTTP ヘッダーを定義する機能が含まれませんでした。

JBoss EAP 7.3 では、新しい属性 constant-headers が HTTP 管理インターフェースリソース定義に追加されます。管理者は、この属性を使用して JBoss EAP の追加 HTTP ヘッダーを指定し、HTTP 管理インターフェースに対するリクエストに応答したときに返すことができます。