|
WebLogic Portal に実装された UUP サービスを使用すると、LDAP サーバなどの外部システムにユーザ データが格納されている場合でも、単一の論理的な場所でユーザのプロパティを追加および管理することができます。このユーザ データは、ユーザ プロファイルに追加できます。
Workshop for WebLogic を使用して UUP EJB を作成し、Workshop for WebLogic または Administration Console を使用して UUP をコンフィグレーションできます (WebLogic Portal 8.1 では UUP を手動でコンフィグレーションできましたが、この方法は今後サポートされません)。推奨される 2 つの方法はどちらでもよいわけではなく、いずれか適切な方を選択する必要があります。
どちらを選択するかは、ポータル開発プロセスの段階によって異なります。
p13n-profile-config.xml ファイルからの Workshop for WebLogic UUP コンフィグレーションを上書きし、ポータル アプリケーションとは別に設定を格納します)。p13n-profile-config.xml ファイルはアプリケーション記述子の 1 つ) をポータル アプリケーションとは別にデプロイメント計画に格納します。記述子とデプロイメント計画の関係の詳細については、WebLogic Server のドキュメントを参照してください。
Administration Console は、p13n-profile-config.xml ファイルからの UUP コンフィグレーションを上書きし、ポータル アプリケーションとは別に、変更点をデプロイメント計画に格納します。
| 警告 : | Workshop for WebLogic または Administration Console での UUP のコンフィグレーションは、古いバージョンの WebLogic Portal で手動によりコンフィグレーションした既存の UUP より優先されます。手動により作成した既存の UUP は、Administration Console または Workshop for WebLogic でコンフィグレーションする新しい UUP と共存可能です。 |
Workshop for WebLogic を使用して EntityPropertyManager EJB を作成およびコンフィグレーションすることが可能です。次に、Workshop for WebLogic で UUP を作成して、Workshop for WebLogic または Administration Console で UUP をコンフィグレーションします。
Workshop for WebLogic または他の開発ツールを使用して、EntityPropertyManager インタフェースのメソッドを実装するステートレス セッション Bean EJB を作成します。
外部ソースのデータを取り込むには、com.bea.p13n.property.EntityPropertyManager リモート インタフェースのメソッドを実装するステートレス セッション Bean を作成する必要があります。EntityPropertyManager は、プロパティ データの永続性を処理し、プロファイル レコードの作成および削除を行うセッション Bean 用のリモート インタフェースです。デフォルトでは、EntityPropertyManager は外部プロパティへの読み込み専用アクセスを提供します。
| ヒント : | アプリケーションをスコープとするステートレス セッション Bean コンポーネントを作成する方法については、Workshop for WebLogic で手順を参照してください。このトピックを参照するには、[ヘルプ|ヘルプ目次] を選択し、『BEA Workshop for WebLogic Platform プログラマーズ ガイド』を展開して、エンタープライズ Java Beans に関する説明を選択します。 |
また、このステートレス セッション Bean にホーム インタフェースと実装クラスを含める必要があります。次に例を示します。
作成する実装クラスは、EntityPropertyManagerImpl クラスを拡張できます。唯一の要件は、作成する実装クラスが MyEntityPropertyManager リモート インタフェースの有効な実装であることです。次に例を示します。
EntityPropertyManager はデフォルトの EntityPropertyManager ではない。デフォルトの EntityPropertyManager は、Portal スキーマ内のプロパティを取得、設定、および削除するために使用します。カスタム EntityPropertyManager が以下のメソッドをサポートしていない場合は、java.lang.UsupportedOperationException メッセージが送出されます。 createUniqueId() メソッドと removeEntity() メソッドをサポートする必要がある。ただし、カスタム EntityPropertyManager はデフォルトの EntityPropertyManage ではないので、作成する createUniqueId() メソッドでユニークな数値を返す必要はありません。外部データ ストア内にユーザ エンティティを作成した後、-1 などの任意の数値を返すことができます。 EntityPropertyManager() メソッドに対して、次の推奨事項が適用される。getProperty() メソッド - キャッシングを使用します。ユーザのすべてのプロパティを一度に取得すると同時に、取得したプロパティをキャッシングするために、getProperties() メソッドをサポートする必要があります。作成する getProperty() メソッドでは、getProperties() メソッドを使用します。setProperty() メソッド - キャッシングを使用します。removeProperties() メソッドおよび removeProperty() メソッド - これらのメソッドを呼び出した後のプロパティに対する getProperty() 呼び出しでは、null を返します。また、キャッシュからプロパティを削除します。getProperty()、setProperty()、removeProperty()、および removeProperties() の各メソッドの実装には、外部システムに接続するために必要なロジックを含める必要がある。 com.bea.p13n.cache パッケージを参照)。 java.lang.UnsupportedOperationException メッセージを送出する必要がある。さらに、外部データ ソースに含まれるユーザを WebLogic Portal の createUniqueId() メソッドおよび removeEntity() メソッド以外で作成または削除する場合は、UnsupportedOperationException メッセージの送出が可能です。 EntityPropertyManager Bean のコンパイル済みクラスは専用の JAR ファイルに配置する (既存の WebLogic Portal JAR ファイルを変更しない)。
EJB をコンフィグレーションし、デプロイするには、次の節に示す手順を実行します。
Workshop for WebLogic または Administration Console を使用して、新しい EntityPropertyManager EJB をコンフィグレーションできます。
新しい EntityPropertyManager EJB をコンフィグレーションおよびデプロイするには、次の手順に従います。
p13n-profile-config.xml ファイルを探します。p13n-profile-config.xml ファイルを右クリックし、EAR プロジェクト フォルダの /META-INF ディレクトリにコピーします。p13n-profile-config.xml ファイルの該当する行をコメント解除または編集して、ファイルを保存します。EntityPropertyManager EJB をデプロイします。p13n-profile-config.xml ファイルの行を追加または変更することもできます。[コンフィグレーションとモニタ|サービス管理] を選択し、リソース ツリーで [統合ユーザ プロファイル] と UUP を選択します。Administration Console で p13n-profile-config.xml ファイルに変更を加えた後で、アプリケーションを再デプロイします。
WebLogic Portal には、LDAP サーバからプロパティを取得するためのデフォルトの UUP が付属しています。Sun Directory Server、Microsoft Active Directory、OpenLDAP などの LDAP プロトコルをサポートするディレクトリ サーバであれば、LDAP とすることができます。
WebLogic Portal は、ある LDAP から同じ情報が含まれる別の LDAP サーバに移動するための透過的なフェイルオーバをサポートします。単一の LDAP PropertyManagers を指定して、同じユーザとグループの情報を含む LDAP サーバを指し示すことができます。コンフィグレーションに指定された LDAP サーバの順序によって、前の LDAP サーバからのフェイルオーバの順序が決まります。プライマリ サーバが使用できない場合、プロパティ取得リクエストはセカンダリ サーバに渡る、というように続きます。透過的なフェイルオーバを設定しない場合、LDAP サーバに問題が発生するとトランザクションは失敗します。
透過的なフェイルオーバのコンフィグレーション手順については、表 A-1 を参照してください。
| 注意 : | UUP を使用して他のユーザ ストアに接続する手順については、『セキュリティ ガイド』を参照してください。 |
LdapRealm セキュリティ レルムと、LDAP からユーザ プロパティを取得するための LdapPropertyManager UUP は、互いに独立しています。両者はコンフィグレーション情報を共有せず、一方をもう一方と共に使用する場合の要件もありません。セキュリティ レルムはユーザ プロファイルとは無関係です。セキュリティ レルムはユーザとパスワードのデータ、およびユーザとグループの関連付けを提供します。ユーザ プロファイルはユーザとグループのプロパティを提供します。パスワードはプロパティではありません。
LDAP サーバからプロパティを取得するため、または透過的なフェイルオーバを設定するために LDAP UUP を実装するには、以下の手順を実行します。
ldap_uup.jar ファイルをデプロイします。このファイルをデプロイするには、<WL-HOME>/wlserver_10.0/common/p13n/lib ディレクトリで ldap_uup.jar ファイルを検索し、EAR プロジェクト フォルダの EARContent ディレクトリにコピーします。EARContent ディレクトリの /META-INF ディレクトリで application.xml ファイルを検索し、以下の情報を <module> セクションに追加します。 <module>
<ejb>ldap_uup.jar</ejb>
</module>/META-INF ディレクトリに p13n-app-lib.ear ファイルから p13n-profile-config.xml ファイルをコピーし、LdapUUPAdapter という名前の <property-adapter> セクションをコメント解除します。| ヒント : | 既存の p13n-profile-config.xml ファイルが既にあり、それを開いて、更新されたセクションをポータル EAR ディレクトリの /META-INF ディレクトリにある p13n-profile-config.xml ファイルにコピーします。 |
/META-INF/p13n-profile-config.xml ファイルを開きます (ライブラリ モジュールからこのファイルをまだコピーしていない場合は、この段階でコピーします)。このファイルは、LdapUUPAdapter というコメント付きブロックが含まれています。このセクションのコメントを解除し、再コンフィグレーションします。次の手順に従います。 Ldap Property Manager ブロックで、表 A-1 に示されている複数の <adapter-property> セクションに対するデフォルト設定を検索し、そのデフォルト値を独自の設定に変更します。
serverURL アダプタ プロパティではなく、serverHosts を使用します。serverURL アダプタ プロパティでは、下位互換性のために単一の LDAP サーバのコンフィグレーションのみがサポートされています。p13n-profile-config.xml ファイルのアダプタ パラメータ ldapPropertyCacheName で指定します。キャッシュの名前のデフォルト値は ldapPropertyCache です。Administration Console でキャッシュを作成する方法については、キャッシュ リファレンス ガイドを参照してください。 ldap.usr というユーザ プロファイル プロパティ セットを作成し、そのプロパティ セット内に、表示する LDAP プロパティの <property-mapping> 名と完全に一致するプロパティを作成します。newldap.usr ファイルを datasync プロジェクト ディレクトリに配置します。datasync プロジェクトは、ポータル EAR プロジェクトに配置する必要があります。
この手順を確認するには、Administration Console に移動し、[ユーザ、グループ、およびロール|ユーザ管理] を選択して、特定のユーザの LDAP プロパティがユーザのプロファイルに表示されているかを確認します。
| ヒント : | 資格エリアスでは、ユーザ名とパスワードが必要です。LDAP サーバでユーザ名とパスワードを不要にする場合は、p13n-profile-config.xml ファイルの credential-alias 行を削除します。 |
ユーザが、LDAP サーバで共通ルートを持つ別のブランチに配置されている場合、サブツリー スコープ機能を有効にする必要があります。ldap_uup.jar ファイル内の LdapPropertyManager EJB では、LDAP スキーマを調べることによって、多値 LDAP 属性と単値 (またはフラット) LDAP 属性の判別、複数の userDN および groupDN の許可、ならびに LDAP サーバ内のユーザとグループの SUBTREE_SCOPE 検索を実行できます。
多値 LDAP 属性と単値 LDAP 属性の判別では、プロパティが単値か多値かを判別するときに LDAP スキーマが使用されるよう指定します。手順については LDAP サーバ スキーマを参照してください。
ポータルでは、以下の方法のいずれかを使用して、<adapter-property> 設定でこれらのオプション設定をコンフィグレーションし、LDAP スキーマを指定することができます。
p13n-profile-config.xml ファイルには、コメント付きブロックとしてサンプル設定が用意されています。
この機能は、ユーザとグループに対して SUBTREE_SCOPE 検索を使用できる変更も実装します。また、複数のベース userDN と groupDN の指定も可能にします。複数のベース DN は、SUBTREE_SCOPE 検索が有効か無効かに関係なく使用できます。
SUBTREE_SCOPE 検索は、ベース userDN (または groupDN) から始まり、ユーザ名またはグループ名と一致する最初のユーザまたはグループが見つかるまで、そのベース DN のブランチを検索します。
単値を持つ多値 LDAP 属性を使用したルールを記述する場合を除き、p13-profile-config.xml ファイルの detectSingleValueFromSchema を true に設定しないでください。/detectSingleValueFromSchema = true を使用すると、各属性の LDAP スキーマをチェックするオーバーヘッドが発生します。デフォルトの動作 (/detectSingleValueFromSchema = false) では、属性が複数の値を持つ場合、属性は (コレクション内に) 多値として格納されるだけです。
ユーザとグループの SUBTREE-SCOPE を有効にするには、次の手順を実行します。
p13n-profile-config.xml ファイルの adapter-property-name 要素でブール値 objectPropertySubtreeScope adapter-property-value を true に設定します。p13n-profile-config.xml ファイルの userDN および groupDN adapter-property 値を、SUBTREE_SCOPE 検索を開始するベース DN と同じ値に設定します。
たとえば、ou=PeopleA, ou=People, dc=mycompany, dc=com および ou=PeopleB, ou=People, dc=mycompany, dc=com にユーザが存在する場合、userDN を ou=People, dc=mycompany, dc=com に設定すれば、ユーザ検索は ou=People から始まり、それぞれのブランチ (ou="PeopleA" と ou="PeopleB") に進み、これらのユーザのプロパティを LDAP サーバから取得できます。
LDAP サーバでは、ベース userDN (またはベース groupDN) のブランチに重複するユーザ (またはグループ) を作成しないでください。たとえば、LDAP サーバでは、uid="userA" のユーザを PeopleA ブランチと PeopleB ブランチの両方に作成できる場合があります。この場合、ldap_uup.jar.jar ファイルの LdapPropertyManager は、最初に検索された userA のプロパティ値を返します。
| 注意 : | SUBTREE_SCOPE 検索が提供する柔軟性が必要な場合を除き、この変更を有効にしない (objectPropertySubtreeScope を true に設定しない) でください。 |
SUBTREE_SCOPE 検索に代わる方法として、複数のベース DN をコンフィグレーションして、objectPropertySubtreeScope の設定は false のままにしておく方法があります (この方法は、ベース DN が複数かどうかには関係ありません)。ベース DN のブランチより下位は検索されないので、各ベース DN はユーザ (またはグループ) が格納されている DN である必要があります。検索は、最初に一致するユーザまたはグループが見つかるまで、ベース DN 間を循環します。
新しい p13n-profile-config.xml ファイルは詳細なコメント付きであり、複数の DN、複数の usernameAttributes (または groupnameAttributes)、および objectPropertySubtreeScope フラグの設定方法を説明しています。
WebLogic Portal 8.1 から UUP をアップグレードする場合は、p13n_ejb.jar ファイルが削除され、新しいバージョンの WebLogic Portal のファイルに置き換えられます。新しい p13n_ejb.jar ファイルは、WebLogic Portal 10.0 に付属のライブラリ モジュールにパッケージ化されます。
| ヒント : | p13n_ejb.jar ファイルの設定を変更してその変更を保持する場合は、Workshop for WebLogic を使用して p13n-profile-config.xml ファイルを作成する必要があります。既存の設定を該当する XML ファイルに追加し、デプロイします。 |
次の手順を実行して、WebLogic Portal 8.1 で作成された UUP を WebLogic Portal 10.0 の UUP にアップグレードします。
.work ファイルを選択し、[開く] をクリックします。UUP アプリケーションのチェック ボックスが選択されていることを確認し、[次へ] をクリックします。画面は図 A-1 のようになります。p13n-ejb.jar ファイルが削除されている。UUPExample.jar) が存在する。application.xml ファイルのモジュール エントリで参照される。<p13n:cache>
<p13n:name>UUPExampleCache</p13n:name>
<p13n:description>Cache for UUP Example</p13n:description>
<p13n:time-to-live>60000</p13n:time-to-live>
<p13n:max-entries>100</p13n:max-entries>
</p13n:cache>UUPExample.usr) が存在することを確認する。
その他の非ポータル アプリケーションを WebLogic Portal 8.1 からアップグレードする方法の詳細については、『WebLogic Portal 10.0 へのアップグレード』を参照してください。
|