|
WebLogic Portal に実装された UUP サービスを使用すると、LDAP サーバなどの外部システムにユーザ データが格納されている場合でも、単一の論理的な場所でユーザやそのプロパティを追加および管理することができます。このユーザ データは、ユーザ プロファイルに追加できます。
UUP は、Workshop for WebLogic、Administration Console、または手動でコンフィグレーションできます (手動でのコンフィグレーションは推奨しません)。推奨される 2 つの方法はどちらでもよいわけではなく、いずれか適切な方を選択する必要があります。どちらを選択するかは、ポータル開発プロセスの段階によって異なります。
META-INF/p13n-profile-config.xml
] 記述子ファイルに格納され、ポータル アプリケーションにパッケージ化されます (Administration Console でコンフィグレーションする UUP は、[p13n-profile-config.xml
] ファイルからの Workshop for WebLogic UUP コンフィグレーションを上書きし、ポータル アプリケーションとは別に設定を格納します)。p13n-profile-config.xml
] ファイルはアプリケーション記述子の 1 つ) をポータル アプリケーションとは別にデプロイメント計画に格納します。記述子とデプロイメント計画の関係の詳細については、WebLogic Server のドキュメントを参照してください。
以下のような理由により、UUP は可能な限り手動ではなく Workshop for WebLogic でコンフィグレーションしてください。
p13n_ejb.jar
] ファイルを開いてそのコンテンツを編集すると、サーバが停止する可能性がある。p13n_ejb.jar
] ファイルの 1 つのクラスに影響する場合、UUP を再度機能させるには、記述子の変更をすべて新しい JAR ファイルに手動でマージしなければならない。
Workshop for WebLogic は、[p13n-profile-config.xml
] ファイルからの UUP コンフィグレーションを上書きし、ポータル アプリケーションとは別に、変更点をデプロイメント計画に格納します。
いずれのタイプの UUP も、手動でコンフィグレーションする既存の UUP よりも優先されます。古いバージョンの WebLogic Portal で手動により作成した既存の UUP は、Administration Console または Workshop for WebLogic でコンフィグレーションする新しい UUP と共存可能です。
WebLogic Portal 8.1 では、テキスト エディタを使用して UUP EJB を作成し、[p13n-ejb.jar
] ファイル内の [ejb-jar.xml
] ファイルおよび [weblogic-ejb-jar.xml
] ファイルに適切な記述子を追加することができました。WebLogic Portal 9.2 でもこの手動による方法は使用できますが、管理およびアップグレードが困難なため、この方法はお勧めしません。この方法を使用するときには、アーカイブ ファイルを unjar で展開し、各 XML ファイルの記述子を変更した後、変更内容を反映するためにアーカイブの内容を jar 形式にする必要があります。
可能な限り、UUP は手動ではなく Workshop for WebLogic で作成してください。
手動で カスタム UUP を作成して外部ソースからユーザ データを取得する場合は、以下のタスクを実行します。
ヒント : | デフォルトの UUP を変更し、LDAP サーバに対して使用することもできます。「LDAP サーバからのユーザ プロファイル データの取得」を参照してください。 |
UUP をコンフィグレーションする 3 つの方法のいずれにおいても、まず EntityPropertyManager EJB を作成します。Workshop for WebLogic または他の開発ツールを使用して、EntityPropertyManager インタフェースのメソッドを実装するステートレス セッション Bean を作成します。
外部ソースのデータを取り込むには、com.bea.p13n.property.EntityPropertyManager
リモート インタフェースのメソッドを実装するステートレス セッション Bean を作成する必要があります。EntityPropertyManager
は、プロパティ データの永続性を処理し、プロファイル レコードの作成および削除を行うセッション Bean 用のリモート インタフェースです。デフォルトでは、EntityPropertyManager
は外部プロパティへの読み込み専用アクセスを提供します。
ヒント : | アプリケーションをスコープとするステートレス セッション Bean コンポーネントを作成する方法については、Workshop for WebLogic で手順を参照してください。このトピックを参照するには、[ヘルプ|ヘルプ目次] を選択し、『BEA Workshop for WebLogic Platform プログラマーズ ガイド』を展開して、エンタープライズ JavaBean に関する説明を選択します。 |
また、このステートレス セッション 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 ファイルを変更しない)。
JAR ファイルをコンフィグレーションし、デプロイするには、次の節に示す手順を実行します。
WebLogic Portal 9.2 を使用する場合は、「Portal 9.2 による EJB のコンフィグレーション」の手順に従って、新しい EntityPropertyManager
EJB をコンフィグレーションします。できるだけこれらの手順を使用して新しい EJB をコンフィグレーションします。
WebLogic Portal 8.1 を使用する場合は、「Portal 8.1 による EJB のコンフィグレーション」を読み込んで、新しい EntityPropertyManager
EJB をコンフィグレーションします。このメソッドは、既存の Weblogic Portal 8.1 EntityPropertyManager
EJB をデプロイする場合にのみ使用します。
WebLogic Portal 9.2 で 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
] ファイルの行を追加または変更し、Administration Console をアクセスすることもできます。[コンフィグレーションとモニタ|サービス管理] を選択し、[統合ユーザ プロファイル] およびリソース ツリーで UUP を選択します。Administration Console で [p13n-profile-config.xml
] ファイルに変更を加えた後で、アプリケーションを再デプロイします。警告 : | この節は、Portal 8.1 EntityPropertyManager EJB のみに適用されます。 |
「EntityPropertyManager EJB の作成」で作成した新しい EntityPropertyManager
EJB を使用できるように ProfileManager
をコンフィグレーションする必要があります。
新しく作成した EntityPropertyManager
EJB のデータにアクセスするには、既存の ProfileManager
デプロイメント コンフィグレーションを変更する必要があります。手順については、『WebLogic Portal 8.1』マニュアルを参照してください。
WebLogic Portal には、LDAP サーバからプロパティを取得するためのデフォルトの UUP が付属しています。Sun Directory Server、Microsoft Active Directory、OpenLDAP などの LDAP プロトコルをサポートするディレクトリ サーバであれば、LDAP とすることができます。
注意 : | UUP を使用して他のユーザ ストアに接続する手順については、『セキュリティ ガイド』を参照してください。 |
LDAP 認証プロバイダ (ポータル アプリケーション内に対応するセキュリティ レルム) と、LDAP からユーザ プロパティを取得するための LdapPropertyManager
UUP は、互いに独立しています。両者はコンフィグレーション情報を共有せず、一方をもう一方と共に使用する場合の要件もありません。セキュリティ レルムはユーザ プロファイルとは無関係です。セキュリティ レルムはユーザとパスワードのデータ、およびユーザとグループの関連付けを提供します。ユーザ プロファイルはユーザとグループのプロパティを提供します。パスワードはプロパティではありません。
datasync プロジェクトを作成していない場合は、EAR プロジェクト用 datasync プロジェクトを作成します。LDAP サーバからプロパティを取得するための LDAP UUP を実装するには、以下の手順を実行します。
ldap_uup.jar
] ファイルをデプロイします。ファイルをデプロイするには、[<wl-home>/weblogic92/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
というコメント付きブロックが含まれています。このセクションのコメントを解除し、再コンフィグレーションします。次の手順に従います。 LdapUUPAdapter
ブロックで、表 A-1 に示されている複数の <adapter-property>
セクションに対するデフォルト設定を検索し、そのデフォルト値を独自の設定に変更します。テンプレート ファイルでは、手順についても説明します。
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 サーバの共通ルートの別のブランチに配置されている場合、subtree scope 機能を有効にする必要があります。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
に設定すれば、ユーザ検索は Peopleou=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
フラグの設定方法を説明しています。
8.1 UUP がある場合は、UUP のコンフィグレーション設定またはプロパティを変更するには、EntityPropertyManager
EJB ejb-jar.xml
記述子が外部データを表すように変更し、新しい EntityPropertyManager
EJB を使用できる ProfileManager
を編集して再デプロイし、デフォルトの UUP が LDAP サーバとして機能するように変更します。
適切なファイルの検索および編集に関する手順については、「手動での UUP の作成」を参照してください。
WebLogic Portal 8.1 から UUP をアップグレードする場合は、p13n_ejb.jar
ファイルが削除され、新しい WebLogic Portal 9.2 バージョンのファイルに置き換えられます。新しい [p13n_ejb.jar
] ファイルは、WebLogic Portal 9.2 および 10.0 に付属のライブラリ モジュールにパッケージ化されます。
ヒント : | p13n_ejb.jar ファイルの設定を変更してその変更を保持する場合は、Workshop for WebLogic を使用して p13n-profile-config.xml ファイルを作成する必要があります。既存の設定を該当する XML ファイルに追加し、デプロイします。 |
次の手順を実行して、WebLogic Portal 8.1 で作成された UUP を WebLogic Portal 9.2 の UUP にアップグレードします。
.work
ファイルを選択し、[開く] をクリックします。UUP アプリケーションのチェック ボックスが選択されていることを確認し、[次へ] をクリックします。画面は図 A-1 のようになります。p13n-ejb.jar
] ファイルが削除されている。UUPExample.jar
]) が存在する。<
UUPApplication>/EARContent/META-INF/
] ディレクトリ内の [application.xml
] ファイルのモジュール エントリで参照される。<
UUPApplication>/EARContent/META-INF/
] ディレクトリの [p13n-cache-config.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>
data/src/userprofiles/
ディレクトリ (または Datasync フォルダが存在するディレクトリ) にユーザ プロファイル ファイル (たとえば、UUPExample.usr
) が存在することを確認する。
その他の非ポータル アプリケーションを WebLogic Portal 8.1 からアップグレードする方法の詳細については、『WebLogic Portal 9.2 へのアップグレード』を参照してください。