BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Security サービスの開発

 Previous Next Contents Index PDF で侮ヲ  

資格マッピング プロバイダ

資格マッピングとは、対象リソースにアクセスするユーザを認証するための適切な資格群を、レガシー システムの認証メカニズムを用いて取得するプロセスのことです。WebLogic Server では、資格マッピング プロバイダを使用して資格マッピング サービスを提供し、新しいタイプの資格を WebLogic Server 環境に導入します。

以下の節では、資格マッピング プロバイダの概念と機能、およびカスタム資格マッピング プロバイダの開発手順について説明します。

 


資格マッピングの概念

サブジェクト、つまり WebLogic リソース リクエストの発信元は、資格というセキュリティ関連の属性を持っています。資格には、新しいサービスにアクセスするサブジェクトを認証するための情報が含まれています。こうした資格には、ユーザ名/パスワードの組み合わせ、Kerberos チケット、および公開鍵証明書などがあります。また、サブジェクトが特定のアクティビティを実行することを許可するデータも資格に含まれています。たとえば、暗号鍵が表す資格を持っていれば、サブジェクトは署名したり、データを暗号化したりすることができます。

資格マップは、WebLogic Server で使用される資格と、レガシー システム (またはリモート システム) で使用される資格とのマッピングであり、そのシステムの特定のリソースへの接続方法を WebLogic Server に指示します。つまり、資格マップを使用することで、WebLogic Server は認証済みサブジェクトに代わってリモート システムにログインできます。資格マッピング プロバイダを開発すると、資格をこのようにマップできます。

 


資格マッピング プロセス

資格マッピング プロバイダと WebLogic Security フレームワークとの対話を図 11-1 に示し、その後それについて説明します。

図11-1 資格マッピング プロバイダと資格マッピング プロセス


 

一般に、資格マッピングは以下のように実行されます。

  1. JavaServer Page (JSP)、サーブレット、エンタープライズ JavaBean (EJB)、リソース アダプタなどのアプリケーション コンポーネントは、適切なリソース コンテナを通じて WebLogic Security フレームワークを呼び出します。呼び出しの中で、アプリケーション コンポーネントは、サブジェクト (「誰が」要求しているのか)、WebLogic リソース (「何を」要求しているのか)、および WebLogic リソースにアクセスするために必要な資格のタイプについての情報を渡します。

  2. WebLogic Security フレームワークは、資格に対するアプリケーション コンポーネントのリクエストを、アプリケーション コンポーネントが必要としている資格のタイプを処理するコンフィグレーション済み資格マッピング プロバイダに送信します。

  3. 資格マッピング プロバイダは、レガシー システムのデータベースを照会して、アプリケーション コンポーネントが要求しているものに一致する資格群を取得します。

  4. 資格マッピング プロバイダは、資格を WebLogic Security フレームワークに返します。

  5. WebLogic Security フレームワークは、リソース コンテナを通じて要求側のアプリケーション コンポーネントに資格を返します。

    アプリケーション コンポーネントは、資格を使用して外部システムにアクセスします。外部システムには、Oracle や SQL Server などのデータベース リソースがあります。

 


カスタム資格マッピング プロバイダを開発する必要があるか

WebLogic Server のデフォルト (つまりアクティブな) セキュリティ レルムには WebLogic 資格マッピング プロバイダが含まれています。WebLogic 資格マッピング プロバイダは、WebLogic Server のユーザおよびグループを、他の外部システムが必要とする適切なユーザ名/パスワード資格にマップします。必要な資格マッピングが WebLogic Server のユーザおよびグループと他のシステムのユーザ名/パスワードとの間のマッピングであれば、WebLogic 資格マッピング プロバイダで十分です。しかし、WebLogic Server のユーザおよびグループを他のタイプの資格 (Kerberos チケットなど) にマップしたい場合は、カスタム資格マッピング プロバイダを開発する必要があります。

 


カスタム資格マッピング プロバイダの開発方法

WebLogic 資格マッピング プロバイダが開発者の要求を満たさない場合、次の手順でカスタム資格マッピング プロバイダを開発することができます。

  1. 適切な SSPI を使用して実行時クラスを作成する

  2. WebLogic MBeanMaker を使用して MBean タイプを生成する

  3. Administration Console を使用してカスタム資格マッピング プロバイダをコンフィグレーションする

  4. 資格マップを管理するためのメカニズムを提供する

適切な SSPI を使用して実行時クラスを作成する

実行時クラスを作成する前に、以下の作業が必要です。

この情報を理解し、設計に関する判断を下したら、次の手順でカスタム資格マッピング プロバイダの実行時クラスを作成します。

注意: セキュリティ レルムでは、少なくとも 1 つの資格マッピング プロバイダが DeployableCredentialProvider SSPI を実装する必要があり、そうでなければリソース アダプタをデプロイすることが不可能になります。

CredentialProvider SSPI を実装する

CredentialProvider SSPI を実装するには、「Provider」SSPI の目的を理解する で説明されているメソッドと以下のメソッドの実装を提供する必要があります。

getCredentialProvider

public CredentialMapper getCredentialProvider();

getCredentialProvider メソッドは、CredentialMapper SSPI の実装を取得します。MyCredentialMapperProviderImpl.java という 1 つの実行時クラスの場合 (図 2-3を参照)、getCredentialProvider メソッドの実装は次のようになります。

return this;

実行時クラスが 2 つの場合、getCredentialProvider メソッドの実装は次のようになります。

return new MyCredentialMapperImpl;

この理由は、CredentialProvider SSPI を実装する実行時クラスが、CredentialMapper SSPI を実装するクラスを取得するためのファクトリとして使用されるからです。

CredentialProvider SSPI および getCredentialProvider メソッドの詳細については、WebLogic Server 7.0 API リファレンス Javadoc を参照してください。

DeployableCredentialProvider SSPI を実装する

DeployableCredentialProvider SSPI を実装するには、「Provider」SSPI の目的を理解するおよびCredentialProvider SSPI を実装するで説明されているメソッドと以下のメソッドの実装を提供する必要があります。

deployCredentialMapping

public void deployCredentialMapping(Resource resource, String initiatingPrincipal, String eisUsername, String eisPassword)throws ResourceCreationException;

deployCredentialMapping メソッドは、資格マップをデプロイします (つまり、デプロイ済みのリソース アダプタに代わって資格マッピングをデータベースに作成します)。マッピングが既に存在する場合、マッピングは削除され、このマッピングによって置き換えられます。resource パラメータは、String で表される開始元プリンシパルがアクセスを要求している WebLogic リソースを表します。エンタープライズ情報システム (EIS) のユーザ名およびパスワードは、資格のマップ先のレガシー システム (リモート システム) における資格です。

undeployCredentialMappings

public void undeployCredentialMappings(Resource resource) throws ResourceRemovalException;

undeployCredentialMappings メソッドは、資格マップをアンデプロイします (つまり、アンデプロイ済みのリソース アダプタに代わって資格マッピングをデータベースから削除します)。resource パラメータは、マッピングを削除する WebLogic リソースを表します。

注意: deployCredentialMapping/undeployCredentialMappings メソッドは、ユーザ名/パスワード資格のみを操作します。

DeployableCredentialProvider SSPI および deployCredentialMapping/undeployCredentialMappings メソッドの詳細については、WebLogic Server 7.0 API リファレンス Javadoc を参照してください。

CredentialMapper SSPI を実装する

CredentialMapper SSPI を実装するには、以下のメソッドの実装を提供する必要があります。

getCredentials

public java.util.Vector getCredentials(Subject requestor, Subject initiator, Resource resource, String[] credentialTypes);

getCredentials メソッドは、サブジェクトの ID に基づいて、対象リソースの適切な資格群を取得します。このバージョンのメソッドは、リモート システムのデータベースに照会して、サブジェクト内のすべてのプリンシパルに関して一致する資格のリストを (ベクトルとして) 返します。

getCredentials

public java.lang.Object getCredentials(Subject requestor, String initiator, Resource resource, String[] credentialTypes);

getCredentials メソッドは、サブジェクトの ID に基づいて、対象リソースの適切な資格群を取得します。このバージョンのメソッドは、リモート システムのデータベースに照会して、指定されたサブジェクトの資格を 1 つ (オブジェクトとして) 返します。

CredentialMapper SSPI および getCredentials メソッドの詳細については、WebLogic Server 7.0 API リファレンス Javadoc を参照してください。

レルム アダプタ認証プロバイダと互換性のあるカスタム資格マッピング プロバイダの開発

認証プロバイダは、サブジェクト内へのユーザおよびグループの格納を担当するセキュリティ プロバイダです。ユーザおよびグループは、資格マッピング プロバイダなどの他のタイプのセキュリティ プロバイダによってサブジェクトから抽出されます。 セキュリティ レルムでコンフィグレーションされている認証プロバイダがレルム アダプタ認証プロバイダである場合、ユーザおよびグループの情報は、他の認証プロバイダとは若干異なる方法でサブジェクトに格納されます。 そのため、こうしたユーザおよびグループの情報の抽出も、若干異なる方法で行う必要があります。

サブジェクトへの格納にレルム アダプタ認証プロバイダが使用された場合に、サブジェクトがユーザ名またはグループ名に一致するかどうかを調べるためにカスタム資格マッピング プロバイダで使用できるコードをリスト11-1 に示します。 このコードは、実装するどの形式の getCredentials メソッドにも記述できます。

コード リスト 11-1 サブジェクトがユーザ名またはグループ名に一致するかどうかを調べるためのサンプル コード

/** 
* サブジェクトがユーザ名またはグループ名に一致するかどうかを調べる
*
* @param principalWant このロールのプリンシパル名を含む文字列
* (つまり、ロール定義)
*
* @param subject リソースにアクセスしようとしているユーザおよびそのユーザのグループを
* 識別するプリンシパルを含むサブジェクト
*
* @return ブール値。現在のサブジェクトがロールのプリンシパルに
* 一致する場合は true、それ以外の場合は false
*/
private boolean subjectMatches(String principalWant, Subject subject)
{
// まず、グループ名が一致しているかどうかを調べる
if (SubjectUtils.isUserInGroup(subject, principalWant)) {
return true;
}
// 次に、ユーザ名が一致しているかどうかを調べる
if (principalWant.equals(SubjectUtils.getUsername(subject))) {
return true;
}
// 一致しなかった場合
return false;
}

WebLogic MBeanMaker を使用して MBean タイプを生成する

カスタム セキュリティ プロバイダの MBean タイプを生成する前に、以下の作業が必要です。

この情報を理解し、設計に関する判断を下したら、次の手順でカスタム資格マッピング プロバイダの MBean タイプを作成します。

  1. MBean 定義ファイル (MDF) を作成する

  2. WebLogic MBeanMaker を使用して MBean タイプを生成する

  3. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) を作成する

  4. WebLogic Server 環境に MBean タイプをインストールする

注意: これらの手順の実行方法は、いくつかのサンプル セキュリティ プロバイダ (dev2dev Web サイトの「Code Samples: WebLogic Server」で入手可能) に示されています。

この節で説明する手順はすべて、Windows 環境での作業を想定しています。

MBean 定義ファイル (MDF) を作成する

MBean 定義ファイル (MDF) を作成するには、次の手順に従います。

  1. サンプル認証プロバイダの MDF をテキスト ファイルにコピーします。

    注意: サンプル認証プロバイダの MDF は、SampleAuthenticator.xml という名前です (現在、サンプル資格マッピング プロバイダはありません)。

  2. カスタム資格マッピング プロバイダに合わせて、作成する MDF の <MBeanType> および <MBeanAttribute> 要素の内容を変更します。

  3. カスタム属性および操作 (つまり、<MBeanAttribute> および <MBeanOperation> 要素) を MDF に追加します。

  4. ファイルを保存します。

注意: MDF 要素の構文についての完全なリファレンスは、MBean 定義ファイル (MDF) 要素の構文.に収められています。

WebLogic MBeanMaker を使用して MBean タイプを生成する

MDF を作成したら、WebLogic MBeanMaker を使用してそれを実行できます。WebLogic MBeanMaker は現在のところコマンドライン ユーティリティで、入力として MDF を受け取り、MBean インタフェース、MBean 実装、関連する MBean 情報ファイルなどの中間 Java ファイルをいくつか出力します。これらの中間ファイルが合わさって、カスタム セキュリティ プロバイダの MBean タイプになります。

MBean タイプの生成手順は、カスタム資格マッピング プロバイダの設計に応じて異なります。必要な設計に合わせて適切な手順を実行してください。

任意 SSPI MBean とカスタム操作を追加しない場合

カスタム資格マッピング プロバイダの MDF に任意 SSPI MBean もカスタム操作も実装しない場合、次の手順に従います。

  1. 新しい DOS シェルを作成します。

  2. 次のコマンドを入力します。

    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker

    ここで、-DMDF フラグは WebLogic MBeanMaker が MDF をコードに翻訳する必要があることを示し、xmlFile は MDF (XML MBean 定義ファイル)、filesdir は WebLogic MBeanMaker で生成された MBean タイプの中間ファイルが格納される場所です。

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。filesdir で指定された場所にファイルが既に存在する場合には、既存のファイルが上書きされることが通知され確認を求められます。

    -DcreateStubs=true フラグを使用するたびに、既存の MBean 実装ファイルがすべて上書きされます。

    注意: WebLogic MBeanMaker では MDF を一度に 1 つ処理します。そのため、MDF が複数ある (つまり資格マッピング プロバイダが複数ある) 場合には、このプロセスを繰り返す必要があります。

  3. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) を作成するに進みます。

任意 SSPI MBean またはカスタム操作を追加する場合

カスタム資格マッピング プロバイダの MDF に任意 SSPI MBean またはカスタム操作を実装する場合、以下の質問に答えながら手順を進めてください。

  1. 新しい DOS シェルを作成します。

  2. 次のコマンドを入力します。

    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker

    ここで、-DMDF フラグは WebLogic MBeanMaker が MDF をコードに翻訳する必要があることを示し、xmlFile は MDF (XML MBean 定義ファイル)、filesdir は WebLogic MBeanMaker で生成された MBean タイプの中間ファイルが格納される場所です。

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。filesdir で指定された場所にファイルが既に存在する場合には、既存のファイルが上書きされることが通知され確認を求められます。

    -DcreateStubs=true フラグを使用するたびに、既存の MBean 実装ファイルがすべて上書きされます。

    注意: WebLogic MBeanMaker では MDF を一度に 1 つ処理します。そのため、MDF が複数ある (つまり資格マッピング プロバイダが複数ある) 場合には、このプロセスを繰り返す必要があります。

  3. 任意 SSPI MBean を MDF に実装した場合は、次の手順に従います。

    1. MBean 実装ファイルを見つけます。

      WebLogic MBeanMaker によって生成される MBean 実装ファイルには、MBeanNameImpl.java という名前が付けられます。たとえば、MyCredentialMapper という MDF の場合には、編集すべき MBean 実装ファイルの名前は SampleCredentialMapperImpl.java です。

    2. MDF に実装した任意 SSPI MBean ごとに、メソッドのスタブを「Mapping MDF Operation Declarations to Java Method Signatures Document」(dev2dev Web サイトで入手可能) から MBean 実装ファイルにコピーし、各メソッドを実装します。任意 SSPI MBean が継承するメソッドもすべて実装してください。

  4. MDF にカスタム操作を含めた場合、メソッド スタブを使用してメソッドを実装します。

  5. ファイルを保存します。

  6. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) を作成するに進みます。

  1. WebLogic MBeanMaker によって現在のメソッドの実装が上書きされないように、既存の MBean 実装ファイルを一時ディレクトリにコピーします。

  2. 新しい DOS シェルを作成します。

  3. 次のコマンドを入力します。

    java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker

    ここで、-DMDF フラグは WebLogic MBeanMaker が MDF をコードに翻訳する必要があることを示し、xmlFile は MDF (XML MBean 定義ファイル)、filesdir は WebLogic MBeanMaker で生成された MBean タイプの中間ファイルが格納される場所です。

    xmlfile が入力されるたびに、新しい出力ファイル群が生成されます。filesdir で指定された場所にファイルが既に存在する場合には、既存のファイルが上書きされることが通知され確認を求められます。

    -DcreateStubs=true フラグを使用するたびに、既存の MBean 実装ファイルがすべて上書きされます。

    注意: WebLogic MBeanMaker では MDF を一度に 1 つ処理します。そのため、MDF が複数ある (つまり資格マッピング プロバイダが複数ある) 場合には、このプロセスを繰り返す必要があります。

  4. 任意 SSPI MBean を MDF に実装した場合は、次の手順に従います。

    1. MBean 実装ファイルを見つけます。

      WebLogic MBeanMaker によって生成される MBean 実装ファイルには、MBeanNameImpl.java という名前が付けられます。たとえば、SampleCredentialMapper という MDF の場合には、編集すべき MBean 実装ファイルの名前は SampleCredentialMapperImpl.java です。

    2. 手順 1 で一時ディレクトリに保存した既存の MBean 実装ファイルを開きます。

    3. 既存の MBean 実装ファイルを、WebLogic MBeanMaker によって生成された MBean 実装ファイルと同期させます。

      これには、メソッドの実装を既存の MBean 実装ファイルから新しく生成された MBean 実装ファイルにコピー (または、新しく生成された MBean 実装ファイルから既存の MBean 実装ファイルに新しいメソッドを追加) し、いずれの MBean 実装ファイルにも入っているメソッドのメソッド シグネチャへの変更が使用する MBean 実装ファイルに反映されていることを確認するといった作業が必要です。

    4. MDF を修正して元の MDF にはない任意 SSPI MBean を実装した場合は、メソッド スタブを「Mapping MDF Operation Declarations to Java Method Signatures Document」(dev2dev Web サイトで入手可能) から MBean 実装ファイルにコピーし、各メソッドを実装します。任意 SSPI MBean が継承するメソッドもすべて実装してください。

  5. MDF を変更して元の MDF にはないカスタム操作を含めた場合、メソッド スタブを使用してメソッドを実装します。

  6. 完成した、つまりすべてのメソッドを実装した MBean 実装ファイルを保存します。

  7. この MBean 実装ファイルを、WebLogic MBeanMaker が MBean タイプの実装ファイルを配置したディレクトリにコピーします。このディレクトリは、手順 3 で filesdir として指定しました (手順 3 の結果として WebLogic MBeanMaker で生成された MBean 実装ファイルがオーバーライドされる)。

  8. WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) を作成するに進みます。

生成される MBean インタフェース ファイルについて

MBean インタフェース ファイルとは、実行時クラスまたは MBean 実装がコンフィグレーション データを取得するために使用する MBean のクライアントサイド API です。「Provider」SSPI の目的を理解するで説明されているように、これは initialize メソッドで使用するのが一般的です。

WebLogic MBeanMaker では、作成済みの MDF から MBean タイプを生成するので、生成される MBean インタフェース ファイルの名前は、その MDF 名の後に「MBean」というテキストが付いたものになります。たとえば、WebLogic MBeanMaker で MyCredentialMapper MDF を実行すると、MyCredentialMapperMBean.java という MBean インタフェース ファイルが生成されます。

WebLogic MBeanMaker を使用して MBean JAR ファイル (MJF) を作成する

WebLogic MBeanMaker で MDF を実行して中間ファイルを作成し、MBean 実装ファイルを手作業で編集してその中にメソッドの内容を記述したら、カスタム資格マッピング プロバイダの MBean ファイルと実行時クラスを MBean JAR ファイル (MJF) にパッケージ化する必要があります。このプロセスも、WebLogic MBeanMaker によって自動化されます。

カスタム資格マッピング プロバイダの MJF を作成するには、次の手順に従います。

  1. 新しい DOS シェルを作成します。

  2. 次のコマンドを入力します。

    java -DMJF=jarfile -Dfiles=filesdir weblogic.management.commo.WebLogicMBeanMaker

    ここで、-DMJF フラグは WebLogic MBeanMaker が新しい MBean タイプを格納する JAR ファイルをビルドする必要があることを示し、jarfile は MJF の名前、filesdir は WebLogic MBeanMaker で MJF に JAR 化する対象ファイルが存在する場所です。

    この時点でコンパイルが行われるので、エラーが発生するおそれがあります。jarfile が指定されていて、エラーが発生しなかった場合には、指定された名前の MJF が作成されます。

注意: 既存の MJF を更新する場合は、MJF をいったん削除してから再生成します。WebLogic MBeanMaker にも -DIncludeSource オプションがあり、それを指定すると、生成される MJF にソース ファイルを含めるかどうかを制御することができます。ソース ファイルには、生成されたソースと MDF そのものがあります。デフォルトは false です。このオプションは、-DMJF を使用しない場合には無視されます。

生成された MJF は、自らの WebLogic Server 環境にインストールすることも、顧客に配布してそれぞれの WebLogic Server 環境にインストールしてもらうこともできます。

WebLogic Server 環境に MBean タイプをインストールする

MBean タイプを WebLogic Server 環境にインストールするには、MJF を WL_HOME¥server¥lib¥mbeantypes ディレクトリにコピーします。ここで、WL_HOME は WebLogic Server の最上位のインストール ディレクトリです。このインストール コマンドによって、カスタム資格マッピング プロバイダが「デプロイ」されます。つまり、カスタム資格マッピング プロバイダを WebLogic Server Administration Console から管理できるようになります。

注意: WL_HOME¥server¥lib¥mbeantypes は、MBean タイプをインストールするデフォルトのディレクトリです。 ただし、WebLogic Server が追加ディレクトリで MBean タイプを検索するようにするには、サーバを起動するときに -Dweblogic.alternateTypesDirectory=<dir> コマンドライン フラグを使用します (<dir> はディレクトリ名のカンマ区切りのリスト)。 このフラグを使用すると、WebLogic Server は常にまず WL_HOME¥server¥lib¥mbeantypes から MBean タイプをロードし、その後に追加ディレクトリを検索して、(拡張子に関係なく) そのディレクトリに存在するすべての有効なアーカイブをロードします。 たとえば -Dweblogic.alternateTypesDirectory = dirX,dirY の場合、WebLogic Server はまず WL_HOME¥server¥lib¥mbeantypes から MBean タイプをロードし、その後に、dirX および dirY に存在する有効なアーカイブをロードします。

追加ディレクトリで MBean タイプを検索するように WebLogic Server に指示し、かつ Java セキュリティ マネージャを使用する場合は、weblogic.policy ファイルを更新して、MBean タイプ (したがってカスタム セキュリティ プロバイダも) に対する適切なパーミッションを与える必要があります。 詳細については、『WebLogic Security プログラマーズ ガイド』の「Java セキュリティ マネージャを使用しての WebLogic リソースの保護」を参照してください。

非セキュリティ プロバイダの JAR (バックアップ ファイルを含む) は、WL_HOME¥server¥lib¥mbeantypes ディレクトリ以外の場所に置くことをお勧めします。

カスタム資格マッピング プロバイダをコンフィグレーションすることによって (Administration Console を使用してカスタム資格マッピング プロバイダをコンフィグレーションするを参照) MBean タイプのインスタンスを作成して、GUI、他の Java コード、または API からそれらの MBean インスタンスを使用することができます。たとえば、WebLogic Server Administration Console を使用して、属性を取得/設定したり操作を呼び出したりすることもできますし、他の Java オブジェクトを開発して、そのオブジェクトで MBean をインスタンス化し、それらの MBean から提供される情報に自動的に応答させることもできます。なお、これらの MBean インスタンスをバックアップしておくことをお勧めします。詳細については、『WebLogic Server ドメイン管理』の「障害が発生したサーバの回復」の「セキュリティ コンフィグレーション データのバックアップ」を参照してください。

Administration Console を使用してカスタム資格マッピング プロバイダをコンフィグレーションする

カスタム資格マッピング プロバイダをコンフィグレーションするということは、資格マッピング サービスを必要とするアプリケーションがアクセス可能なセキュリティ レルムにカスタム資格マッピング プロバイダを追加するということです。

カスタム セキュリティ プロバイダのコンフィグレーションは管理タスクですが、カスタム セキュリティ プロバイダの開発者が行うこともできます。この節では、カスタム資格マッピング プロバイダのコンフィグレーション担当者向けの重要な情報を取り上げます。

注意: WebLogic Server Administration Console を使用したカスタム資格マッピング プロバイダのコンフィグレーション手順については、『WebLogic Security の管理』の「カスタム セキュリティプロバイダのコンフィグレーション」を参照してください。

資格マッピング プロバイダ、リソース アダプタ、およびデプロイメント記述子の管理

リソース アダプタ (コネクタ) などのアプリケーション コンポーネントの中には、関連デプロイメント情報を Java 2 Enterprise Edition (J2EE) デプロイメント記述子および WebLogic Server デプロイメント記述子に格納するものがあります。 リソース アダプタの場合、デプロイメント記述子ファイル (weblogic-ra.xml) には、ユーザ名/パスワードの組み合わせなど、資格マップを作成するための情報が含まれます。 この資格マップ情報は、WebLogic Server Administration Console で資格マッピング プロバイダを初めてコンフィグレーションするときに含めるのが一般的です。

Administration Console には、この目的のために [デプロイメント記述子内のセキュリティ データを無視] チェックボックスが用意されています。開発者または管理者がカスタム資格マッピング プロバイダを初めてコンフィグレーションするときには、このチェックボックスのチェックがはずれていることを確認する必要があります。

注意: [デプロイメント記述子内のセキュリティ データを無視] チェックボックスは、デフォルトではチェックがはずれています。 このチェックボックスを設定するには、WebLogic Server Administration Console の左ペインで [セキュリティ|レルム|realm] をクリックします。realm はセキュリティ レルムの名前です。 次に [一般] タブを選択します。

このチェックボックスのチェックをはずしてリソース アダプタ (コネクタ) をデプロイすると、WebLogic Server は、weblogic-ra.xml デプロイメント記述子ファイル (リスト11-2 の例を参照) から資格マップを読み込みます。この情報は、資格マッピング プロバイダのセキュリティ プロバイダ データベースにコピーされます。

コード リスト 11-2 weblogic-ra.xml ファイルのサンプル

<weblogic-connection-factory-dd> 
<connection-factory-name>LogicalNameOfBlackBoxNoTx</connection-factory-name>
<jndi-name>eis/BlackBoxNoTxConnectorJNDINAME</jndi-name>
   <map-config-property>
<map-config-property-name>ConnectionURL</map-config-property-name>
<map-config-property-value>jdbc:pointbase:server://localhost/demo
<map-config-property-value>
</map-config-property>
   <security-principal-map> 
<map-entry>
<initiating-principal>*</initiating-principal>
<resource-principal>
<resource-username>examples</resource-username>
<resource-password>examples</resource-password>
</resource-principal>
</map-entry>
</security-principal-map>
</weblogic-connection-factory-dd>

注意: リスト11-2 に示したサンプル リソース アダプタのデプロイメント記述子は、WL_HOME¥samples¥server¥src¥examples¥jconnector¥simple¥rars¥META-INF にあります。ここで、WL_HOME は WebLogic Server の最上位のインストール ディレクトリです。

デプロイメント記述子ファイルでも Administration Console でも追加の資格マップを設定することができますが、リソース アダプタのデプロイメント記述子に定義されている資格マップをいったんコピーしてから、Administration Console を使用して追加の資格マップを定義することをお勧めします。 この理由は、資格マッピング プロバイダのコンフィグレーション中に Administration Console を使用して資格マップを変更すると、その内容が weblogic-ra.xml ファイルに保持されないからです。 Administration Console を使用して再デプロイする、ディスク上でリソース アダプタ (コネクタ) を変更した、または WebLogic Server を再起動したといった場合に、リソース アダプタ (コネクタ) を再デプロイするときには、[デプロイメント記述子内のセキュリティ データを無視] チェックボックスをチェックする必要があります。 チェックボックスをチェックしないと、Administration Console を使用して定義した資格マップがデプロイメント記述子で定義されている資格マップによって上書きされます。

注意: [デプロイメント記述子内のセキュリティ データを無視] チェックボックスは、ロール マッピング プロバイダおよび認可プロバイダにも影響します。詳細については、それぞれ認可プロバイダとデプロイメント記述子の管理ロール マッピング プロバイダとデプロイメント記述子の管理を参照してください。

デプロイ可能な資格マッピングの有効化

DeployableCredentialProvider SSPI を実装し、カスタム資格マッピング プロバイダでデプロイ可能な資格マップをサポートしたい場合、カスタム資格マッピング プロバイダのコンフィグレーション担当者 (つまり、開発者または管理者) は、Administration Console で [資格マッピング デプロイメントを有効化] チェックボックスがチェックされていることを確認する必要があります。チェックがはずれていると、資格マッピング プロバイダに対するデプロイメントは「オフ」と見なされます。 このため、複数の資格マッピング プロバイダがコンフィグレーションされている場合、[資格マッピング デプロイメントを有効化] チェックボックスを使用すると、資格マップのデプロイメントに使用する資格マッピング プロバイダを指定できます。

注意: [デプロイメント記述子内のセキュリティ データを無視] チェックボックス (資格マッピング プロバイダ、リソース アダプタ、およびデプロイメント記述子の管理で説明したようにセキュリティ レルム レベルで指定) では、コンフィグレーション済みの資格マッピング プロバイダのセキュリティ データベースに資格マップをコピーするかどうかを指定します。 [資格マッピング デプロイメントを有効化] チェックボックス (コンフィグレーション済みの資格マッピング プロバイダごとに指定) では、資格マッピング プロバイダがデプロイ済みの資格マップを格納するかどうかを指定します。

資格マップを管理するためのメカニズムを提供する

WebLogic Server Administration Console を使用してカスタム資格マッピング プロバイダをコンフィグレーションすると、必要な資格マッピング サービスにアプリケーションからアクセスできるようにすることはできますが、このセキュリティ プロバイダに関連付けられた資格マップを管理する方法を管理者にも提供する必要があります。 つまり、資格マップを管理するためのメカニズムを提供する必要があります。 このメカニズムでは、カスタム資格マッピング プロバイダのデータベースの資格マップを読み書きできなければなりません。

それには、以下の 2 通りの方法があります。

注意: WebLogic Server のこのバージョンでは、資格マッピング プロバイダ用にコンソール拡張を使用して「エディタ」ページを作成することはできません。カスタムの認可プロバイダおよびロール マッピング プロバイダでは可能です。

オプション 1 : 資格マップ管理用のスタンドアロン ツールを開発する

WebLogic Server Administration Console とまったく別のツールを開発する場合には、この方法を選択します。

この方法の場合、ツールでは以下のことを行う必要があります。

  1. WebLogic リソースの ID を特定します。詳細については、WebLogic リソース識別子を参照してください。

  2. ローカル ユーザとリモート ユーザとの関係を表す方法を決定します。この表現は完全に任意です。

  3. カスタム資格マッピング プロバイダのデータベースの式を読み書きします。

オプション 2 : 既存の資格マップ管理ツールを Administration Console に統合する

WebLogic Server Administration Console とは別のツールを持っており、それを Administration Console から起動する場合には、この方法を選択します。

この方法の場合、ツールでは以下のことを行う必要があります。

  1. WebLogic リソースの ID を特定します。詳細については、WebLogic リソース識別子を参照してください。

  2. ローカル ユーザとリモート ユーザとの関係を表す方法を決定します。この表現は完全に任意です。

  3. カスタム資格マッピング プロバイダのデータベースの式を読み書きします。

  4. 『Administration Console の拡張』に説明されているように、基本コンソール拡張を使用して Administration Console にリンクします。

 

Back to Top Previous Next