WebLogic セキュリティ プロバイダの開発
![]() |
![]() |
![]() |
![]() |
以下の節では、セキュリティ プロバイダの開発についての概要を示します。
この『WebLogic セキュリティ プロバイダの開発』マニュアルは、WebLogic Server 用のセキュリティ プロバイダを独自に作成しようとお考えの独立系ソフトウェア ベンダ (ISV) を対象としています。ここでは、このマニュアルをお読みになる ISV の大半はセキュリティの概念をしっかりと理解している高機能アプリケーションの開発者であり、セキュリティの基礎概念については説明を要しないものと想定しています。また、このマニュアルでは、セキュリティ ベンダおよびアプリケーション開発者は BEA WebLogic Server と Java (JMX (Java Management eXtensions) を含む) に精通しているものと想定しています。
このガイドを読む前に、『WebLogic Security について』の以下の節に目を通しておいてください。
WebLogic Server のセキュリティには、この他に理解しておく必要のある固有の用語や概念が多数あります。WebLogic Server のセキュリティ関連マニュアルに登場するこうした用語と概念については、『WebLogic Security について』の「用語」および「セキュリティの基礎概念」で定義されています。
この節では、新しいセキュリティ プロバイダを開発するプロセスの概要を説明します。各手順の詳細については、このマニュアルの中で後述します。
カスタム セキュリティ プロバイダの主な開発手順は以下のとおりです。
WebLogic セキュリティ プロバイダの説明は、『WebLogic Security について』の「WebLogic セキュリティ プロバイダ」とこのマニュアルの「カスタム <Provider_Type> プロバイダを開発する必要があるか」という節にあります。
『WebLogic Security について』の「セキュリティ プロバイダのタイプ」で説明されているように、タイプは認証、ID アサーション、プリンシパル検証、認可、裁決、ロール マッピング、監査、資格マッピング、バージョン管理可能なアプリケーション、証明書パスのいずれかです。カスタム セキュリティ プロバイダは、WebLogic Server にあらかじめ用意されている WebLogic セキュリティ プロバイダの補強または代わりとして使用できます。
さまざまなセキュリティ プロバイダ タイプの SSPI の説明については、「セキュリティ サービス プロバイダ インタフェース (SSPI)」を参照してください。要約は、「SSPI クイック リファレンス」で参照できます。
それらのオプションの詳細については、「SSPI 階層を理解し、実行時クラスを 1 つ作成するのか 2 つ作成するのかを決定する」を参照してください。
SSPI MBean の詳細については、「セキュリティ サービス プロバイダ インタフェース (SSPI) MBean」を参照してください。要約は、「SSPI MBean クイック リファレンス」で参照できます。
それら 2 つのデータベース初期化オプションの詳細については、「セキュリティ プロバイダ データベースの初期化」を参照してください。
詳細については、「セキュリティ プロバイダと WebLogic リソース」を参照してください。
1 つまたは 2 つの実行時クラスにおいて、各メソッドの実装を提供することによって特定された SSPI を実装します。それらのメソッドには、カスタム セキュリティ プロバイダから提供されるセキュリティ サービスの具体的なアルゴリズムが組み込まれていなければなりません。それらのメソッドには、サービスがどのように動作すべきであるかが記述されています。
このタスクの手順は、作成するセキュリティ プロバイダのタイプによって異なります。この手順については、各セキュリティ プロバイダの詳細に関する節の「適切な SSPI による実行時クラスの作成」を参照してください。
MDF の詳細については、「MBean 定義ファイル (MDF) の基本的な要素について」を参照してください。このタスクの手順については、各セキュリティ プロバイダの詳細に関する節の「MBean 定義ファイル (MDF) を作成する」を参照してください。
WebLogic MBeanMaker について、および WebLogic MBeanMaker がどのように MDF を使用して Java ファイルを生成するかについては、「WebLogic MBeanMaker によって提供されるものについて」を参照してください。このタスクの手順については、各セキュリティ プロバイダの詳細に関する節の「WebLogic MBeanMaker を使用して MBean タイプを生成する」を参照してください。
コンソール拡張を使用すると、JavaServer Pages (JSP) を WebLogic Server Administration Console に追加して、カスタム セキュリティ プロバイダの管理とコンフィグレーションをサポートできます。コンソール拡張を使用すると、存在しない Administration Console サポートを追加したり、管理目的の対話をカスタマイズしたりできます。
WebLogic Server Administration Console でカスタム セキュリティ プロバイダ用の完全なコンフィグレーションおよび管理サポートを利用するには、以下の場合にコンソール拡張を記述する必要があります。
BEA では、MBean タイプの生成 (「カスタム セキュリティ プロバイダをコンフィグレーションおよび管理する MBean タイプの生成」を参照) によってカスタム セキュリティ プロバイダをコンフィグレーションおよび管理することをお勧めします。しかし、ユーザが記述したコンソール拡張を介してカスタム セキュリティ プロバイダを完全にコンフィグレーションおよび管理することもできます。
任意 SSPI MBean を実装してカスタム認証プロバイダを開発する場合は、Administration Console で MBean タイプの属性が自動的にサポートされることになります (任意 SSPI MBean から継承される)。カスタム認可プロバイダなどの他のタイプのカスタム セキュリティ プロバイダでは、このサポートは受けられません。
カスタム セキュリティ プロバイダの [詳細] タブにカスタム属性が自動的に表示されるのは、それらがシンプルなデータ型 (文字列、MBean、ブール、整数値) として表される場合のみです。非定型のデータ型 (フィンガープリントのイメージなど) として表されるカスタム属性がある場合、Administration Console ではカスタマイズを行わない限りその属性を表示できません。
Administration Console は、以下の場合にも拡張します。
コンソールの拡張の詳細については、『Administration Console の拡張』を参照してください。
注意 : コンフィグレーション プロセスは、カスタム セキュリティ プロバイダを開発した本人、または指定された管理者が遂行できます。
コンフィグレーション プロセスでは、WebLogic Server Administration Console を使用してカスタム セキュリティ プロバイダにコンフィグレーション情報を提供します。カスタム セキュリティ プロバイダを管理するための MBean タイプを生成している場合、Administration Console でカスタム セキュリティ プロバイダを「コンフィグレーション」することは、MBean タイプの特定のインスタンスを作成することも意味します。
Administration Console によるセキュリティ プロバイダのコンフィグレーションの詳細については、『WebLogic Server のセキュリティ』を参照してください。
特定のタイプのセキュリティ プロバイダでは、それらに関連付けられているセキュリティ データを管理する方法を管理者に提供する必要があります。たとえば認可プロバイダでは、セキュリティ ポリシーを管理する方法を管理者に提供しなければなりません。同じように、ロール マッピング プロバイダではセキュリティ ロールを、資格マッピング プロバイダでは資格マップを管理する方法が管理者に必要になります。
WebLogic 認可、ロール マッピング、および資格マッピングの各プロバイダの場合、管理者用の管理メカニズムが WebLogic Server Administration Console にすでに用意されています。ただし、これらのセキュリティ プロバイダのカスタム版を開発する場合はこれらのメカニズムを継承しないで、セキュリティ ポリシー、セキュリティ ロール、および資格マップを管理するための独自の方法を提供する必要があります。これらのメカニズムにはカスタム セキュリティ プロバイダのデータベースから適切なセキュリティ データを読み書きすることが必須となりますが、Administration Console とは統合しても統合しなくてもかまいません。
このリリースでは、WebLogic Security サービスに以下の機能が追加されています。
WebLogic Security サービスは、着信双方向 SSL、発信 SSL、アプリケーション コード、および WebLogic Web サービスについて、X509 証明書チェーンを検索および検証するフレームワークを提供します。証明書の検索と検証 (CLV) フレームワークは、証明書チェーンを検索および検証する新しいセキュリティ プラグイン フレームワークです。CLV フレームワークは、JDK 証明書パス機能を拡張および完了し、カスタム証明書パス プロバイダを作成できるようにします。
サーブレット認証フィルタは、ID アサーションおよび認証機能のための前処理および後処理を実行する新しいタイプのプロバイダです。サーブレット認証フィルタを使用すると、再利用可能なユニットで反復タスクをカプセル化し、サーブレットまたは JSP ページからの応答を変換できます。
バージョン管理可能なアプリケーションのプロバイダ SSPI を使用すると、バージョンが作成および削除されたときに、アプリケーションのバージョン管理をサポートするすべてのセキュリティ プロバイダに通知できます。また、バージョンが 1 つしかないアプリケーションが削除された場合にも、アプリケーションのバージョン管理をサポートするすべてのセキュリティ プロバイダに通知できます。
チャレンジ ID アサーション インタフェースは、複数のチャレンジ、応答メッセージ、および状態を必要とするチャレンジ応答スキーマをサポートします。チャレンジ ID アサーション プロバイダ インタフェースを使用すると、ID アサーション プロバイダは、Microsoft の Windows NT チャレンジ/応答 (NTLM) や SPNEGO (Simple and Protected GSS-API Negotiation) などのチャレンジ/応答認証メカニズムを採用した認証プロトコルをサポートできます。
weblogic.security.services.Authentication クラスが拡張され、サーブレット認証フィルタからの複数のチャレンジ/応答 ID アサーションが可能になりました。新しいメソッドおよびインタフェースでは、ChallengeIdentityAsserterV2 インタフェースと ProviderChallengeContext インタフェースに対してラッパーを利用できるので、サーブレット認証フィルタから呼び出すことができます。
このリリースでは、監査プロバイダは AuditorMBean および mixin インタフェース ContextHandlerMBean を実装できます。ContextHandlerMBean は、ContextHandler がサポートする一連の属性を提供します。このインタフェースを使用すると、コンテキスト ハンドラ エントリを標準的な方法でサポートする監査プロバイダを管理できます。監査プロバイダ MBean は、ContextHandlerMBean の MBean を必要に応じて実装できます。監査プロバイダは、この MBean を使用して、サポートされているアクティブな ContextHandler エントリを判別します。
ApplicationInfo インタフェースは、アプリケーションのデプロイメントに関するデータをセキュリティ プロバイダに渡します。このデータを使用すると、アプリケーションをユニークに識別できます。セキュリティ フレームワークは、ユーザの利便を図るために ApplicationInfo インタフェースを実装します。このインタフェースのメソッドを実装する必要はありません。DeployableAuthorizationProviderV2 インタフェースと DeployableRoleProviderV2 インタフェースは ApplicationInfo を使用します。
WebLogic Server のこのリリースでは、以下の新しいプロバイダが追加されました。
AdjudicationProviderV2
AdjudicatorV2
AuditAtnEventV2
AuthenticationProviderV2
CertPathProvider
ChallengeIdentityAsserterV2
CredentialMapperV2
CredentialProviderV2
DeployableAuthorizationProviderV2
DeployableRoleProviderV2
IdentityAsserterV2
VersionableApplicationProvider
ApplicationInfo
ServletAuthenticationFilter
CertPathBuilderParameters
CertPathValidatorParameters
ChallengeIdentityAsserterV2
AppChallengeContext
コンテキスト ハンドラは、リソース コンテナからの付加的なコンテキストおよびコンテナ固有の情報を含んでおり、その情報をアクセス決定またはロール マッピング決定を行うセキュリティ プロバイダに提供します。コンテキスト ハンドラは、以下のメソッドについて使用できるようになりました。
![]() ![]() |
![]() |
![]() |