43 WebLogic ServerでのJakarta Securityの使用

Jakarta Security仕様を使用すると、アプリケーション内ですべてのセキュリティ情報を直接定義できます。セキュリティ構成を外部で構成せずにアプリケーション内にバンドルすることで、アプリケーションのライフサイクルの管理を向上させることができます。特に、マイクロサービスがコンテナに分散されている環境においてはこれが有効です。

Jakarta Securityの概要

Jakarta Security仕様は、移植可能な認証メカニズムや、SecurityContextインタフェースを使用したプログラムによるセキュリティのためのアクセス・ポイントを定義します。WebLogic Serverでは、Webコンテナ内でこれらの認証メカニズムがサポートされ、サーブレットおよびEJBコンテナ内でSecurityContextインタフェースがサポートされています。

WebLogic Serverは、認証用のプラグイン・インタフェースであるHttpAuthenticationMechanismをサポートしており、仕様に定義されているBASIC、FORMおよびカスタムFORM認証メカニズムに対する組込みサポートを備えています。また、WebLogic Serverは、RememberMeIdentityStoreインタフェース、およびIdentityStoreインタフェース(LDAPアイデンティティ・ストアとデータベース・アイデンティティ・ストア)とカスタム・アイデンティティ・ストアの組込み実装もサポートしています。

HttpAuthenticationMechanismインタフェースは、既存のJakarta Authenticationおよびサーブレット認証メカニズムの長所を活用できるように設計されています。IdentityStoreインタフェースは主にHttpAuthenticationMechanism実装での使用を目的としたものですが、理論上は他のタイプの認証メカニズム(Jakarta Authentication ServerAuthModuleなど)でも使用できます。HttpAuthenticationMechanism実装でIdentityStoreを使用することは必須ではなく、どのような方法でもユーザーを認証できますが、IdentityStoreインタフェースが有用で便利なメカニズムです。

HttpAuthenticationMechanismインタフェースとIdentityStoreインタフェースはCDI Beanとして実装されるため、CDIを介してコンテナから参照できます。WebLogic ServerでのCDIのサポートの詳細は、『Oracle WebLogic Serverアプリケーションの開発』Jakarta EEプラットフォーム向けコンテキストと依存性注入の使用に関する項を参照してください。

SecurityContextインタフェースは、アプリケーションが呼出し側に関するセキュリティ情報にアクセスし、呼出し側を認証し、呼出し側を認可できるようにするメソッドを定義します。

Jakarta Securityのプログラミング・モデルは、https://jakarta.ee/specifications/security/の仕様で定義されています。

WebLogic ServerでのJakarta Securityの使用の詳細は、『WebLogicセキュリティ・サービスによるアプリケーションの開発』Jakarta Securityの使用に関する項を参照してください。

Jakarta Securityを使用するための前提条件

Jakarta Security仕様のメカニズムを使用するには特定の構成は必要ありませんが、Jakarta AuthenticationやJakarta Contexts and Dependency Injection (CDI)などの他の機能が有効になっていることを確認する必要があります。

WebLogic ServerでJakarta Security機能を使用するには:

  • Jakarta Security機能を有効にするには、ドメイン・レベルでJakarta Authenticationを有効にする必要があります。デフォルトでは、WebLogic Serverのドメインに対してJakarta Authenticationが有効になっています。ドメイン・レベルでJakarta Authenticationを無効にすると、Jakarta Security機能も無効になります。

  • CDI仕様(https://jakarta.ee/specifications/cdi/)で規定されているように、WebアプリケーションではアプリケーションのWARファイルまたはEARファイルにbeans.xmlデプロイメント記述子ファイルを含める必要があります。

  • Webアプリケーションのweb.xmlファイル内のmetadata-complete属性は、trueに設定しないでください。WebLogic Serverでのデフォルトはfalseです。

  • 特別なロギング要件はありません。Jakarta Security仕様の実装によってトリガーされた監査イベントは、WebLogic監査プロバイダ(構成されている場合)によってログに記録されます。

  • Jakarta Security仕様では、グループ・プリンシパル名がデフォルトで同じ名前のロールにマップされている必要があります。weblogic.xmlデプロイメント記述子のsecurity-role-assignment要素が、WebLogic Serverセキュリティ・レルムでセキュリティ・ロールと1つ以上のプリンシパルとの間のマッピングを宣言していない場合、ロール名がデフォルトのプリンシパルとして使用されます。