|
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 へのアップグレード』を参照してください。