ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Virtual Directory管理者ガイド
11g リリース1(11.1.1)
B55922-08
  目次へ
目次
索引へ移動
索引

前
 
次
 

4 Oracle Virtual Directoryのプラグインの概要

この章では、Oracle Virtual DirectoryのJavaプラグインについて説明します。この章の内容は次のとおりです。

4.1 プラグインとは

プラグインを使用すると、情報の区分化機能でOracle Virtual Directoryを拡張し、特定のビジネスや技術の要件に対応することができます。また、プラグインを使用して、カスタム・ロジックをトランザクションの一部として提供することや、カスタム・データ・ソースに簡単に接続することができます。Oracle Virtual Directoryは、JavaプラグインおよびPythonマッピング・プラグインの2種類をサポートしています。


注意:

この章は、Oracle Virtual Directory用のJavaプラグインに特化していますが、操作上、Oracle Virtual Directoryではこれら2種類のプラグインは同等に扱われます。この章では、プラグインはJavaプラグインを表します。マッピング・プラグインの詳細は、第5章「Oracle Virtual Directoryのマッピングの概要」を参照してください。


Oracle Virtual Directoryには、分析、監査、キャッシング、動的グループのプレゼンテーションなど各種の目的に応じたプラグインがいくつか用意されています。また、様々な方法を使用してプラグインをデプロイすることで、仮想ディレクトリ内でのプラグインの配置を完全に制御できます。次に例を示します。

たとえば、特定のMicrosoft Active Directoryサーバー上のみで、Active Directoryユーザーの標準inetOrgPersonオブジェクト・クラスへの変換を行うマッピングが実行された後にのみ実行されるCacheプラグインをデプロイすることができます。


注意:

  • グローバル・レベルでプラグインを構成するには、Oracle Directory Services Managerのタスク選択バーから「拡張」を選択します。プロセスの詳細な手順は、「グローバル・サーバー・プラグインの管理」を参照してください。

  • アダプタ・レベルでプラグインを構成するには、Oracle Directory Services Managerのタスク選択バーから「アダプタ」を選択します。プロセスの詳細な手順は、「アダプタ・プラグインの管理」を参照してください。


図4-1に、Oracle Virtual Directoryのプラグイン・フレームワークの3層アーキテクチャを示します。

図4-1 Oracle Virtual Directoryのプラグイン・フレームワーク

OVDのプラグイン・フレームワーク。

プラグインはチェーンを形成するように配置されています。Oracle Virtual Directoryがリクエストを受信すると、リクエストは次の順序でOracle Virtual Directoryに渡されます(図4-1を参照)。

  1. グローバル・サービス・インタフェース(GSI)

  2. グローバル・プラグインのチェーン

  3. アダプタ・サービス・インタフェース(ASI)

  4. アダプタ・プラグインのチェーン

グローバル・プラグインは、すべてのリクエストに対してコールされます。インバウンド・リクエストの場合、すべてのグローバル・プラグインが実行されると、リクエストはASIに移動します。ASIは、ルーティングおよびアダプタの処理が決定されるOracle Virtual Directoryのコンポーネントです。ルーティング・システムによりリクエストにどのアダプタが含まれるかが決定されると、選択されたアダプタ・プラグインが実行されます。アダプタによりレスポンスが生成され、さらに処理およびフィルタ処理を実行するためにチェーンに戻されます。

4.1.1 ネームスペースのフィルタ処理

Oracle Virtual Directoryでは、プラグインをグローバルに実行するか、または1つのアダプタのコンテキスト内で実行するかを柔軟に判断できます。状況によっては、プラグインがいつ使用されるかをさらに制限する必要が生じる場合もあります。たとえば、アダプタがMicrosoft Active Directoryドメインのかわりになるように設定され、DC=VAN,DC=Oracle,DC=comを指しているとします。ドメイン・ツリー内のそのポイントの下には、CN=UsersコンテナおよびCN=Groupsコンテナがあります。プラグインまたはマッピングにネームスペース・フィルタを追加すると、ツリーの一部にのみそれらを適用できます。

4.2 汎用目的のプラグインの概要

この項では、Oracle Virtual Directoryに組み込まれている汎用目的のプラグインについて説明します。汎用目的のプラグインは、Oracle Virtual Directoryの機能を拡張して、特殊な機能またはマッピングを実行します。この項の内容は、次のとおりです。

4.2.1 FA UserRoleプラグイン

FA UserRoleプラグインは、VDEが追加および変更操作を特定のアダプタにリダイレクトできるようにします。このプラグインは、グローバル・プラグインとしてのみ使用してください。

4.2.1.1 構成パラメータ

FA UserRoleプラグインには次の構成パラメータがあります。

objectWrite

アダプタ名のリストが後に続くattribute=valueタイプのフィルタ。このアダプタ名のリストは、指定された順序でアダプタのリストに追加および変更操作をリダイレクトするために使用されます。

この構成の複数のインスタンスを定義できます。たとえば、objectclass=user;A1;A2は、user objectclassのエントリがある場合、そのエントリに対する追加および変更操作は最初にアダプタA1にリダイレクトされることを意味します。A1に一致するものがない場合、操作はA2で実行されます。別の例として、cn=user1;A3があります。

4.2.2 HideEntriesByFilterプラグイン

HideEntriesByFilterプラグインは、検索によってどのエントリを戻すのかを詳細に制御できるようにします。HideEntriesByFilterプラグインは、そのhideFilter構成パラメータを使用してどのエントリを戻すのかを明示的に制御できるようにします。たとえば、Oracle Virtual Directoryをアドレス帳ディレクトリとして使用していて、技術サポートのエントリ(ou値がCSR)のみを表示する必要があるとします。hideFilterをou=CSRに設定してHideEntriesByFilterプラグインを使用し、アダプタが検索されたときに技術サポートのエントリのみが戻されるようにすることができます。

バインド操作のサポート

HideEntriesByFilterプラグインをデプロイすると、プラグインによって公開されるエントリのみがバインド操作を実行できるようになります。このプラグインは、検索中に非表示になっているエントリによるバインド操作の実行を防止します。バインド操作中はHideEntriesByFilterプラグイン・パラメータで構成される静的非表示フィルタおよびLdapURLのみが有効になり、動的非表示フィルタは有効になりません。

4.2.2.1 構成パラメータ

HideEntriesByFilterプラグインには、次の構成パラメータがあります。

hideFilter

検索に対して制限するエントリを制御するLDAPフィルタ。このフィルタには、静的フィルタまたは動的フィルタを含めることができます。

  • たとえば、静的フィルタを作成する場合、hideFilter(department=Sales)に設定すると、検索ではdepartment=Salesを含むエントリのみが戻されます。ただし、hideFilter(!(department=Sales))に設定すると、検索ではdepartment=Salesを含まないエントリのみが戻されます。

  • 動的フィルタは認証済ユーザーの属性値に基づいて作成します。動的フィルタは、「バインドされたユーザーと部門が同じユーザーをすべて取得する。ただし、アプリケーションでは、LDAP検索フィルタにこの基準を指定する必要はない。」などのユースケースをサポートできます。

    たとえば、hideFilter(department=%department%)に設定すると、このプラグインによって%department%が、そのバインドされたユーザーと関連付けられた実際の部門の値に置換されます。バインドされたユーザーのエントリに指定された属性の値が複数ある場合は、そのすべての値にORを指定することでフィルタが作成されます。

ldapURL

エントリDNに基づいて検索結果をさらに制限するために使用されるパラメータ。検索結果の一部として戻されるエントリがURLフィルタを満たす場合、そのエントリは、それがそのURLベースの子である場合にのみクライアントに戻されます。エントリがURLフィルタを満たさない場合、エントリはそのまま戻されます。

このパラメータは、1つのプラグイン構成で複数回使用できます。少なくともhideFilterまたはldapURLのいずれかの構成パラメータを設定する必要があります。

adapterNames

プラグインが1つのアダプタにデプロイされており、バインドされたユーザーが別のアダプタに存在している場合に使用されるパラメータ。このパラメータは、アダプタのリストをとり、1つのプラグイン構成で複数回使用できます。

動的フィルタを処理するために、ユーザーはadapterNamesで指定されているすべてのアダプタで問い合わせられます。ユーザーを戻すことなくすべてのアダプタに対する検索が失敗した場合、動的フィルタは無視され、元の検索フィルタが次のプラグインに送られます。

applyForAdmin

管理者に対してプラグインの処理を実行するかどうかを制御するブール値。このパラメータをfalseに設定しており、かつバインドされたユーザーがadminである場合、検索結果はこのプラグインでさらにフィルタ処理されることなく、そのままの状態で戻されます。

4.2.3 ChangeUserRDNプラグイン

ChangeUserRDNプラグインで、ソース・ディレクトリからOracle Virtual DirectoryにRDN値を名前変更または置換できます。このプラグインはLDAPディレクトリの移行の際に役立ちます。

4.2.3.1 構成パラメータ

ChangeUserRDNプラグインには、次の構成パラメータがあります。

objectType

RDNの名前変更を実行するオブジェクト・クラスのタイプを指定します。デフォルト設定はpersonです。

replaceValue

TrueまたはFalse: 元のRDN値(fromRDNパラメータで指定する)を新しいRDN値(toRDNパラメータで指定する)に置き換えるかどうかを指定します。デフォルト設定はtrueです。


注意:

この値がtrueに設定されており、エントリでその新しいRDN属性に複数の値がある場合、Oracle Virtual DirectoryではRDNの属性値ベクターの最初の値が使用されます。


fromRDN

Oracle Virtual Directoryで置換または名前変更される、ソース・ディレクトリの元のRDN属性名を指定します。

toRDN

Oracle Virtual Directoryで使用される新しいRDN属性名を指定し、fromRDN構成パラメータで指定されている属性名と置き換えます。

dnAttributes

RDNの名前変更を実行するDNを持つ属性のリスト。属性のデフォルト・リストは、member、uniquemember、manager、owner、managedbyです。

4.2.4 UPNBindプラグイン

UPNBindプラグインにより、任意の構成済のusername属性(cn、SamAccountName、sn、uidなど)またはusername@suffix属性(UserPrincipalName、Mailなど)を使用してバインドできます。このプラグインは、Active Directory中心のアプリケーションで役立ち、DNを検索する必要性を排除することでアダプタのデプロイメントを容易にすることができます。


注意:

UPNBindプラグインは、グローバル・プラグインとしてのデプロイメントに対してのみサポートされています。UPNBindプラグインをアダプタにデプロイしないでください。


4.2.4.1 構成パラメータ

UPNBindプラグインには、次の構成パラメータがあります。


注意:

少なくともNameAttributesまたはNameAndSuffixAttributesのいずれかの構成パラメータを設定する必要があります。


NameAttributes

ユーザーを認証するために使用するnaming属性のリストを指定します。たとえば、cn、sn、uid、SAMAccountNameです。

NameAndSuffixAttributes

ユーザーを認証するために使用する、UPN、mailなどのname@suffixの形式の属性のリスト。

BindOption

複数のユーザーがNameAttributesおよびNameAndSuffixAttributesのパラメータに同じ値を持っている場合に、UPNBindプラグインが結果のエントリを処理する方法を決定します。次に、BindOptionオプションでサポートされている値のリストと説明を示します。デフォルト設定はQuickFailです。

  • QuickFail: 構成済の属性に対して複数のユーザーが同じ値を持っている場合、UPNBindプラグインによって複数のユーザー・エントリが見つかりましたエラーが表示され、LDAPバインドは失敗します。

  • FirstUser: UPNBindプラグインは最初のユーザーとしてバインドし、そのバインドの結果を戻します。

  • FirstSuccess: UPNBindプラグインは最初のユーザーとしてバインドします。そのバインドに失敗すると、UPNBindプラグインは、成功したバインドが見つかるまでリストのすべてのユーザーに対して試行を続けます。

AdapterName

認証に使用するアダプタを指定します。指定したアダプタにそのユーザー・エントリが存在しない場合、LDAPバインドは失敗し、「無効な資格証明」メッセージが表示されます。これはオプションのパラメータです。このパラメータを指定しない場合、このプラグインでは、ユーザーを認証するために使用可能なすべてのアダプタが考慮されます。このパラメータは、認証にどのアダプタを使用するのかわかっている場合にプラグインのパフォーマンスの向上に役立ちます。

4.2.5 ForkJoinプラグイン

ForkJoinプラグインは、結合ビュー・アダプタに対してのみサポートされており、プライマリ・アダプタ、セカンダリ・アダプタ、または結合ビューでプライマリとセカンダリの両方のアダプタに対する検索の実行を可能にします。LDAP検索の際に、セカンダリ・アダプタでのみ使用可能な属性が検索フィルタに1つ以上含まれている場合、このプラグインを使用しないと、検索フィルタ全体がプライマリ・アダプタにのみ送られるため、Oracle Virtual Directoryはそのフィルタを満たす結合エントリを戻すことができません。ForkJoinプラグインを使用すると、Oracle Virtual Directoryは、プライマリ・アダプタ内のみの属性、セカンダリ・アダプタ内のみの属性、およびプライマリとセカンダリの両方のアダプタ内の属性を検索できます。

たとえば、ユーザー・データがActive Directoryのsamaccountname、sn、givenname、employeenumberという複数のアイデンティティ・ソースに置かれているとします。ただし、title属性はHuman Resourcesデータベースに格納されています。Active Directoryがプライマリ・アダプタとして、Human Resourcesデータベースがセカンダリ・アダプタとして構成されており、ForkJoinプラグインがデプロイされている場合、LDAP対応アプリケーションがsamaccountname、またはtitle、あるいはその両方に基づいてユーザー・データの問合せを実行すると、Oracle Virtual Directoryがそのフィルタを満たし、かつActive DirectoryとHuman Resourcesデータベースの両方のデータを含むエントリを戻します。

バインド操作のサポート

ForkJoinプラグインを結合アダプタに対してデプロイしており、JoinPolicyがFullOuterJoinに設定されている場合、バインドは、プライマリ・アダプタに存在しない、セカンダリのみのユーザーに対しても可能になります。

4.2.5.1 構成パラメータ

ForkJoinプラグインには、次の構成パラメータがあります。


注意:

ForkJoinプラグインをデプロイするには、少なくともSecondaryOnlyAttributesまたはPrimaryAndSecondaryAttributesのいずれかの構成パラメータを設定する必要があります。


SecondaryOnlyAttributes

セカンダリ・アダプタにのみ存在し、アプリケーションが検索フィルタで使用できる属性のリスト。SecondaryOnlyAttributes構成パラメータで指定した属性をPrimaryAndSecondaryAttributes構成パラメータでも指定することはできません

PrimaryAndSecondaryAttributes

プライマリとセカンダリの両方のアダプタに存在し、アプリケーションが検索フィルタで使用できる属性のリスト。PrimaryAndSecondaryAttributes構成パラメータで指定した属性をSecondaryOnlyAttributes構成パラメータでも指定することはできません


注意:

objectclass属性は、明示的に構成されていない場合でも、デフォルトで常にPrimaryAndSecondaryAttributesであると見なされます。


JoinPolicy

次の設定をサポートしています。

  • Standard Join: セカンダリ・アダプタで対応するエントリと結合した後、プライマリ・アダプタで検索フィルタを満たすすべてのエントリを戻します。

  • Left Outer Join: セカンダリ・アダプタの対応するエントリと結合した後、プライマリ・アダプタのすべてのエントリを戻し(Standard Join)、さらに、セカンダリ・アダプタの、結合条件を満たし、かつプライマリ・アダプタに対応する一致があるエントリを戻します。これは、データベース用語の左側外部結合と同等です。

  • Full Outer Join: セカンダリ・アダプタの対応するエントリと結合した後、プライマリ・アダプタのすべてのエントリを戻し(Standard Join)、さらに、セカンダリ・アダプタの、結合条件を満たし、かつプライマリ・アダプタに対応する一致があるエントリを戻し(Left Outer Join)、さらに、検索フィルタを満たすがプライマリ・アダプタに一致するエントリがないエントリを戻します。これは、データベース用語の左側外部結合+右側外部結合と同等です。


    注意:

    Full Outer Joinが構成されている場合の条件付き結合については、セカンダリ・アダプタのエントリは、結合条件のフィルタを考慮することなくプライマリ・アダプタのエントリにマップされます。


4.2.5.2 ForkJoinプラグイン・デプロイメントの例

この項では、ForkJoinプラグインのデプロイメント例を示します。次のデータが、プライマリ・アダプタおよびセカンダリ・アダプタに配置されています。プライマリ・アダプタのネームスペースはdc=primary、セカンダリ・アダプタのネーム・スペースはdc=secondaryです。

プライマリ・アダプタのデータ セカンダリ・アダプタのデータ
dn: cn=Rock, dc=primary
objectclass: inetorgperson
cn: Rock
sn: Anne
givenname: Anne rock
telephonenumber: 54300
dn: cn=Rock, dc=secondary
objectclass: inetorgperson
cn: Rock
sn: Anne
title: Manager
dn: cn=Sandy, dc=primary
objectclass: inetorgperson
cn: Sandy
sn: Ketty
manager:  cn=Rock, dc=primary
telephonenumber: 54301
dn: cn=Sandy, dc=secondary
objectclass: inetorgperson
cn: Sandy
sn: Ketty
title: SMTS
dn: cn=Rivry,dc=primary
objectclass: inetorgperson
cn: Rivry
sn: Rod
title: Trainee
manager: cn=Rock, dc=secondary
telephonenumber: 54303
description: Trainee for dept 543
departmentNumber: 543
dn: cn=Rivry,dc=secondary
objectclass: inetorgperson
cn: Rivry
sn: Rod
title: Trainee
dn: cn=Woods,dc=primary
objectclass: inetorgperson
cn: Woods
sn: Tent
description: User with no title
dn: cn=Mounty,dc=secondary
objectclass: inetorgperson
cn: Mounty
sn: Ret
title: MTS - dept_sec

結合条件はcn=cnであり、SecondaryOnlyAttributesパラメータがtitleに設定されています。サブツリー有効範囲と(|(title=*e*)(sn=*e*))のフィルタを指定したldapsearchを、結合ビュー・アダプタに対して実行します。

JoinPolicyのタイプごとの検索結果は次のとおりです。

Standard Join:

cn=Rock,dc=Join
sn=Anne
cn=Rock
title=Manager
 
cn=Sandy,dc=Join
sn=Ketty
cn=Sandy
title=SMTS
 
cn=Woods,dc=Join
sn=Tent
cn=Woods

Left Outer Join:

cn=Rock,dc=Join
sn=Anne
cn=Rock
title=Manager
 
cn=Sandy,dc=Join
sn=Ketty
cn=Sandy
title=SMTS
 
cn=Woods,dc=Join
sn=Tent
cn=Woods
 
cn=Rivry,dc=Join
sn=Rod
cn=Rivry
title=Trainee

Full Outer Join:

cn=Rock,dc=Join
sn=Anne
cn=Rock
title=Manager
 
cn=Sandy,dc=Join
sn=Ketty
cn=Sandy
title=SMTS
 
cn=Woods,dc=Join
sn=Tent
cn=Woods
 
cn=Rivry,dc=Join
sn=Rod
cn=Rivry
title=Trainee
 
cn=Mounty,dc=Join
sn=Ret
cn=Mounty
title=MTS - dept_sec

4.2.6 VirtualMemberofプラグイン

VirtualMemberofプラグインは、memberof属性をpersonエントリに追加します。このmemberof属性の値は、そのpersonエントリが属するすべてのグループのDNです。VirtualMemberofプラグインは、アプリケーションがグループ・メンバーシップを確認する必要があるが、グループに対する2つ目の検索の実行を回避する場合に役立ちます。

4.2.6.1 構成パラメータ

VirtualMemberofプラグインには、次の構成パラメータがあります。

searchBase

personエントリを含むグループを検索するベースのDN。

explicitrequestonly

TrueまたはFalse: Trueに設定した場合、戻される属性として明示的にリクエストされている場合にかぎり、memberof属性がそのエントリに追加されます。デフォルト値はTrueです。

adapterName

グループ・エントリを含むアダプタのリスト。このパラメータは、グループに対して検索の有効範囲を最小限にするために役立ちます。

4.2.7 VirtualAttributeプラグイン

VirtualAttributeプラグインにより、マッピングをデプロイせずに複数の属性で属性データを再使用できます。たとえば、新しいアプリケーションで、ある人の姓名を表示に使用する必要がある場合、アプリケーションではcnを検索するかわりにdisplayname属性を使用する必要があるが、それがアダプタ・データに存在しないとします。VirtualAttributeプラグインを使用すると、displaynameをcnの値にマップでき、かつcn属性を検索する他のアプリケーションがその属性を依然として使用できるようにすることができます。displayname属性がアダプタ・データにすでに存在している場合、displaynameの既存の値にcnの値を追加するか、displaynameの値をcnの値に置き換えるのかを指定できます。

属性値の追加および置換に加えて、VirtualAttributeプラグインを使用して、次のように実行することもできます。

  • 他の属性およびリテラル値を使用することで属性をその場で作成する。

  • ConditionalPublishマッピングの機能を実行する。つまり、RemoveAttributes構成パラメータを使用すると、属性がクライアントに戻される前にエントリから実際に削除される属性を指定できます。


注意:

VirtualAttributeプラグインで追加または置換される属性に対して定数値を指定できます。

AddAttributeパラメータとReplaceAttributeパラメータでは、仮想属性に %dn%値を割り当てて、その仮想属性にエントリDN(エントリ名)値を追加したり、エントリDN(エントリ名)値で置き換えることができます。

たとえば、エントリDN(名)値をdistinguishedNameに追加するには、AddAttributeパラメータの値をdistinguishedName=%dn%に設定します。


4.2.7.1 構成パラメータ

VirtualAttributeプラグインには、次の構成パラメータがあります。


注意:

最低でも、AddAttributeまたはReplaceAttributeのいずれかの構成パラメータを設定する必要があります。


ContainerDN

オフションのパラメータであるContainerDNは、VirtualAttributeプラグインが適用されるコンテナを指定します。VirtualAttributeプラグインは、containerDNの下のmatchFilterパラメータで指定されたフィルタに一致するすべてのエントリに適用できます。このパラメータは、繰り返し使用して複数のcontainerDNを指定できます。また、このパラメータは、VirtualAttributeプラグインを、アダプタによって公開されるデータ内の特定のブランチに制限します。デフォルト設定は""、つまりDSEです。ContainerDNパラメータを設定しないと、VirtualAttributeプラグインはディレクトリ・ツリー全体を検索します。

MatchFilter

オフションのパラメータであるMatchFilterは、VirtualAttributeプラグインが適用されるエントリを指定します。VirtualAttributeプラグインは、containerDNの下のMatchFilterパラメータで指定されたフィルタに一致するすべてのエントリに適用できます。MatchFilterパラメータを設定しないと、VirtualAttributeプラグインは、ContainerDNパラメータによって指定されるDNの下のすべてのエントリに適用されます。

AddAttribute

エントリに追加する属性のリストおよび、これらの仮想属性に割り当てる値。AddAttributeパラメータによって指定された属性がすでにエントリに存在している場合、VirtualAttributeプラグインは、指定された値を値の既存のセットに追加します。この値は、定数、別の属性、または属性値と定数の組合せにすることができます。

AddAttributeパラメータは、VirtualAttributeプラグインに対して複数回設定できます。AddAttributeパラメータに設定する値は、ReplaceAttributeと相互に排他、つまり異なる必要があります。

次に例を示します。

  • cn属性の値をuidおよびdisplayNameに追加するには、AddAttributeパラメータの値をuid=displayName=%cn%に設定します。

  • 定数値AcmeをcompanyName属性に追加するには、AddAttributeパラメータの値をcompanyName=Acmeに設定します。

  • cn、snおよびdcの値の組合せをmember属性に追加するには、AddAttributeパラメータ値をmember={cn=%cn%, sn=%sn%, dc=oracle, dc=com}に設定します。


    注意:

    中カッコ({})は重要です。


AddAttributeパラメータでは、仮想属性に値ペアを含むリストを割り当てることができます。Oracle Virtual Directoryでは、クライアント・アプリケーションとバックエンド・ストレージの間の値のマッピングを実行できます。

このフォーマットの値を入力します。

<attributename> = (clientValue1, sourceValue1)(clientValue2, sourceValue2)...

たとえば、departmentName属性のクライアント・アプリケーション値が(1,2,3)で、対応するバックエンド・ストレージ値が(Marketing, Sales, Finance)であると仮定します。Oracle Virtual Directoryでマッピングする場合は、パラメータ値をdepartmentName=(1,Marketing)(2,Sales)(3,Finance)として構成します。

別の例では、エントリが従業員用あるいは顧客用かを示すためにUserType仮想属性を追加することで、従業員用にActive Directoryを、顧客用にOracle Unified Directoryを使用するようにOracle Virtual Directoryを構成するとします。

  • Active Directoryアダプタを構成するには、UserType=Employeeに設定したAddAttributeパラメータを使用して、VirtualAttributeプラグインをデプロイする必要があります。

  • Oracle Unified Directoryアダプタを構成するには、UserType=Customerに設定したAddAttributeパラメータを使用して、VirtualAttributeプラグインをデプロイする必要があります。

この構成のエントリでは、追加の仮想属性UserTypeが含まれており、それらを返すアダプタに応じて、EmployeeまたはCustomerの値が指定されます。

ReplaceAttribute

エントリに追加する属性のリストおよび、これらの仮想属性に割り当てる値。ReplaceAttributeパラメータによって指定された属性がすでにエントリに存在している場合、VirtualAttributeプラグインは、指定された値を使用してそれらを置換します。この値は、定数、別の属性、または属性値と定数の組合せにすることができます。

ReplaceAttributeパラメータは、VirtualAttributeプラグインに対して複数回設定できます。ReplaceAttributeパラメータに設定する値は、AddAttributeと相互に排他、つまり異なる必要があります。

次に例を示します。

  • uidおよびdisplayNameの値をcn属性の値に置き換えるには、ReplaceAttributeパラメータをuid=displayName=%cn%のように構成できます。

  • companyName属性の値を定数値Acmeに置き換えるには、ReplaceAttributeパラメータをcompanyName=Acmeのように構成できます。

  • member属性値をcn、snおよびdcの値の組合せに置き換えるには、ReplaceAttributeパラメータをmember={cn=%cn%, sn=%sn%, dc=oracle, dc=com}のように構成します。


    注意:

    中カッコ({})は重要です。


ReplaceAttributeパラメータでは、仮想属性に値ペアを含むリストを割り当てることができます。Oracle Virtual Directoryでは、クライアント・アプリケーションとバックエンド・ストレージの間の値のマッピングを実行できます。

このフォーマットの値を入力します。

<attributename> = (clientValue1, sourceValue1)(clientValue2, sourceValue2)...

たとえば、departmentName属性のクライアント・アプリケーション値が(1,2,3)で、対応するバックエンド・ストレージ値が(Marketing, Sales, Finance)であると仮定します。Oracle Virtual Directoryでマッピングする場合は、パラメータ値をdepartmentName=(1,Marketing)(2,Sales)(3,Finance)として構成します。

RemoveAttributes

指定されたContainerDNの下でMatchFilterを満たすエントリから実際に削除される属性のカンマ区切りリスト。

4.2.7.2 VirtualAttributeプラグイン・デプロイメントの例

次に示すVirtualAttributeプラグイン構成パラメータが設定されているとします。

構成パラメータ

AddAttribute

uid=displayName=%cn%

AddAttribute

certificate=Verisign

AddAttribute

member={cn=%cn%, sn=%sn%, dc=oracle, dc=com}

ReplaceAttribute

title=%designation%

RemoveAttributes

designation,uid


処理される元のエントリは次のとおりであるとします。

dn: cn=john, dc=com
cn: john
cn: jsmith
uid: 1234
certificate: selfsigned
designation: SMTS
title: Senior Software Engineer
sn: smith
objectclass: person
objectclass: top

次に、VirtualAttributeプラグインが元のエントリをどのように変換するのかを示します。

AddAttributes構成パラメータを処理した後のエントリは次のとおりです。

dn: cn=john, dc=com
cn: john
cn: jsmith
uid: 1234
uid: john
uid: jsmith
displayName: john
displayName: jsmith
certificate: verisign
certificate: selfsigned
designation: SMTS
title: Senior Software Engineer
sn: smith
objectclass: person
objectclass: top
member: cn=john, sn=smith, dc=oracle, dc=com
member: cn=jsmith, sn=smith, dc=oracle, dc=com

ReplaceAttributes構成パラメータを処理した後のエントリは次のとおりです。

dn: cn=john, dc=com
cn: john
cn: jsmith
uid: 1234
uid: john
uid: jsmith
displayName: john
displayName: jsmith
certificate: verisign
certificate: selfsigned
designation: SMTS
title: SMTS
sn: smith
objectclass: person
objectclass: top
member: cn=john, sn=smith, dc=oracle, dc=com
member: cn=jsmith, sn=smith, dc=oracle, dc=com

RemoveAttributes構成パラメータを処理した後のエントリは次のとおりです。

dn: cn=john, dc=com
cn: john
cn: jsmith
displayName: john
displayName: jsmith
certificate: verisign
certificate: selfsigned
title: SMTS
sn: smith
objectclass: person
objectclass: top
member: cn=john, sn=smith, dc=oracle, dc=com
member: cn=jsmith, sn=smith, dc=oracle, dc=com

4.2.8 Dump Transactionsプラグイン

Dump Transactionsプラグインは、各LDAP操作の全トランザクションのレコードを生成し、そのレコードをOracle Virtual Directoryのコンソール・ログに記録します。Dump Transactionsプラグインは、任意のログ・レベルで実行するように構成できます。Dump Transactionsプラグインは、ロジックがOracle Virtual Directoryシステムを通過する際に、マッピングおよび統合作業を診断するのに特に便利です。Dump Transactionsプラグインを使用すると、サーバー・ログ・レベル全体をより詳細なレベルに設定せずに、特定のアダプタの問題を分析できます。Dump Transactionsプラグインは、Oracle Virtual Directoryのプロトコル・アナライザのようなものです。

4.2.8.1 構成パラメータ

Dump Transactionsプラグインには、次の構成パラメータがあります。

loglevel

プラグインがトランザクションを記録するログ・レベル。サポートされている値は、SEVERE、WARNING、INFO、FINE、FINERおよびFINESTです。デフォルト値はありません。

4.2.9 DynamicTreeプラグイン

DynamicTreeプラグインにより、実在、仮想、または別の実在エントリを指すポインタである親エントリを持つソース・ディレクトリ・エントリの属性値を使用してOracle Virtual Directory内にDNを作成できます。


注意:

DynamicTreeプラグインは、アダプタへのデプロイメントに対してのみサポートされています。DynamicTreeプラグインをグローバル・プラグインとしてデプロイしないでください。


このプラグインは、ソース・ディレクトリ・エントリに含まれる構造型データに基づいてLDAP階層形式で組織図およびレポートを生成する際に役立ちます。Dynamic Treeプラグインは、ユーザーによるディレクトリ・ツリーの参照が可能なため、DynamicEntry Treeプラグインよりも高い柔軟性を備えています。

次の図と例について考えてみます。


注意:

次の図では、ソース・ディレクトリの属性値が太字で示されています。


図4-2は、ソース・ディレクトリに配置されているディレクトリ構造の例を示しています。

図4-2 ソース・ディレクトリのディレクトリ構造の例

ソース・ディレクトリの例

図4-3は、parentEntryTypeパラメータを1に、attributeNameパラメータをparentouに設定したDynamicTreeプラグインが、図4-2に示すソース・ディレクトリの平面的な階層を、Oracle Virtual Directoryのレイヤー階層に変換する方法の例を示しています。

図4-3 DynamicTreeプラグインを使用したOVDのディレクトリ構造

DynamicTreeプラグインを使用したOVDのディレクトリ構造

図4-4は、ソース・ディレクトリに配置されているディレクトリ構造のもう1つの例を示しています。

図4-4 ソース・ディレクトリのディレクトリ構造の例

ソース・ディレクトリ構造の例

図4-5は、parentEntryTypeパラメータを0に、attributeNameパラメータをlに設定したDynamicTreeプラグインが、図4-4に示すソース・ディレクトリのl属性値に基づいてOracle Virtual Directoryにレイヤー階層に作成する方法の例を示しています。

図4-5 DynamicTreeプラグインを使用したOVDのディレクトリ構造

DynamicTreeプラグインを使用したOVDのディレクトリ構造

4.2.9.1 構成パラメータ

DynamicTreeプラグインには、次の構成パラメータがあります。

attributeName

エントリの親エントリを指定するために使用される属性。

parentEntryType

親エントリのタイプを指定します。サポートされている値は0および1です。仮想親エントリに対しては0を選択します。これは、ソース・ディレクトリの属性値に基づいてOracle Virtual Directoryによって作成されるエントリです。複数のouコンテナによって作成された親エントリに対しては1を選択します。

4.2.10 DynamicEntryTreeプラグイン

DynamicEntryTreeは、汎用目的のプラグインであり、エントリのリーフ・ノードにある属性を使用して仮想ディレクトリ・ツリー階層を生成するために使用できます。たとえば、アダプタがo=Airius.comというルートを持っており、ユーザーがuid=scarter,ou=people,o=airius.comとして存在する場合、DynamicEntryTreeプラグインは、uid=scarter,ou=accounting,ou=people,o=airius.comなどユーザーのエントリに存在するデータを使用して新しい階層を挿入できます。

4.2.10.1 構成パラメータ

DynamicEntryTreeプラグインには、次の構成パラメータがあります。

patterns

DynamicEntryTreeプラグインは、patterns構成パラメータを使用して一致パターンを指定することにより構成されます。patternsパラメータ値の構文は次のとおりです。

attr[=entryattr[(SUPPRESS|value)]],...

DNコンポーネントごとに、属性名は、等号(=)の右側にある属性で置換される値を持つことができます。置換が必要ない場合、単に属性がリストされ、それらは基本的に元のDNと一致するコンポーネントを参照します。値が置換される場合、entryattrに値がない場合の処理をさらに条件付けることもできます。SUPPRESSを指定してエントリを完全に抑制するか、entryattr名の後の大カッコ内にデフォルト値を指定できます。

|を使用して区切ることで、複数のパターンを定義できます。次に例を示します。

uid,ou=department(contract),ou|cn,ou=code(SUPPRESS)

このルールには2つのパターンがあります。1つのパターンは、uid,ouに一致するdnコンポーネントを持つアダプタ・ルート(o=airius.com)の下のオブジェクトに一致します。したがって、uid=scarter,ou=people,o=airius.comがマッピングに選択されます。戻されるときは、department属性が値についてチェックされます。何も存在しない場合、静的テキストcontractに置換されます。検索の際は、ベースがuid=scarter,ou=accounting,ou=people,o=airius.comに設定されている場合、新しいベースがuid=scarter,ou=people,o=airius.comになるように検索が変更され、フィルタはou=accountingの追加のandで結合された項目で変更されます。

2つ目のパターンは、cn rdnコンポーネントを持つo=airius.comの子オブジェクトに一致することが意図されています。一致した場合、そのエントリに属性codeがあると、cn=mygroup,ou=code12,o=airius.comを作成してその値が置換されます。属性codeがない場合、エントリの結果はSUPPRESSキーワードによって抑制されます。

4.2.11 FlatTreeプラグイン

FlatTreeプラグインは、DynamicEntryTreeの場合と同様に、仮想ディレクトリ・ツリーの動的マッピングを実行します。FlatTreeプラグインではディレクトリ・ソースが圧縮されるため、すべてのエントリがアダプタ・ルートの下に直接表示されます。

たとえば、ルートがdc=oracle,dc=comのアダプタがあり、FlatTreeプラグインはそれに対してデプロイされていると仮定します。FlatTreeプラグインは、uid=jsmith,cn=users,dc=peopleContainer,dc=oracle,dc=comなどのエントリDNを、バックエンドからuid=jsmith,dc=oracle,dc=comに変換します(アダプタ・ベースで直接実行される)。したがって、バックエンド・データの階層構造はフラット化され、アダプタ・ベースの下に直接表示されます。

FlatTreeプラグインは、2種類のデプロイ・モードで動作します。

  • 既存のネームスペースをフラット化するための既存のアダプタの一部として動作

  • カスタム・アダプタ・デプロイの一部として動作

カスタム・アダプタ・デプロイメントの一部として、FlatTreeプラグインのアダプタ・パラメータを使用して、指定されたアダプタからデータを取得できます。これにより、データは、カスタム・アダプタのネームスペースの一部として表示されます。この方法でデプロイすると、アダプタ・ルート・オブジェクトは定義されません。このタイプのデプロイメントは、重複した親ノードを作成せずに、親アダプタの上に複数のアダプタをオーバーレイする場合に便利です。

4.2.11.1 構成パラメータ

次に、FlatTreeプラグイン構成パラメータのリストと説明を示します。

criteria

criteriaには、FlatTreeプラグインを介して検索できるエントリを制限するLDAPフィルタを定義します。たとえば、criteriaをobjectclass=userと設定した場合、FlatTreeプラグインを介して戻されるのはuserオブジェクトのみです。

adapter

adapterパラメータが定義されていない場合、FlatTreeプラグインでは、データは親アダプタを介して取得されるとみなされます。定義されている場合、adapterパラメータは、Oracle Virtual Directory構成内の別のアダプタ名である必要があります。FlatTreeプラグインによりこのアダプタからデータが取得され、そのエントリが親アダプタのルートにマップされます。adapterパラメータが定義されている場合、子エントリのみが戻され、ルート・オブジェクトは戻されません。

4.2.12 DynamicGroupsプラグイン

DynamicGroupsプラグインを使用すると、Oracle Virtual Directoryで(動的グループと呼ばれる)groupofuniquenamesおよびgroupofurlsの両方のLDAPオブジェクト・クラスを処理し、それを仮想の静的なグループまたはgroupofuniquenamesと同等のものに変換できます。このプラグインは、戻されるLDAPオブジェクトを監視することで機能し、memberurl属性が存在し、かつオブジェクト・クラスがgroupofuniquenamesおよびgroupofurlsの両方であるオブジェクトを検出します。

検出された場合には、プラグインによりmemberurl値が自動的に処理され、uniquemember属性に結果が追加されます。動的にオブジェクトが処理されることにより、管理者は、通常ならgroupofurlsオブジェクト・クラスをサポートしないアプリケーションとの互換性を維持しながら、静的メンバーおよび動的メンバーの両方が含まれるグループを定義できます。

例4-1は、Dynamic Groupsプラグインが有効化されていない場合の問合せの例を示しています。2つのグループが戻され、1つ目のグループには、2つの静的メンバーと、メンバーとなる特定のディレクトリ・サブツリーを定義するmemberurlが含まれています。

例4-1 Dynamic Groupsプラグインが有効化されていない場合の問合せの例

C:\>ldapsearch -D bindDN -q -b ou=groups,ou=airius,o=yourcompany.com -s
sub "(memberurl=*)"

cn=test,ou=groups,ou=airius,o=yourcompany.com
cn=test
memberurl=ldap:///ou=accounting,o=yourcompany.com??sub?(&(objectclass=person)(obj
ectclass=organizationalperson))
objectclass=groupofuniquenames
objectclass=groupofurls
objectclass=top
uniquemember=cn=Paul Jacobs,ou=People,ou=Airius,o=yourcompany.com
uniquemember=cn=Wendy Verbaas,ou=People,ou=Airius,o=YourCompany.com

cn=TestCheck,ou=groups,ou=airius,o=yourcompany.com
memberurl=ldap:///ou=alt bind,o=yourcompany.com??sub?(&(userprincipalname=*))
objectclass=groupofuniquenames
objectclass=groupofurls
cn=TestCheck

例4-2に、例4-1と同じ問合せで、Dynamic Groupsプラグインが有効化されている場合の結果を示します。

例4-2 Dynamic Groupsプラグインが有効化されている場合の問合せの例

C:\>ldapsearch -D bindDN -q -b ou=groups,ou=airius,o=yourcompany.com -s
sub "(cn=test)"

cn=test,ou=groups,ou=airius,o=yourcompany.com
memberurl=ldap:///ou=accounting,o=yourcompany.com??sub?(&(objectclass=person)(obj
ectclass=organizationalperson))
objectclass=groupofuniquenames
objectclass=groupofurls
objectclass=top
cn=test
uniquemember=cn=Paul Jacobs,ou=People,ou=Airius,o=yourcompany.com
uniquemember=cn=Wendy Verbaas,ou=People,ou=Airius,o=YourCompany.com
uniquemember=cn=Vipi Velasquez,ou=accounting,o=yourcompany.com
uniquemember=cn=Preston Pena-Fernandez,ou=accounting,o=yourcompany.com
uniquemember=cn=Andreas O'Hara,ou=accounting,o=yourcompany.com
uniquemember=cn=Chitra Guenette,ou=accounting,o=yourcompany.com
...
uniquemember=cn=Jim Ward,ou=accounting,o=yourcompany.com

クライアント・リクエストに指定されている検索フィルタがリモート・バックエンド・サーバーからエントリを戻さない場合にのみ、Dynamic GroupプラグインがmemberURL値を拡張します(つまり、memberURLにベース、有効範囲、フィルタを指定してLDAP検索問合せを実行し、戻されたDNをメンバー属性に追加します)。

この点を説明するために、例4-3に示すLDAPエントリが、Oracle Virtual Directoryを使用するように構成されたリモートLDAPサーバーに存在していると想定します。

例4-3 Oracle Virtual Directoryを使用しているリモートLDAPサーバー上のLDAPエントリ

dn:cn=admingroup,dc=groups,dc=acme,dc=com
uniqueMember:cn=mark,cn=users,dc=acme,dc=com
memberURL:ldap:///cn=users,dc=acme,dc=com??sub?(|(cn=john)(cn=smith))
objectClass:groupOfUniqueNames
objectClass:groupOfUrls

次のLDAP検索では、memberURL値を拡張することなく、エントリがそのままの状態で戻されます。

Base DN: dc=groups,dc=acme,dc=com
Scope: sub
Filter: uniquemember=cn=mark,cn=users,dc=acme,dc=com

ただし、次のLDAP検索を実行すると、Dynamic Groupプラグインによって例4-4に示すuniqueMemberにcn=john値を持つLDAPエントリが戻されます。

Base DN: dc=groups,dc=acme,dc=com
Scope: sub
Filter: uniquemember=cn=john,cn=users,dc=acme,dc=com

例4-4 uniqueMemberの値とともに戻されるLDAPエントリ

dn:cn=admingroup,dc=groups,dc=acme,dc=com
uniqueMember:cn=mark,cn=users,dc=acme,dc=com
uniqueMember:cn=john,cn=users,dc=acme,dc=com
memberURL:ldap:///cn=users,dc=acme,dc=com??sub?(|(cn=john)(cn=smith))
objectClass:groupOfUniqueNames
objectClass:groupOfUrls

バックエンド・リモート・サーバーで構成された動的グループを解決するには、次の手順を実行する必要があります。

  1. DynamicGroupsプラグインを構成します。

  2. memberurlをリモート・ベースからプロキシ・ルートDNに変更するアダプタ構成の「DN属性」リストにmemberurl属性を追加します。この構成がない場合、このアダプタに対して動的グループを変換することはできません。

たとえば、Oracle Virtual Directoryアダプタ構成のベース・ルートDNがリモート・ベースと異なる場合に、DynamicGroupsプラグインをアクティブ化して動的グループを解決するには、次の手順を実行します。

  1. リモート・サーバーで動的グループを構成します。

    cn=dyngroup,dc=ralf,dc=oracle,dc=com
    memberurl: ldap:///dc=ralf,dc=oracle,dc=com??sub?cn=a*
    uniquemember: cn=b1,ralf,dc=oracle,dc=com
    
  2. 動的メンバー・エントリを移入します。

    cn=a1,dc=ralf,dc=oracle,dc=com
    
  3. LDAPアダプタをルートDNがリモート・ベースと等しくならないように構成します。

    Root DN : dc=test,dc=ovd,dc=comRemote base : dc=ralf,dc=oracle,dc=com
    
  4. アダプタ構成のdnAttributeリストにmemberurlを追加します。

    DN Attributes : uniquemember,manager,secretary,owner,memberurl
    
  5. DynamicGroupsプラグインを構成します。

  6. プロキシ・ベースで検索操作を実行します。

    > ldapsearch -p 5566 -D cn=admin -w welcome1 -b
    "dc=test,dc=ovd,dc=com"
    -s sub "cn=dyn*"
    

    テスト結果は、次の例のようになります。

    cn=dyngroup,dc=test,dc=ovd,dc=com
    memberURL=ldap:///dc=dc=test,dc=ovd,dc=com??sub?cn=a*
    objectClass=groupofuniquenames
    objectClass=groupofurls
    objectClass=top
    cn=dyngroup
    uniquemember=cn=b1,dc=test,dc=ovd,dc=com
    uniquemember=cn=a1,dc=test,dc=ovd,dc=com
    

    ベースDNのすべてが、dc=ralf,dc=oracle,dc=com to dc=test,dc=ovd,dc=comから変換されていることに注意してください。

次の例は、Oracle Virtual Directoryアダプタ構成のベース・ルートDNがリモート・ベースと同じ場合に、DynamicGroupsプラグインをアクティブ化して動的グループを解決する方法を示しています。

  1. リモート・サーバーで動的グループを構成します。

    cn=dyngroup,dc=ralf,dc=oracle,dc=com
    memberurl: ldap:///dc=ralf,dc=oracle,dc=com??sub?cn=a*
    uniquemember: cn=b1,ralf,dc=oracle,dc=com
    
  2. 動的メンバー・エントリを移入します。

    cn=a1,dc=ralf,dc=oracle,dc=com
    
  3. LDAPアダプタをルートDNがリモート・ベースと等しくなるように構成します。

    Root DN : dc=ralf,dc=oracle,dc=comRemote base : dc=ralf,dc=oracle,dc=com
    
  4. Dynamic Groupsプラグインを構成します。

  5. プロキシ・ベースで検索操作を実行します。

    > ldapsearch -p 5566 -D cn=admin -w welcome1
    -b "dc=ralf,dc=oracle,dc=com" -s sub "cn=dyn*"
    

この例のテスト結果は、次のようになります。

cn=dyngroup,dc=ralf,dc=oracle,dc=com
memberURL=ldap:///dc=ralf,dc=oracle,dc=com??sub?cn=a*
objectClass=groupofuniquenames
objectClass=groupofurls
objectClass=top
cn=dyngroup
uniquemember=cn=b1,dc=ralf,dc=oracle,dc=com
uniquemember=cn=a1,dc=ralf,dc=oracle,dc=com

この最後の例では、動的グループを解決せずに、memberurlのベースDNのみを変換する方法を示しています。

  1. リモート・サーバーで動的グループを構成します。

    cn=dyngroup,dc=test,dc=ovd,dc=com
    memberurl: ldap:///dc=ralf,dc=oracle,dc=com??sub?cn=a*
    uniquemember: cn=b1,dc=test,dc=ovd,dc=com
    
  2. 動的メンバー・エントリを移入します。

    cn=a1,dc=test,dc=ovd,dc=com
    
  3. LDAPアダプタをルートDNがリモート・ベースと等しくならないように構成します。

    Base DN : dc=test,dc=ovd,dc=comRemote base : dc=ralf,dc=oracle,dc=com
    
  4. プロキシ・ベースで検索操作を実行します。

    > ldapsearch -p 5566 -D cn=admin -w welcome1 -b
    "dc=test,dc=ovd,dc=com"
    -s sub "cn=dyn*"
    

テスト結果は、次のようになります。

cn=dyngroup,dc=test,dc=ovd,dc=com
memberURL=ldap:///dc=test,dc=oracle,dc=com??sub?cn=a*
objectClass=groupofuniquenames
objectClass=groupofurls
objectClass=top
cn=dyngroup
uniquemember=cn=b1,dc=test,dc=ovd,dc=com

Oracle Virtual DirectoryがベースDNを変換し、静的メンバーのみを取得していることに注意してください。

4.2.12.1 グループ・メンバーシップのテスト

ポリシー・サーバーなどの製品では、特定のユーザーがグループのメンバーであるかどうかの確認が必要な場合がよくあります。これは、グループが大規模であったり動的グループである場合には大変な作業になります。ただし、Dynamic Groupsプラグインでは、cnおよびuniquememberフィルタ項目の両方の有無を確認することで、メンバーシップ・テストの問合せを検出できます。存在する場合、Dynamic Groupsプラグインは、クライアントでメンバーシップ・アサーションのテストが必要であることを確認し、別の方法で問合せを処理します。例4-5に示すように、プラグインにより結果が変更され、メンバーとしてテストされる単一のユーザーのみが戻されます。

例4-5 Dynamic Groupsプラグインを使用したメンバーシップ・テストの例

C:\>ldapsearch -D bindDN -q -b ou=groups,ou=airius,o=yourcompany.com -s
sub "(&(cn=TestCheck)(uniquemember=cn=Jim Ward,ou=accounting,o=yourcompany.com))"

cn=TestCheck,ou=groups,ou=airius,o=yourcompany.com
memberurl=ldap:///ou=accounting,o=yourcompany.com??sub?(&(userprincipalname=*))
objectclass=groupofuniquenames
objectclass=groupofurls
cn=TestCheck
uniquemember=cn=Jim Ward,ou=Accounting,o=YourCompany.com

4.2.12.2 構成パラメータ

次に、構成パラメータのリストと説明を示します。Dynamic Groupsプラグインを有効化するには、それをプラグイン・チェーンに追加します。

memberattribute

メンバー値を格納する属性の名前。値が指定されていない場合、デフォルトでuniqueMemberが使用されます。

accessInternal

このパラメータをtrueに設定すると、このプラグインが、可視性が内部に設定されているアダプタにアクセスし、それらの内部アダプタで構成されているメンバーのmemberURLを解決できるようになります。デフォルトはfalseです。

usersearchbase

LDAP URLに指定されているベースを上書きする必要がある仮想検索ベース用のオプションの値。

fetchBothStaticAndDynamicGps

ユーザーが、静的および動的の両方のグループのメンバーである場合に使用されるパラメータ。デフォルトはfalseです。

  • falseに設定した場合、特定の検索されたユーザーが属する静的グループのみが取得され、動的グループは取得されません。

  • trueに設定した場合、検索されたユーザーが属する静的および動的の両方のグループが取得されます。

checkurlbase

メンバーシップ・テスト問合せを実行する際に、memberURLに指定されているベースおよび有効範囲を尊重するかどうかを示すブール値。デフォルトはfalseです。

globalsearch

動的グループを展開するための検索の発生場所の制御に使用されるパラメータ。

  • trueに設定した場合、検索はグローバル・プラグイン・チェーン(グローバル・サービス・インタフェース)層から発生します。

  • falseに設定した場合、検索はアダプタ・プラグイン・チェーン(アダプタ・サービス・インタフェース)層から発生します。

  • vsiに設定した場合、検索はOracle Virtual Directoryの動的グループ・プラグイン(仮想サービス・インタフェース)の次に構成されたプラグインから発生します。

expandGroupURL

動的グループが展開される必要があるかどうかを示すブール。この値が明示的に構成されていない場合は、検索リクエストのリクエストされた属性に基づいて黙示的に計算されます。黙示的な計算については、検索問合せリクエストでリクエストされた属性がすべての属性用、またはmember/uniquemember属性用の場合、グループは展開されます。そうでない場合、グループは展開されません。しかし、この明示的に構成された値は、黙示的な動作に優先します。

4.2.13 Cacheプラグイン

Cacheプラグインは、Oracle Virtual Directoryに本来のキャッシュを提供します。これは、LDAP検索結果セットのメモリー内コピーであり、繰り返される問合せのパフォーマンスが向上するように設計されています。たとえば、3回連続でエンタープライズLDAPサーバー(Oracle Virtual Directory)のすべてのグループを問い合せる日次同期プロセスの一部としてサード・パーティのポータル・サーバーがあるとします。Cacheプラグインは、LDAPクライアントが再利用できるように、最初の検索結果のコピーを保持できます。クライアント・アプリケーションにとっては結果がわずかに早くなるだけですが、より重要なことは、エンタープライズ・ソース・システムの負荷が削減されることです。

Oracle Virtual DirectoryはCacheプラグインなしで機能するように設計されており、多くの場合、Cacheプラグインは必要ありません。これは、多くのアプリケーションで結果がそれ自体にキャッシュされるか、ほとんどのエンタープライズ・ソース・システムですでにデータがキャッシュされているためです。また、Oracle Virtual Directoryはセキュリティで保護された環境で使用されることが多く、キャッシュを保持すると、従業員が操作を終了してもそのユーザー結果がキャッシュに残されたままになるなど、セキュリティ要素の公開につながります。


注意:

Cacheプラグインを使用する場合は、キャッシュ・タイムアウトを小さくして、このような場合にキャッシュの更新の問題を避ける必要があります。


Cacheプラグインを使用すると、問合せが何度も繰り返されるアプリケーションのパフォーマンスを大幅に向上できます。また、Oracle Virtual Directory内のどこでも実行できるように構成できます。Cacheプラグインはグローバルに実行することも、単一アダプタのコンテキスト内で実行することも可能であり、ネームスペース・フィルタ処理を使用して特定のネームスペースに制限することもできます。

問合せが同じユーザーによって繰り返され、同一の属性または属性のサブセットがリクエストされる場合、Oracle Virtual Directoryがソースから情報を取得するのではなく、キャッシュから問合せの結果が戻されます。たとえば、問合せ2でクライアントが検索属性を変更する、次のような2つの仮想の問合せがあるとします。

問合せ1

  • バインド: "cn=Example User,cn=users,dc=mycompany,dc=com"

  • ベース: "dc=mycompany,dc=com"

  • 問合せ: "uid=jdoe"

  • 属性: "cn,mail"

問合せ2

  • バインド: "cn=Example User,cn=users,dc=mycompany,dc=com"

  • ベース: "dc=mycompany,dc=com"

  • 問合せ: "uid=jdoe"

  • 属性: "telephonenumber,manager"

Cacheプラグインを使用すると、Oracle Virtual Directoryは問合せ1および問合せ2を2つの別々の問合せとして扱わないため、バックエンド・ソースは2回検索されません。Oracle Virtual Directoryは、問合せ1で一致するエントリのすべての属性をリクエストしますが、クライアントがリクエストした属性のみを戻し、キャッシュに検索結果のメモリー内コピーを保持します。


注意:

Oracle Virtual Directoryは、バックエンドのソース・リポジトリであるアクセス制御リスト(ACL)、Oracle Virtual Directory ACLおよびアダプタ・ルーティング・ルールに基づいて、バインドされたユーザーがアクセス権を持っている属性のみを取得します。


キャッシュ・ヒットをユーザー間で共有できるようにCacheプラグインを構成することもできます。passcredentialsがバックエンド・ソースに渡されず、Oracle Virtual Directoryのみによってセキュリティが実施されている場合以外は、ユーザー間でキャッシュ・エントリを共有しないでください。


注意:

より強力な権限を持つユーザーのキャッシュ結果にアクセスする可能性があり、許可されていない情報を表示することも可能であるため、ユーザー間でキャッシュ・ヒットを共有する際には慎重に計画を立ててください。


Cacheプラグインは、キャッシュを定期的に確認し、期限切れの結果や以前の変更トランザクションで無効にされたエントリがないかどうかチェックします。キャッシュの割当てを超えた場合、Cacheプラグインは使用されていない期間が最も長い問合せをパージしてメモリーのサイズを小さくしようと試みます。

4.2.13.1 構成パラメータ

次に、Cacheプラグイン構成パラメータのリストと説明を示します。

storeallattrs

Cacheプラグインですべての属性をサイレントにリクエストするかどうかを制御します。サポートされている値は0(無効化)または1(有効化)です。デフォルトで、storeallattrsパラメータは無効化(0)されています。

bysubject

サブジェクト間でキャッシュ結果を共有するかどうかを示します。サポートされている値は0または1です。0の値はサブジェクト間で結果が共有されることを意味し、1の値はサブジェクト間で結果が共有されないことを意味します。デフォルト値は1です。

maintenanceinterval

キャッシュ・マネージャが期限切れの問合せがないかチェックする間隔(秒)。デフォルト値は60です。

size

一度にキャッシュ可能なエントリの最大数。デフォルト値は10000です。

maximumage

キャッシュに保存される問合せ/エントリの秒単位の最大有効期間(時間)。デフォルト値は600です。

maxresultsize

特定の問合せに対してキャッシュ可能なエントリの最大数。デフォルト設定は1000です。

trimsize

このパラメータは、最大キャッシュ・サイズを超えた場合に、キャッシュ・マネージャが調整する必要のある量を示します。デフォルト値は10000です。


注意:

必要な場合には、最初に有効期限の切れた問合せ、続いて使用頻度が最低の問合せをパージすることで調整が行われます。


zeroresults

含まれているエントリがゼロ個の問合せ結果をキャッシュするかどうかを示します。サポートされている値は0および1です。

4.2.14 ObjectClass Mapperプラグイン

ObjectClass Mapperプラグインは、あるobjectClass(userなど)を別のobjectClass(inetOrgPersonなど)として認識させる一般的なマッピング・プラグインです。この機能は、ディレクトリで特定のobjectClassまたは属性はサポートされていないが、アプリケーションでそのobjectClassおよび属性が予期されている際に便利です。

ObjectClass Mapperプラグインでは、選択する構成パラメータに基づいて、次に示すような複数の異なるタイプの操作を実行できます。

  • 属性マッピング

  • オブジェクト・クラス・マッピング

  • オブジェクト・クラスへの属性条件の追加

  • 属性の削除

  • 補助クラスのフィルタ処理

  • アクティブ化および非アクティブ化の処理

属性のマッピング関係が生じた場合、接頭辞client-はクライアント側を、source-はデータ・ソース側を表します。たとえば、Active DirectoryサーバーのuserをマッピングしてそれをInetOrgPersonとして表すようにした場合、Active Directoryはソース側でInetOrgPersonはクライアント側になります。

4.2.14.1 構成パラメータ

次に、ObjectClass Mapperプラグイン構成パラメータのリストと説明を示します。

directoryType

ユーザーのアクティブ化を実行する際に使用するディレクトリのタイプ。サポートされている値はSunOne、eDirectory、ADAMおよびActiveDirectoryです。次に例を示します。

パラメータ名: directoryType

パラメータ値: ActiveDirectory

activationAttribute

activationAttributeパラメータは、アプリケーションに、基礎となるディレクトリのユーザー・アクティベーション・システムに関する情報がない場合に使用します。activationAttributeパラメータにより、ユーザー・アクティベーション・フラグが含まれている着信属性が、Oracle Virtual Directoryに通知されます。その後、このフラグは、ディレクトリ固有の属性およびフラグにマップされます。次に例を示します。

パラメータ名: activationAttribute

パラメータ値: myuseraccountcontrol

deactivationValue

ユーザーを非アクティブとしてマークする必要があることを示すactivationAttributeに指定された属性値のカンマ区切りリスト。

activationValue

ユーザーをアクティブとしてマークする必要があることを示すactivationAttributeに指定された属性値のカンマ区切りリスト。

mapObjectClass

client-ObjectClass=source-ObejctClassという書式でマップされるobjectClass。次に例を示します。

パラメータ名: mapObjectClass

パラメータ値: inetOrgPerson=user

mapObjectClassパラメータは、複数のマッピングに複数回使用できます。

addAttribute[-objectclassvalue]

追加プロセス中にユーザーに属性を追加します。オプションのオブジェクト・クラス値は、特定のオブジェクト・クラスのみに属性を追加するために、構成名に追加できます。たとえば、ユーザー・オブジェクト・クラスのみにuserAccountControl属性を追加するには、次のものを使用します。

パラメータ名: addAttribute-user

パラメータ値: userAccountControl=546


注意:

属性名をパーセンテージ文字(%)で囲んで入力することにより、式の値側で属性値を参照できます。次に例を示します。

パラメータ名: addAttribute-group

パラメータ値: samaccountname=%cn%


filterAttribute[-objectclassvalue]

追加操作または変更操作中に削除される(および返されたすべてのエントリから削除される)属性のカンマ区切りのリスト。次に例を示します。

パラメータ名: filterAttribute

パラメータ値: objectsid,memberof,samaccountname

  • filterAttribute定義にobjectclass(filterAttribute-ユーザー:memberof)を追加する場合、追加および変更操作中に、属性のカンマ区切りリストが、関連するobjectclassを持つエントリから削除されます。

  • filterAttribute定義にobjectclass(filterAttribute-ユーザー:memberof)を追加しない場合は、属性のカンマ区切りのリストは、追加および変更操作中に削除されます(および返されたすべてのエントリから削除される)。

mapAttribute

client-Attribute=source-attributeという書式でマップされる属性。次に例を示します。

パラメータ名: mapAttribute

パラメータ値: uniqueMember=member

mapAttributeパラメータは、複数のマッピングに複数回使用できます。

filterAuxiliaryClass

追加操作中に削除する必要のあるオブジェクト・クラスのカンマ区切りのリスト。たとえば、Microsoft Active Directory for Windows 2000では、エントリの追加中に補助オブジェクト・クラスをリストすることはできませんが、Microsoft Active DirectoryおよびADAM for Windows Server 2003では補助クラスをリストできます。次に例を示します。

パラメータ名: filterAuxiliaryClass

パラメータ値: person,myorgPerson

filterObjectClassOnModify

filterObjectClassOnModifyパラメータを使用して、変更操作中にobjectClassエントリの変更を削除します。サポートされる値はtrue (変更を削除)またはfalse (変更を削除しない)です。trueがデフォルトです。次に例を示します。

パラメータ名: filterObjectClassOnModify

パラメータ値: true、false

4.2.15 Sub-Treeプラグイン

Sub-Treeプラグインは、元々、IBMのTivoli Access Manager製品の旧バージョンをサポートするために開発されました。この製品には、ユーザー・エントリの下にユーザー・エントリに関するポリシー情報を格納するという要件があったため、通常のリーフ・モデルからのユーザー・エントリはブランチに変更されていました。一部のディレクトリではそのようなモデルをサポートしていないか、企業ディレクトリにそのような方法で移入する必要がありませんでした。

Sub-Treeプラグインを使用すると、アプリケーション(この場合はTivoli Access Manager)に対象のディレクトリ・ツリー・ビューを提供しながら、これらのサブツリー・エントリを異なるアダプタに格納できます。通常のリーフ・エントリの下にエントリを追加するという要件は、一般的ではありません。より一般的なケースは、データ・ストアを既存のデータ・ストアの下にブランチとして表示させることです。これは、ルートのネームスペース値を正しく設定することで、どのアダプタでも実行できます。

4.2.15.1 構成パラメータ

次に、Sub-Treeプラグイン構成パラメータのリストと説明を示します。

storeadapter

ユーザー・サブツリー・オブジェクトを格納するためのアダプタ。

storeroot

ユーザー・サブツリー・オブジェクトを格納するストア・アダプタの場所。

subtreematch

Sub-Treeプラグインが捕捉してストア・アダプタにリダイレクトする必要のあるサブツリー識別名(DN)コンポーネントを指定します。デフォルト値はsecAuthority=Defaultです。

matchdn

ユーザー・オブジェクトが検出される識別名(DN)、およびユーザー・オブジェクトRDNを指定する番号付きのパラメータ。たとえば、0=ou=People,o=Airius.com\:uidのようになります。

4.2.16 Performance Monitorプラグイン

Performance Monitorプラグインを使用すると、特定のアダプタのパフォーマンスを監視できます。Performance Monitorプラグインを使用するには、それをアダプタに追加して、そのアダプタに対して操作を実行します。アダプタのパフォーマンスを表示するには、アダプタのルートのネームスペースで、vdeSearchtime=*というフィルタを使用して特定タイプのベース・レベルのLDAP検索を実行する必要があります。

検索により、例4-6のような結果が戻されます。この例では、時間はすべてミリ秒単位で計測されています。

例4-6 Performance Monitorプラグインを使用して戻されるデータの例

dn: dc=demo,dc=com
vdeNumSearches: 4
vdeNumEntries: 5
vdeMinSearchTime: 0
vdeMaxSearchTime: 16
vdeTotalSearchTime: 16
vdeAverageSearchTime: 4
vdeMinEntryTime: 0
vdeMaxEntryTime: 0
vdeTotalEntryTime: 0
vdeAverageEntryTime: 0
vdeMinSearchCompleteTime: 0
vdeMaxSearchCompleteTime: 203
vdeTotalSearchCompletionTime: 219
vdeAverageSearchCompletionTime: 54

注意:

Performance Monitorデータは、Oracle Virtual Directoryサーバーが再起動するとリセットされます。


4.2.16.1 構成パラメータ

Performance Monitorプラグインには構成パラメータはありません。Performance Monitorプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.2.17 UniqueEntryプラグイン

一部のOracle Virtual Directory環境のユーザーは、Oracle Virtual Directoryアダプタを使用して接続する複数のサービスに対して重複したアカウントを持っています。通常、結合ビュー・アダプタを作成して複数のアダプタを統一し、単一の仮想ユーザー・エントリを作成すると、この問題は解決します。ただし、結合ビュー・アダプタの作成が選択肢にならない場合があります。たとえば、社員用のディレクトリと顧客用のディレクトリがあるが、仕事上の正当な目的で両方のディレクトリにアカウントを持っている社員がいて、結合ビュー・アダプタを作成できない場合があります。

UniqueEntryプラグインは、それぞれの管理ソースで様々なアダプタをランク付けすることでこの問題を解決します。たとえば、重複しているユーザーIDのどれが社員のアカウントであるかの判断を試行している場合、社員ディレクトリの方が顧客ディレクトリよりも問題に関連があるため、顧客ディレクトリ・アダプタよりも社員ディレクトリ・アダプタの優先度を高くします。

アダプタの優先度をランク付けする場合、ランク付けの数値が低いほど優先度が高くなります。たとえば、2つのアダプタを検索していて、1つのアダプタの優先度のランクが5で、もう1つのアダプタのランクが10の場合、ランクが10のアダプタよりもランクが5のアダプタが先に検索されます。


注意:

UniqueEntryプラグインはアダプタ・レベルでは適用せず、必ずグローバル・プラグインとしてのみ適用してください。


4.2.17.1 構成パラメータ

UniqueEntryプラグインには、次の構成パラメータがあります。

uniqueattribute

一意キーとして使用する属性。

4.2.18 アダプタ・プラグイン・バージョン・プラグイン

アダプタ・プラグイン・バージョン・プラグインはデプロイしないでください。これは、情報提供を目的とするもので、サーバー機能はありません。これは、Oracle Directory Services Managerホーム・ページに表示されるアダプタ・バージョン情報を提供します。

4.2.19 Proxy Authorization Supportプラグイン

多くのデプロイメントにおいて、顧客は、ユーザー資格証明をMicrosoft Active Directoryなどのエンタープライズ・パスワード資格証明ディレクトリに格納しますが、Oracle Directory Server Enterprise Edition、Oracle Internet Directoryなどの他のデータソースからのコンテンツの集計も行っています。これらのデプロイメントでは、顧客は、認証されたユーザーにマップされる一貫性のあるセキュリティおよび監査証跡を適用する機能(ID反映と呼ぶ)を必要としています。Proxy Authorization Supportプラグインは、エンタープライズ・ディレクトリのプロキシ認証機能を活用します。それにより、ユーザーが実際にActive Directoryで認証された場合でも、そのユーザー・アイデンティティを1つ以上の他のソースに伝播でき、それらの追加のソースにおけるセキュリティおよび監査が、Oracle Virtual Directoryに格納されたアプリケーション・アカウントではなく、Oracle Virtual Directoryで認証された実際のユーザーにマップされます。

Proxy Authorization Supportプラグインは、クライアントDNを作成し、このクライアントDNとともにプロキシ認証制御をそのリクエストに追加し、そのリクエストをバックエンドLDAPサーバーに渡します。LDAPサーバーは、Oracle Virtual DirectoryのプロキシDNを使用してリクエストを認証し、プロキシ認証制御で指定されているクライアント・ユーザー・アイデンティティを使用して操作を処理します。クライアント・アプリケーションに対する変更は必要ありません。

Proxy Authorization Supportプラグインを構成する場合は、ディレクトリが、渡す予定のプロキシ制御をサポートするように構成する必要があります。

4.2.19.1 構成パラメータ

次に、Proxy Authorization Supportプラグイン構成パラメータのリストと説明を示します。

remoteBase

プロキシ認証制御で渡されるユーザー認証DNを作成するために親DNとして使用されるオプションのパラメータ。デフォルトでは、アダプタのremoteBaseと同じ値になります。

directoryType

ディレクトリ・タイプを示すために使用されるオプションのパラメータ。使用可能な値はOIDおよびSunOneです。デフォルト値はSunOneで、このリリースではこの値のみがサポートされています。

4.2.20 UserManagementプラグイン

UserManagementプラグインは、Oracle Identity Managerの属性からLDAPディレクトリ・サーバーへのデータ・マッピングを提供します。

4.2.20.1 構成パラメータ

UserManagementプラグインには、次の構成パラメータがあります。

filterObjectclass

追加または変更リクエスト時に削除する必要のあるオブジェクト・クラスのカンマ区切りのリスト。

removeAttribute

クライアントに戻される前にエントリから実際に削除される属性のカンマ区切りリスト。

exclusionMapping

特定のオブジェクト・クラスに対する特定の属性マッピングの除外を定義します。たとえば、値inetorgperson,uid=samaccountnameを持つパラメータを指定すると、オブジェクト・クラスinetorgpersonのエントリ上のuidからsamaccountnameへのマッピングが除外されます。このオプションの複数のインスタンスを使用すると、マッピングに対して複数の除外が可能になります。

oimLanguages

属性言語サブタイプで使用される言語コードのカンマ区切りリスト。このパラメータは、directoryTypeパラメータがActiveDirectoryに設定されている場合にのみ機能します。

oamEnabled

TrueまたはFalse: Oracle Access ManagerがOracle Identity Managerとともにデプロイされているかどうかを示します。デフォルトでは、Oracle Access Managerはデプロイされておらず、したがってこのパラメータのデフォルト設定はfalseです。


注意:

UserManagementプラグインとchangelogプラグインのoamEnabledパラメータの値は同一であることが必要です。


directoryType

ソースLDAPディレクトリ・サーバーのタイプを指定します。サポートされている値はOID、ActiveDirectoryおよびSunOneです。デフォルト値はOIDです。


注意:

UserManagementプラグインとchangelogプラグインのdirectoryTypeパラメータの値は同一であることが必要です。


ssladapter

ssladapterパラメータは、directoryTypeパラメータがActiveDirectoryに設定されている場合にのみ機能し、リクエストにuserPasswordまたはunicodePwdが含まれている場合にUserManagementプラグインによってリクエストがルーティングされる先のアダプタの名前を指定します。unicodePwdがリクエストに含まれている場合、そのリクエストには、適切な値を持つuseraccountControl属性も含まれている必要があります。

ssladapterパラメータによって指定されるアダプタは、次のようになっている必要があります

  • UserManagementプラグインが構成されているアダプタと同じローカル・ベースを持つ

  • ルーティングの可視性がInternalに設定されている

ssladapterに値が設定されていない場合は、デフォルトで現在のアダプタが使用されます。

mapAttribute

OVD-attribute=OIM-attributeの形式の属性変換を定義します。たとえば、orclGUID=objectGuidなどです。mapAttribute構成パラメータを複数回設定して、複数の属性の変換を定義できます。

mapPassword

TrueまたはFalse。directoryType構成パラメータをActiveDirectoryに設定すると、mapPasswordパラメータが、ユーザー・パスワードをunicodePwd属性に変換するかどうかを制御します。デフォルト値はfalseです。

mapRDNAttribute

OVD-RDNattribute=OIM-RDNattributeの形式のRDN属性変換を定義します。たとえば、uid=cnなどです。

pwdMaxFailure

(このプラグインがデプロイされているアダプタを介して公開されるユーザー・エントリに適用されたパスワード・ポリシーの定義に従い)ソースLDAPディレクトリ・サーバーによってアカウントがロックされるために必要な失敗ログインの最大回数を指定します。

mapObjectclass

OVD-objectclass=OIM-objectclassの形式のオブジェクト・クラスの値変換を定義します。たとえば、inetorgperson=userなどです。mapObjectclass構成パラメータを複数回設定して、複数のオブジェクト・クラスの変換を定義できます。


注意:

UserManagementプラグインとchangelogプラグインのmapObjectclassパラメータの値は同一であることが必要です。


addAttribute

このパラメータは、attribute=value pairsの形式でget操作結果を戻す前に追加する属性を指定します。属性名の前にobjectclass,を追加すると、属性と値を特定のオブジェクト・クラスに追加できます。また、値を%で囲んで他の属性を参照することもできます。たとえば、値user,samaccountname=%cn%を指定すると、エントリがobjectclass=userである場合にcnの値がsamaccountnameに代入されます。値samaccountname=jdoeを指定すると、値jdoeを持つ属性samaccountnameがすべてのエントリに追加されます。

4.2.21 Changelogプラグイン


注意:

リリース11.1.1.4.0より前のOracle Virtual Directoryには、次の3つのchangelogプラグインがありました。

  • Oracle Internet Directoryとともに使用するためのoidchangelog

  • Oracle Directory Server Enterprise Editionとともに使用するためのsunonechangelog

  • Microsoft Active Directoryとともに使用するためのadchangelog

これらの3つのプラグインはリリース11.1.1.4.0では非推奨となり、新しい単一のChangelogプラグインが使用可能になっています。このプラグインは、Oracle Internet Directory、Oracle Directory Server Enterprise Edition、およびMicrosoft Active Directoryで使用できます。


4.2.21.1 リリース11.1.1.4.0 Changelogプラグインのデプロイ

この単一のChangelogプラグインをデプロイする際は、次のことが必要です。

  • アダプタの「リモート・ベース」を空の値に、つまり空白にします。

  • アダプタの「マップされたネームスペース」をcn=changelogに設定します。

  • バックエンドがOracle Directory Server Enterprise Editionである場合、Oracle Directory Server Enterprise Edition上のロギングの変更を必ず有効化してください。

4.2.21.2 前のリリースからのChangelogプラグインのデプロイ

11.1.1.4.0より前にリリースされたバージョンのOracle Virtual Directoryを使用している場合、次のchangelogプラグインを使用して、changelog情報をソース・ディレクトリからOracle Identity Managerに適した形式に標準化してください。


注意:

これらのプラグインはOracle Virtual Directoryリリース11.1.1.4.0では機能しません


Oracle Internet Directoryの場合

Oracle Internet Directoryではoidchangelogプラグインを使用します。

oidchangelogプラグインをデプロイする場合は、アダプタの「リモート・ベース」を空の値に、つまり空白にします。

Oracle Directory Server Enterprise Editionの場合

Oracle Directory Server Enterprise Editionでは、sunonechangelogプラグインを使用します。

sunonechangelogプラグインをデプロイする際は、次のことが必要です。

  • アダプタの「リモート・ベース」を空の値に、つまり空白にします。

  • Oracle Directory Server Enterprise Editionで変更ログが有効化されていることを確認します。

  • アダプタの「マップされたネームスペース」をcn=changelogに設定します。

Microsoft Active Directoryの場合

Microsoft Active Directoryではadchangelogプラグインを使用します。

adchangelogプラグインをデプロイする際は、次のことが必要です。

  • アダプタの「リモート・ベース」を空の値に、つまり空白にします。

  • アダプタの「マップされたネームスペース」をcn=changelogに設定します。

4.2.21.3 構成パラメータ

各changelogプラグインには、次の構成パラメータがあります。

removeAttribute

クライアントに戻される前にエントリから実際に削除される属性のカンマ区切りリスト。

oimLanguages

属性言語サブタイプで使用される言語のカンマ区切りリスト。

skipErrorChangelog

TrueまたはFalse。falseに設定されていて、破損したchangelogエントリがプラグインによって検出された場合、プラグインはDirectoryExceptionをスローし、changelogエントリのそれ以降の処理を停止します。trueに設定されている場合、プラグインは例外をスローせずにエラーを記録し、このchangelogをスキップして、次のchangelogの処理を続行します。デフォルト値はfalseです。

oamEnabled

TrueまたはFalse: Oracle Access ManagerがOracle Identity Managerとともにデプロイされているかどうかを示します。デフォルトでは、Oracle Access Managerはデプロイされておらず、したがってこのパラメータのデフォルト設定はfalseです。


注意:

UserManagementプラグインとchangelogプラグインのoamEnabledパラメータの値は同一であることが必要です。


directoryType

ソースLDAPディレクトリ・サーバーのタイプを指定します。サポートされている値はOID、ActiveDirectoryおよびSunOneです。デフォルト値はOIDです。


注意:

UserManagementプラグインとchangelogプラグインのdirectoryTypeパラメータの値は同一であることが必要です。


mapObjectclass

OIM-objectclass=Source-Directory-objectclassの形式のオブジェクト・クラスの値変換を定義します。たとえば、inetorgperson=userなどです。mapObjectclass構成パラメータを複数回設定して、複数のオブジェクト・クラスの変換を定義できます。

Oracle Identity Managerのユース・ケースでは、次のパラメータがすぐに使用できるように構成されています。

  • Active Directoryの場合: inetorgperson=user, orclidxperson=user, and groupOfUniqueNames=group

  • Oracle Directory Server Enterprise Editionの場合: container=nsContainer and changelog=changelogentry

  • Oracle Internet Directoryの場合: container=orclContainer


注意:

UserManagementプラグインとchangelogプラグインのmapObjectclassパラメータの値は同一であることが必要です。


sizeLimit

戻されるchangelogエントリの最大数を指定します。

ゼロ(0)または負の値は、サイズ制限がないことを意味します。

受信する検索リクエストでサイズの制約が指定されている場合、小さいほうの値が使用されます。たとえば、プラグインのsizeLimitを100に指定してあり、検索リクエストのカウント制限が200である場合は、リクエストの実際のサイズ制限は100にリセットされます。

mapAttribute

Source-Directory-attribute=OIM-attributeの形式の属性変換を定義します。たとえば、orclGUID=objectGuidなどです。mapAttribute構成パラメータを複数回設定して、複数の属性の変換を定義できます。

targetDNFilter

変更の取得元となるコンテナを指定します。このパラメータは複数回設定して、変更の取得元となるコンテナを複数指定できます。複数回設定した場合、targetDNフィルタは次の例のようになります。このtargetDNフィルタは受信フィルタにandで結合されます。

"(|(targetDN=*cn=users,dc=mycom1)(targetDN=*,cn=groups,dc=mycom2))"

次に値の例を示します。

  • *,cn=xxx,dc=yyy

  • *cn=xxx,dc=yyy

  • cn=xxx,dc=yyy (virtualDITAdapterNameで指定されているアダプタのローカル・ベースの子であることが必要です。)

これらの例はすべて同じ意味を持ちます。

requiredAttribute

Oracle Virtual Directoryへのchangelog問合せに対して指定されている戻り属性リストに関係なく、ソースLDAPディレクトリ・サーバーから常に取得される属性のカンマ区切りリスト。

addAttribute

正規化されているchangelogエントリに追加される属性のカンマ区切りリスト。たとえば、orclContainerOC=1, changelogSupported=1などです。ここで、=1はchangelogをサポートしているソース・ディレクトリから取得される変更を示します。

mapUserState

TrueまたはFalse。このパラメータは、ディレクトリ固有のアカウント属性からOracle Virtual Directoryの仮想アカウント属性へのマッピングを有効化または無効化します。

modifierDNFilter

modifiersNameに対するLDAPフィルタを定義する単一の値を持つ構成パラメータ。このパラメータは、受信フィルタにandで結合されます。値の例としては、(modifiersName=cn=myadmin,cn=users,dc=mycom)があります。


注意:

この構成は、directoryType=ActiveDirectoryの場合は無効です。


virtualDITAdapterName

対応するユーザー・プロファイル・アダプタ名を指定します。

たとえば、単一ディレクトリ・デプロイメントでは、このパラメータの値をA1に設定できます。これはユーザー・アダプタ名です。分割ユーザー・プロファイルのシナリオでは、このパラメータをJ1;A2に設定できます。ここでJ1はJoinViewアダプタ名であり、A2はJ1における対応するユーザー・アダプタです。

このパラメータは複数値を取ることができます。これは、changelogアダプタと同じバックエンド・ディレクトリ・サーバーに対して構成されている複数のベース・エントリ・アダプタがあることを意味します。

このパラメータをA1に設定する場合、このプラグインはアダプタA1のUserManagementPluginのmapAttributeおよびmapObjectclass構成をフェッチするため、ユーザーがそれらの構成を複製する必要はありません。

4.2.22 Consolidated Changelogプラグイン

Consolidated Changelogプラグインは、Oracle Virtual Directoryが複数のディレクトリからのアイデンティティの統合ビューを提供する際に、統合変更番号を提供します。このプラグインは、様々なchangelogからのデータの統合された正規化ビューも提供します。このプラグインは、グローバル・プラグインとしてのみデプロイできます。

Consolidated Changelogプラグインは、統合changelogに対して統合Cookieを提供するという概念に基づいています。このCookieは、Oracle Virtual Directoryでアダプタが構成されているディレクトリの統合ビューの提供に関係するアダプタに基づいて作成されます。

統合変更番号は、次の形式のCookieです。

<changelogAdapterName1>:<changenumber1>;<changelogAdapterName2><changenumber2>;<targetDN:dn>

説明:

  • <changelogAdapterName1>は、changelogの取得元のソース・アダプタです。

  • <changenumber1>は、changelogAdapter1のこのエントリのchangeNumberです。

  • <changelogAdapterName2>は、このOracle Virtual Directoryで構成されている2つ目のchangelogアダプタです。

  • <changenumber2>は、changelogAdapter2から最後に読み取られたchangeNumberです。

  • <targetDN:dn>は、バックエンド・ディレクトリなどの場合のこのchangelogエントリのtargetDNです。この値は、オプションであり、診断目的でのみ使用されます。

たとえば、changelogを統合する2つのディレクトリがあり、changelogアダプタはCA1およびCA2であると想定します。また、CA1が指しているディレクトリ・サーバーの変更番号が101から始まり、CA2が指しているディレクトリ・サーバーの変更番号が501から始まると想定します。この場合、CA1の変更101に対するCookieの値は次のようになります。

CA1:101;CA2:501;<targetDN:targetDN_of_CA1_101>

同様に、CA2に対するCookieの値は次のようになります。

CA2:501;CA1:101;<targetDN:targetDN_of_CA2_501>

このCookieの値の長さは2048バイトです。

通常のディレクトリの場合と同様に、Consolidated Changelogプラグインでは、次のようにlastChangeNumber問合せがサポートされています。

ldapsearch -h <ovdHost> -p <ovdPort> -D <ovdAdmin> -w <ovdAdminPwd> -b "cn=changelog" -s base "objectclass=*" lastChangeNumber

例4-7は、戻されるエントリの例を示しています。

例4-7 lastChangeNumber問合せによって戻されるエントリの例

cn=Changelog
lastChangeNumber=Changelog_ActiveDirectory:165095;Changelog_OID:408;Changelog_SunOne:298328

注意:

このプラグインは、Oracle Identity Manager 11gでのみ使用するように設計されています。


このプラグインがデプロイされている場合、サポートされる問合せフィルタは、1つのフィルタ(changenumber>=cookie)を1つ以上の次に示すフィルタと結合する形式にする必要があります。

  • (targetdn=*domain) ここでdomainは有効なドメインdnです。
    たとえば、(targetdn=*cn=.yyy, dc=zzz)です。

  • (modifiersname=xxx) ここでxxxはdnです。

  • !(modifiersname=yyy) ここでyyyはdnです。

  • (changetype=xxx) ここでxxxはADD/MODIFY/DELETE/ADDRMODIFYとすることができます。

  • !(changetype=yyy) ここでyyyはADD/MODIFY/DELETE/ADDRMODIFYとすることができます。

4.2.22.1 構成パラメータ

Consolidated Changelogプラグインには構成パラメータはありません。Consolidated Changelogプラグインを有効にするには、それをグローバル・プラグインとしてインストールおよびデプロイする必要があります。

4.2.23 GenericMapperプラグイン

GenericMapperプラグインは、次に示すOracle Virtual Directoryプラグインと同等の機能を備えていますが、さらに柔軟性を提供します。

  • VirtualAttributeプラグイン

  • ObjectClass Mapperプラグイン

  • DynamicTreeプラグイン

このプラグインは、『Oracle® Fusion Middleware Oracle Directory Integration Platform管理者ガイド』に記載されているディレクトリ統合プラットフォームのマッピング・ルール・ファイル形式に基づいています。

GenericMapperプラグインは、エントリのオブジェクト・クラスに基づいてマッピングを処理します。ユーザーのすべての属性はバック・エンド・ディレクトリに、そしてバック・エンド・ディレクトリからユーザーのすべての属性にそのままの状態でコピーされます。このプラグインは、ディレクトリ統合プラットフォームのドキュメントに記載されているキーワードに加えて、次のキーワードを使用します。

ATTRIBUTEEXCLUSIONLIST

エンド・ユーザーに戻される結果から除外される属性のリスト。これは、UserBound操作(検索/読取り)に適用されます。

VIRTUALATTRIBUTELIST

操作がバックエンドで実行される場合に含めない属性のリスト。これは、UserBound操作(検索/読取り)に適用されます。

FILTERRULES

マッピング・ルールが適用されるフィルタ処理されたエントリ。

4.2.23.1 構成パラメータ

次の表は、VirtualAttribute、ObjectClass Mapper、およびDynamicTreeプラグインの機能を実現するためにGenericMapperプラグインを構成する際に使用する構成パラメータを示しています。

VirtualAttributeプラグインの機能を実現する場合:

次の表に示すパラメータを使用します。

パラメータ名 説明

Container DN

ドメイン・ルール。ドメイン・ルールとしてコンテナDNに指定されているすべてのコンテナを指定します。

MatchFilter

フィルタ・ルール。filterRulesの後にmatchfilter値を指定します。

AddAttribute

次のように属性マッピング・ルールを指定します。

<attribute to be added >:[required]: [attribute type – string/binary]:
<objectclass to which the attribute belongs to>: 
<backend attr name>:[attribute type]:<objectclass> : 
<rule defining the value to be added>

たとえば、my commonnameのcnを戻すには次のルールを使用します。

Mycommonname: : : myObjectClass: cn: :inetorgperson: cn

departmentのSALESを戻すには次のルールを指定します。

Department: : :organizationalperson:cn: :person: "SALES"

ReplaceAttribute

次のように属性マッピング・ルールを指定します。

<clientview of attribute >:[required]: [attribute type – string/binary]:<objectclass to which the attribute belongs to>: 
<backend attr name>:[attribute type]:<objectclass> : 

たとえば、displaynameのcnを戻すには次のルールを使用します。

displayname: : : inetorgperson: cn: :inetorgperson:  

GenericMapperプラグインによって、ルールが解釈されるときにdisplayname値がcnに置換されます。

RemoveAttributes

AttributeExclusionList (除外するすべての属性のリストを指定します)。


ObjectClass Mapperプラグインの機能を実現する場合:

次の表に示すパラメータを使用します。

パラメータ名 説明

Container DN

ドメイン・ルール。ドメイン・ルールとしてコンテナDNに指定されているすべてのコンテナを指定します。

MatchFilter

フィルタ・ルール。filterRulesの後にmatchfilter値を指定します。

AddAttribute

次のように属性マッピング・ルールを指定します。

<attribute to be added >:[required]: [attribute type – string/binary]:
<objectclass to which the attribute belongs to>: 
<backend attr name>:[attribute type]:<objectclass> : 
<rule defining the value to be added>

たとえば、my commonnameのcnを戻すには次のルールを使用します。

Mycommonname: : : myObjectClass: cn: :inetorgperson: cn

departmentのSALESを戻すには次のルールを指定します。

Department: : :organizationalperson:cn: :person: "SALES"

ReplaceAttribute

次のように属性マッピング・ルールを指定します。

<clientview of attribute >:[required]: [attribute type – string/binary]:
<objectclass to which the attribute belongs to>: 
<backend attr name>:[attribute type]:<objectclass> : 

たとえば、displaynameのcnを戻すには次のルールを使用します。

displayname: : : inetorgperson: cn: :inetorgperson:  

GenericMapperプラグインによって、このルールが解釈されるときにdisplayname値がcnに置換されます。

RemoveAttributes

AttributeExclusionList (除外するすべての属性のリストを指定します)。

ObjectClassMapping/Filtering auxiliary classes

オブジェクト・クラス・マッピングは、そのオブジェクト・クラスがSrc属性定義およびdestination属性定義で指定されているとおりに処理されます。どの属性がマップされているのかに応じてオブジェクト・クラスの値も追加されます。

アクティブ化および非アクティブ化の処理

この情報は、サンプル・マップ・ファイルで提供されています。


DynamicTreeプラグインの機能を実現する場合:

DynamicTreeプラグインと同じ結果を実現するためにGenericMapperプラグインを構成するには、次のように構成する必要があります。

<domain name as seen by client> : <domain name as seen in the backend> : cn=%, l=%,ou=%, <domain name as seen by the client>

すべてのエントリが、それらの属性に基づいて異なるDITの一部であるとみなされます。


注意:

GenericMapperプラグインには1つの制限があります。ベースとして構築ルールの属性を指定した検索では、GenericMapperプラグインはサブツリー・エントリのみを戻し、ベース・エントリは戻しません。


4.2.24 CoordinatorAdapterプラグイン

CoordinatorAdapterプラグインでは、バインドおよび検索ルーティング・ポリシーをカスタマイズできます。たとえば、LDAPバインド・リクエストがリクエストのルーティング先である複数のアダプタの必要を満たす場合、Oracle Virtual Directoryルーティング・エンジンは常にアダプタへのリクエストを最優先でルーティングします。その結果、他のアダプタのデータソースにプロビジョニングされたユーザーの認証は失敗します。

このプラグインは、バインド操作で、このプラグインで構成されているすべての適格なアダプタのリストを失敗させることができます。同様に、それはまた、エントリが1つのアダプタから返されていない場合にのみ、次のアダプタに検索を継続することができる検索ポリシーを提供します。


注意:

このプラグインにアダプタを構成するときは、次の点を考慮することが重要です。

  • このプラグインに構成されているすべてのアダプタで、Visibility"Internal"を指定する必要があります。

  • 任意のDNAttributesをバックエンド・ベースからカスタム・アダプタ・ベースに変換する必要がある場合は、それらはすべての内部アダプタのDNAttributesリストおよびCoordinatorAdapterプラグイン自体で構成される必要があります。

  • アダプタを構成する順序は重要です。

    同じ優先度でCoordinatorAdapterプラグインに複数のアダプタを構成する場合、Oracle Virtual Directoryはアダプタがプラグインで構成された順序に基づいて処理順序を決定します。


4.2.24.1 構成パラメータ

次に、CoordinatorAdapterプラグイン構成パラメータのリストを示します。

BindOption

次のバインド・オプションをサポートしているオプションのパラメータを示します。

  • BindFirstSuccess(デフォルト・モード)は、最初の成功に到達するまで、バインドがすべての適格なアダプタのリスト(このプラグインで構成されている)で失敗するようにします。

  • BindQuickFailでは、異なるアダプタ(このプラグインに構成されている)の複数のユーザーが同じDNをbindDNとして使用している場合、バインドですぐにエラーがスローされます。

SearchOption

次の検索モードをサポートしているオプションのパラメータを示します。

  • SearchFirstMatch(デフォルト・モード)はすべてのアダプタに対してではなく、最初の適格なアダプタに対してのみ検索します。検索は、エントリが最初の適格なアダプタに存在しない場合にのみ次のアダプタで継続されます。

  • SearchAllCandidatesは、Oracle Virtual Directoryのデフォルトの検索動作を保持します。

AdapterNames

アダプタを提供する必須で繰返しのパラメータ。そのアダプタに対して、ユーザーは認証されるか、または検索される必要があります。

DNAttributes

DNAttributesのリストを指定するオプションのパラメータ。その値は、Custom Adapter Baseから個々に構成されたアダプタ・ベースに変換される必要があります(または、その逆を行う必要がある)。このパラメータを構成しない場合は、いずれの属性もDN変換されません。

AutoTuneSearchOption

CoordinatorAdapterプラグインがSearchAllCandidatesモードに切り替えるためのインテリジェンス機能を持っているかどうかを制御するパラメータ。(このパラメータはデフォルトで無効になっているかfalseに設定されています。)

特定のケースでは、このプラグインは、SearchFirstMatchに構成されている場合でも、SearchAllCandidatesモードに切り替えるためのインテリジェント機能を持っています(検索フィルタの対象がすべての候補の場合)。たとえば、プラグインは検索フィルタが非平等コンポーネント(たとえばcn=*)を含む場合、すべてのコンポーネントがobjectclass属性(たとえばobjectclass=*)である場合などにモードを切り替えることができます。

  • false(デフォルト・モード)は、モードを切り替えるプラグインの機能を無効にします。

  • trueは、SearchAllCandidatesモードへの切替えプラグインを有効にします。

4.2.25 DBPasswordプラグイン

DBPasswordプラグインは、ハッシュされたパスワードを使用してデータベースに保存されているユーザーの認証を行うことができます。


注意:

このプラグインは、データベース・アダプタに対してのみデプロイする必要があります。


4.2.25.1 構成パラメータ

次に、DBPasswordプラグイン構成パラメータのリストと説明を示します。

HashAlgorithm

データベースでパスワードのハッシュ処理に使用される標準のハッシュ・アルゴリズムを指定するオプションのパラメータ。このパラメータは、MD5がデフォルト値の場合、MD2、MD5、SHA-1、SHA-256、SHA-384、SHA-512およびSSHAのハッシュ・アルゴリズムをサポートします。

EncodingMethod

データベース・パスワードに使用されているエンコーディング・メソッドを指定するオプションのパラメータ。このパラメータは、Hexがデフォルト値の場合、Base64またはHexのエンコーディング・メソッドをサポートします。

4.2.26 DNTranslatorプラグイン

DNTranslatorプラグインは、アダプタ間の識別名値属性のネームスペースを変換します。


注意:

このプラグインは、LDAPアダプタのDN属性リストで指定されるすべての属性のネームスペースを変換します。

このプラグインをLDAPアダプタに対してデプロイする必要があります。そして、この機能を必要とするすべてのLDAPアダプタに対してデプロイする必要があります。


4.2.26.1 構成パラメータ

次に、DNTranslatorプラグイン構成パラメータについて説明します。

IncludedAdapter

DN属性値を変換する間、ネームスペースが検討されているアダプタのリストを制限するオプションのパラメータ。デフォルトでは、このパラメータを指定しない場合、Oracle Virtual Directoryでは、すべての構成されたLDAPアダプタが含まれているものと見なされます。このパラメータは、プラグイン構成で何度でも繰返し指定できます。

グループとユーザーに対して2つの異なるアダプタがある場合は、1つのアダプタからのDN構文属性(uniquemembermemberofなど)は、別のアダプタ(デフォルト動作の対象アダプタではなく)のネームスペースに対して変換される必要があります。

たとえば、usersアダプタからのmemberof属性値は、groupsアダプタのvirtual baseに基づいて変換される必要があります。同様に、groupsアダプタのuniquemember属性は、usersアダプタのvirtualDNに基づいて変換される必要があります。

DNTranslatorプラグインは、入力パラメータとしてアダプタのリストを受け取り、入力リストで構成されている任意のアダプタの仮想ネームスペースに基づいてDN属性値(プラグインがデプロイされているアダプタから)を変換します。

次に例を示します。

Adapter A1:
Remote base: dc=a1,dc=com
Virtual base: dc=virtual a1,dc=com
 
Adapter A2:
Remote base: dc=a2,dc=com
Virtual base: dc=virtual a2,dc=com
 
Assume the entry from A1 is something like:
cn=test1,dc=virtual a1,dc=com
memberof: cn=group1,dc=a2,dc=com

DNTranslatorプラグインが値A2で構成されているIncludedAdaptersパラメータを使用してA1に構成されている場合、A1からのエントリは次のようになります。

cn=test1,dc=virtual a1,dc=com
memberof: cn=group1,dc=virtual a2,dc=com

4.2.27 HideGroupsAndUsersプラグイン

HideGroupsAndUsersプラグインは、AllowedGroupNameリストで指定されているこれらのユーザー・エントリとグループ・エントリのみの公開を可能にします。他のすべてのエントリは非表示になります。


注意:

  • 返されるエントリが構成されたGroupObjectclassに属する場合、つまり、グループ・エントリの場合、プラグインまたは許可されたグループのネストされたグループで構成された許可されたグループである場合のみ、そのエントリが返されます。

  • 返されるエントリが構成されているUserObjectclassに属する場合、つまりユーザー・エントリの場合、適格なグループのメンバーである場合のみ、そのエントリは返されます。

  • 返されるエントリが前述の条件のいずれも満たしていない場合、つまり、グループ・エントリでもユーザー・エントリでもない場合には、エントリがそのまま返されます。


4.2.27.1 構成パラメータ

次に、HideGroupsAndUsersプラグイン構成パラメータについて説明します。

AllowedGroupName

Oracle Virtual Directoryによって公開される複数のグループ名を指定するのにAllowedGroupNameパラメータを使用します。このプラグインは、AllowedGroupNameリスト、それらのネストされたグループおよびそれらのネストされたグループのユーザーに含まれるそれらのグループのみを公開します。他のグループとユーザーは非表示です。たとえば、AllowedGroupNameパラメータ値がMyGroup1の場合、cn=MyGroup1属性と値のペアを持つグループが許可されたグループとみなされます。この繰返しのパラメータはオプションです。

AllowedGroupNameパラメータを指定しない場合は、Oracle Virtual Directoryはすべてのグループとユーザーを返します。


注意:

  • この入力パラメータに静的グループを使用することができます。

  • AllowedGroupNameパラメータで構成されたグループがバックエンド・データ・ソースで修正された場合、Oracle Virtual Directoryサーバーを再起動する必要があります。


GroupObjectClass

グループ・オブジェクトクラスを指定するのにGroupObjectClassパラメータを使用します。デフォルトでは、グループ・オブジェクトクラスはgroupOfUniqueNamesです。このパラメータはオプションです。

UserObjectClass

ユーザー・オブジェクトクラスを指定するのにUserObjectClassパラメータを使用します。デフォルトでは、ユーザー・オブジェクトクラスはpersonです。このパラメータはオプションです。

4.3 エンタープライズ・ユーザー・セキュリティ、Real Application SecurityおよびOracle Net Servicesプラグインの概要

Oracle Virtual Directoryは、エンタープライズ・ユーザー・セキュリティ(EUS)、Real Application Security (RAS)、およびOracle Net Servicesとの統合を簡素化するためのプラグインが組み込まれています。この項では、この統合に関連するプラグインについて説明します。この項の内容は次のとおりです。

4.3.1 EUSActiveDirectoryプラグイン

EUSActiveDirectoryプラグインは、Oracle Virtual DirectoryをOracleのエンタープライズ・ユーザー・セキュリティ・データベース製品と統合する際に、ユーザーIDがMicrosoft Active Directoryに格納されている場合にのみ使用します。EUSActiveDirectoryプラグインは、Active Directoryの属性を、エンタープライズ・ユーザー・セキュリティ・データベースで使用できる形式に変換します。

4.3.1.1 構成パラメータ

EUSActiveDirectoryプラグインには構成パラメータはありません。EUSiPlanetプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.3.2 EUSiPlanetプラグイン

EUSiPlanetプラグインは、Oracle Virtual DirectoryをOracleのエンタープライズ・ユーザー・セキュリティ・データベース製品と統合する際に、ユーザーIDがOracle Directory Server Enterprise Edition(旧称はSun Java System Directory Server)に格納されている場合にのみ使用します。EUSiPlanetプラグインは、Oracle Directory Server Enterprise Editionの属性を、エンタープライズ・ユーザー・セキュリティ・データベースで使用できる形式に変換します。

4.3.2.1 構成パラメータ

EUSiPlanetプラグインには構成パラメータはありません。EUSiPlanetプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.3.3 EUSOIDプラグイン

EUSOIDプラグインは、Oracle Virtual DirectoryをOracleのエンタープライズ・ユーザー・セキュリティ・データベース製品と統合する際に、ユーザーIDがOracle Internet Directoryに格納されている場合にのみ使用します。EUSOIDプラグインは、Oracle Internet Directoryの属性を、エンタープライズ・ユーザー・セキュリティ・データベースで使用できる形式に変換します。

4.3.3.1 構成パラメータ

EUSOIDプラグインには構成パラメータはありません。EUSOIDプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.3.4 EUSeDirectoryプラグイン

EUSeDirectoryプラグインは、Oracle Virtual DirectoryをOracleのエンタープライズ・ユーザー・セキュリティ・データベース製品と統合する際に、ユーザーIDがNovell eDirectoryに格納されている場合にのみ使用します。EUSeDirectoryプラグインは、Novell eDirectoryの属性を、エンタープライズ・ユーザー・セキュリティ・データベースで使用できる形式に変換します。

4.3.4.1 構成パラメータ

EUSeDirectoryプラグインには構成パラメータはありません。EUSeDirectoryプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.3.5 EUSMemberDNMappingプラグイン

EUSMemberDNMappingプラグインは、Oracle Virtual DirectoryをOracleのエンタープライズ・ユーザー・セキュリティ・データベース製品と統合する場合にのみ使用します。EUSMemberDNMappingプラグインは、外部リポジトリに格納されているエンタープライズ・ユーザー・セキュリティ・データベースの管理者グループの識別名(DN)ネームスペースを、Oracle Virtual Directoryがデータベースに送信するのと同じペイロードに変換します。

4.3.5.1 構成パラメータ

次に、EUSMemberDNMappingプラグイン構成パラメータのリストと説明を示します。

remoteDomainDN

エンタープライズ・ユーザー・セキュリティ・データベースの管理者グループが配置されているリモートの外部リポジトリ(Active Directory、Oracle Internet Directory、Oracle Directory Server Enterprise Edition)のベースDN。

localDomainDN

Oracle Virtual Directoryが公開するグループ名のベースDN。


注意:

一般的に、remoteDomainDNおよびlocalDomainDn構成パラメータの値は同一です。


4.3.6 EUSLockoutプラグイン

EUSLockoutプラグインは、Oracle Virtual DirectoryをOracleのエンタープライズ・ユーザー・セキュリティ・データベース製品と統合する場合にのみ使用します。LDAPサーバーには、バインドの試行が何度か失敗したらユーザー・アカウントをロックする機能があります。EUSLockoutプラグインにより、Oracle Virtual Directoryとエンタープライズ・ユーザー・セキュリティの統合では、このロックアウト機能を使用し、次のようにして、バックエンドのLDAPサーバーのパスワード・ロックアウト・ポリシーを適用できます。

  • Oracleデータベースへの不正なログインでは、バックエンドのLDAPサーバーにログインの失敗が記録されます。

  • Oracleデータベースへの適切なログインにより、バックエンドのLDAPサーバーのログインの失敗数がリセットされます。


    注意:

    この機能は、Active Directoryを使用する統合では使用できません。


  • ロックされたユーザー・アカウントを使用して、Oracleデータベースにログインすることはできません。

EUSLockoutプラグインを構成するには、次の手順を実行する必要があります。

  • バックエンドのLDAPサーバーに応じて、Active Directoryの場合はActiveDirectory、Oracle Directory Server Enterprise Editionの場合はiPlanet、Novell eDirectoryの場合はeDirectoryなどの値を使用し、directoryTypeパラメータを作成します。

  • Oracle Virtual Directory-Enterprise User Security統合のユーザー・コンテナの名前を使用して、ネームスペースを作成します。

4.3.6.1 構成パラメータ

次に、EUSLockoutプラグイン構成パラメータのリストと説明を示します。

directoryType

ユーザーIDが格納されるOracle Virtual Directoryとエンタープライズ・ユーザー・セキュリティとの統合のバックエンド・ディレクトリ・サーバーのタイプ。サポートされる値は、Active Directory用のActiveDirectory、Oracle Directory Server Enterprise Edition用のiPlanet、またはNovell eDirectory用のeDirectoryです。

4.3.7 ONamesプラグイン

ONamesプラグインは、Oracle Virtual DirectoryをOracle Net Servicesと統合する場合にのみ使用します。このプラグインは、ソースLDAPディレクトリに固有のエントリを削除し、Oracle Virtual DirectoryとOracle Net Servicesの統合を容易にします。

4.3.7.1 構成パラメータ

ONamesプラグインには構成パラメータはありません。ONamesプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.3.8 SubschemaSubentryプラグイン

Oracleデータベースが、エンタープライズ・ユーザー・セキュリティおよびOracle Net Servicesの統合のOracle Virtual Directoryに問合せを行う場合、LDAPスキーマはOracle Internet Directoryのスキーマと同じ名前であることが想定されます。ただし、Oracle Internet DirectoryとOracle Virtual Directoryでは、LDAPスキーマの格納方法が異なります。SubschemaSubentryプラグインでは、Oracle Virtual Directoryとエンタープライズ・ユーザー・セキュリティまたはOracle Virtual DirectoryとOracle Net Servicesの統合が機能できるよう、Oracleデータベースの問合せが透過的にリダイレクトされます。

4.3.8.1 構成パラメータ

SubschemaSubentryプラグインには構成パラメータはありません。SubschemaSubentryプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.3.9 Real Application Securityプラグイン

OracleのReal Application Security機能を使用してOracle Virtual Directoryを統合する場合にのみReal Application Securityプラグインを使用します。


注意:

このプラグイン用にjps-config-jse.xmlにポリシー・ストア情報を構成する必要があります。ポリシー・ストアの構成の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』のJava SEアプリケーションでのポリシー・ストアと資格証明ストアの構成に関する項を参照してください。


4.3.9.1 構成パラメータ

次に、Real Application Securityプラグイン構成パラメータのリストと説明を示します。

DirectoryType

LDAPアダプタで定義されたserverTypeから得られたパラメータ。

LoginAttributeNameInBackend

バックエンドLDAPでネーミング属性の必須パラメータ。

GuidAttributeNameInBackend

バックエンド・サーバーに定義されたグローバル・ユニバーサル識別子(GUID)属性を指定するオプションのパラメータ。(デフォルトではディレクトリ・タイプに基づいて導出されます。)

EnableAccountLockout

アカウントのロックアウトを有効または無効にするオプションのパラメータ。(デフォルトでは有効化されています。)

NestedGroupsResolutionLevel

ネストされたグループの解決を有効または無効にするオプションのパラメータ。(デフォルトでは無効化されています。)

GroupSearchBase

グループにSearchBase DNを指定するオプションのパラメータ。(デフォルトではアダプタのルートと同じです。)

GroupFilter

バックエンド・ディレクトリでグループ・エントリを識別するのにどのLDAP検索フィルタを使用するかを指定するオプションのパラメータ。(デフォルトではobjectclass=groupofuniquenamesです。)

GroupMemberAttribute

グループ・メンバーに属性名を指定するオプションのパラメータ。(デフォルトはuniquememberです。)

LoginAttributeName

RAS DBがログインにどの属性名を使用するかを指定するオプションのパラメータ。(デフォルトはuidです。)

MapAttribute

マッピングされる必要のある任意の属性を指定するオプションのパラメータ。フォーマットはattr1=attr2です。たとえば、cn=samaccountnameです。

4.4 Microsoft Active Directoryのプラグインの概要

Microsoft Active Directoryには、多くのアプリケーションで処理できない機能が複数ありますOracle Virtual Directoryには、アプリケーションに影響を与えず、再コーディングや再構成もせずに、アプリケーションがそれらの独自の機能を使用できるようにする複数のプラグインが組み込まれています。

この項では、Oracle Virtual Directoryに含まれているMicrosoft Active DirectoryおよびActive Directory Application Mode(ADAM)のプラグインについて説明します。この項の内容は次のとおりです。

4.4.1 ActiveDirectory Passwordプラグイン

Active DirectoryおよびADAMには、LDAPを使用したユーザーのパスワードの更新に関して、次に示すような特別なルールがあります。

  • パスワードの更新はセキュアなSSL接続経由でのみ行う。

  • ユーザーが自分のパスワードを更新する場合は、同じ変更操作で新しいパスワードが変更追加に含まれている状態で、元のパスワードが変更削除に含まれている必要がある。

  • 以前のパスワードがわからなくても、ユーザー・パスワードをリセットできるのは管理者のみ。

  • Active DirectoryではuserPassword属性は使用せず、unicodePwd属性(Unicode形式)を使用する。

ActiveDirectory Passwordプラグインは、アプリケーションがActive Directoryのパスワード更新ルールを使用するように設計されておらず、すべての操作においてSSL経由でActive DirectoryまたはADAMに接続するのが不都合な場合に、Active Directoryのパスワード更新ルールを使用して管理者を支援します。ActiveDirectory PasswordプラグインをSSLに対応していないアダプタに構成し、そのプラグインがSSL対応のアダプタを指すようにすることにより、Active Directoryのパスワード更新がinetOrgPersonディレクトリのパスワード更新であるかのように機能します。


重要:

ActiveDirectoryプラグインは、LDAPアダプタにのみ構成する必要があります(通常はMicrosoft Active Directory)。


4.4.1.1 構成パラメータ

ActiveDirectory Passwordプラグインには、次の構成パラメータがあります。

adapter

リクエストにuserPassword属性が含まれる場合に、ActiveDirectory Passwordプラグインがリクエストを再ルーティングするアダプタの名前。指定されたアダプタでは、仮想ルートが現行のアダプタと同一で、ルーティングの可視性が内部に設定されている必要があります。adapterパラメータが定義されていない場合は、現行のアダプタが使用されます。

mapPassword

パスワードをunicodePwd属性に変換する必要がある(true)か、不要である(false)かを示します。サポートされる値は、trueまたはfalseです。デフォルト値はtrueです。

4.4.2 Active Directory Ranged Attributesプラグイン

Active DirectoryおよびADAMの属性には1000を超える値があり、戻された値の範囲を含む名前が付けられて、一度に1000の属性が戻されます(Windows 2003では1500)。クライアントには、次の書式で範囲が戻されます。

member;1-1000: somevalue

次の1000のエントリを取得するためには、クライアント・アプリケーションが問合せを繰り返し、属性メンバー1001-2000をリクエストすることを把握している必要があります。このため、アプリケーションでは、その他のディレクトリ製品に比べて独特な方法でActive Directoryに対応する必要があります。

Active Directory Ranged Attributesプラグインにより、Active DirectoryまたはADAMによって範囲が指定された属性が検出され、自動的にすべての値が取得されます。値の範囲が属性名に追加されるため、Active Directory Ranged Attributesプラグインが有効化されていない場合、LDAPアダプタのdn属性LDAP構成オプションは適用されません。


重要:

Active Directory Ranged Attributesプラグインにより、アダプタのどの属性をdn属性としてマークするかが決定され、適切なベース・マッピングが実行されます。LDAPアダプタでアダプタ・プラグインとして使用できるのは、Active Directory Ranged Attributesプラグインのみです。


4.4.2.1 構成パラメータ

Active Directory Ranged Attributesプラグインには構成パラメータはありません。Active Directory Ranged Attributesプラグインを有効化するには、それをプラグイン・チェーンに追加します。

4.4.3 InetADプラグイン

InetADプラグインは、ObjectClass MapperプラグインActive Directory Ranged AttributesプラグインおよびActive Directory Passwordプラグインの機能を結合し、複数のActive Directory独自の機能を処理するために単一のプラグインを構成できるようにします。

Active DirectoryではActive DirectoryのNOS要件に固有の属性を持つuserおよびgroupオブジェクト・クラスが使用される一方で、ほとんどのLDAPディレクトリで、ユーザーやグループにinetOrgPersonおよびgroupOfUniqueNamesオブジェクト・クラスが使用されるため、InetADプラグインはObjectClass Mappingプラグインを利用します。

InetADプラグインを使用すると、Oracle Virtual DirectoryでActive DirectoryまたはADAMディレクトリ・サーバーにinetOrgPersonスキーマがあるように使用できます。InetADプラグインは、パラメータ構成に基づいて、属性およびオブジェクト・クラスの名前を変更し、Active Directoryのユーザーが必要な属性をすべて使用できるように属性を追加できます。構成パラメータが使用されていない場合、InetAdプラグインはActive DirectoryのuserまたはgroupをinetOrgPersonまたはgroupOfUniqueNamesオブジェクト・クラスとして使用できます。


注意:

属性のマッピング関係が生じた場合、client-接頭辞はクライアント側を、source-接頭辞はデータ・ソース側を表します。たとえば、Active DirectoryサーバーのuserをマッピングしてそれをInetOrgPersonとして表すようにした場合、Active Directoryはソース側でInetOrgPersonはクライアント側になります。


4.4.3.1 構成パラメータ

次に、InetADプラグイン構成パラメータのリストと説明を示します。

directoryType

ユーザーのアクティブ化を実行する際に使用するディレクトリのタイプ。サポートされている値はSunOne、eDirectory、ADAMおよびActiveDirectoryです。次に例を示します。

パラメータ名: directoryType

パラメータ値: ActiveDirectory

activationAttribute

activationAttributeパラメータは、アプリケーションに、基礎となるディレクトリのユーザー・アクティベーション・システムに関する情報がない場合に使用します。activationAttributeパラメータにより、ユーザー・アクティベーション・フラグが含まれている着信属性が、Oracle Virtual Directoryに通知されます。その後、このフラグは、ディレクトリ固有の属性およびフラグにマップされます。次に例を示します。

パラメータ名: activationAttribute

パラメータ値: myuseraccountcontrol

deactivationValue

ユーザーを非アクティブとしてマークする必要があることを示すactivationAttributeに指定された属性値のカンマ区切りリスト。

activationValue

ユーザーをアクティブとしてマークする必要があることを示すactivationAttributeに指定された属性値のカンマ区切りリスト。

mapObjectClass

client-ObjectClass = AD-ObejctClassという書式でマップされるobjectClass。次に例を示します。

パラメータ名: mapObjectClass

パラメータ値: inetOrgPerson=user

mapObjectClassパラメータは、複数のマッピングに複数回使用できます。デフォルト値は、groupOfUniqueNames=group, inetOrgPerson=userです。

addAttribute[-objectclassvalue]

追加プロセス中にユーザーに属性を追加します。オプションのオブジェクト・クラス値は、特定のオブジェクト・クラスのみに属性を追加するために、構成名に追加できます。たとえば、ユーザー・オブジェクト・クラスのみにuserAccountControl属性を追加するには、次のものを使用します。

パラメータ名: addAttribute-user

パラメータ値: userAccountControl=546


注意:

名前をパーセンテージ文字(%)で囲んで入力することにより、別の属性値が式として代入されます。デフォルト構成は次のとおりです。

addAttribute-user: useraccountcontrol=544,
addAttribute-group:samaccountname=%cn%,
addAttribute-group: grouptype=-2147483646

filterAttribute[-objectclassvalue]

追加操作中に、戻されるすべてのエントリから削除される属性のカンマ区切りのリスト。条件のオブジェクト・クラス値は、特定のオブジェクト・クラスの属性を除外するために、パラメータ名に追加できます。次に例を示します。

パラメータ名: filterAttribute

パラメータ値: objectsid,memberof,samaccountname

mapAttribute

client-Attribute=AD-attributeという書式でマップされる属性。次に例を示します。

パラメータ名: mapAttribute

パラメータ値: uniqueMember=member

mapAttributeパラメータは、複数のマッピングに複数回使用できます。デフォルト値は、uniqueMember=member、uid=samaccountname、ntgrouptype=grouptypeです。

filterAuxiliaryClass

追加操作中に削除する必要のあるオブジェクト・クラスのカンマ区切りのリスト。Active Directory for Windows 2000では、エントリの追加中に補助オブジェクト・クラスをリストすることはできませんが、Microsoft Active DirectoryおよびADAM for Windows Server 2003では補助クラスをリストできます。デフォルト値は、person、organizationalPersonです。

filterObjectClassOnModify

filterObjectClassOnModifyパラメータを使用して、変更操作中にobjectClassエントリの変更を削除します。サポートされる値はtrue (変更を削除)またはfalse (変更を削除しない)です。trueがデフォルトです。次に例を示します。

パラメータ名: filterObjectClassOnModify

パラメータ値: true、false

mapPassword

パスワードをunicodePwd属性に変換する必要がある(true)か、不要である(false)かを示します(ADAM)。サポートされる値は、trueまたはfalseです。デフォルト値はtrueです。

sslAdapter

リクエストにuserPasswordが含まれる場合に、このプラグインがリクエストを再ルーティングするアダプタの名前。sslAdapterパラメータを設定しない場合は、現行のアダプタが使用されます。sslAdapterパラメータによって指定されるアダプタは、次のようになっている必要があります

  • InetADプラグインが構成されているアダプタと同じローカル・ベース

  • ルーティングの可視性がInternalに設定されている

4.5 Oracle Access Managerプラグインの概要

Oracle Virtual Directoryには、Oracle Access Managerとの統合を簡略化するプラグインが含まれています。この項では、この統合に関連するプラグインについて説明します。この項の内容は次のとおりです。

4.5.1 OAMPolicyControlプラグイン

Oracle Virtual DirectoryとOracle Access Managerの統合の場合のみ、OAMPolicyControlプラグインは、認証にLDAPを使用し、Oracle Access Managerポリシー制御を使用する必要があるがOracle Access Managerと統合できないアプリケーションに対応します。

OAMPolicyControlプラグインをデプロイする前に、次のことが必要です。

  • Oracle Access Managerポリシー構成を使用しているLDAPアダプタすべてについて、「バインド」パススルー設定を「なし」に設定します。

    このプラグインは、すべての認証を処理し、プロキシ資格証明を使用してすべての操作を実行します。

  • Oracle Access Managerに対して別のアダプタを構成します。

    これらのアダプタは、Oracle Access Managerポリシーを使用するには、OAMPolicyControlプラグインを使用する必要があります。これらのアダプタを同じOracle Virtual Directoryサーバーにデプロイする場合は、次のオプションのいずれかを構成する必要があります。

    • アダプタごとに異なるLDAPネームスペースを使用します。Oracle Access Managerのアダプタのネームスペースは、汎用LDAPクライアントが使用するネームスペースから独立したものにする必要があります。

    • 「Oracle Virtual Directory」ビューを、別のOracle Access Managerアダプタに対するリクエストを区別するアクセス・レベルの基準を指定して使用します。

  • 次のようにしてOracle Access Manager Access Serverを構成します。

    • Oracle Virtual Directoryに対応するプロキシ・リソースを作成します。

    • アイデンティティ・サーバーおよびアクセス・サーバー用のポリシー・ドメインを無効化します。これは、このプラグインがOBSSO Cookieをキャッシュしないためです。

  • AccessSDKを次のように構成します。

    • AccessServerSDK\oblix\tools\configureAccessGateを使用して、Oracle Access Manager Access Server用にAccessSDKインストールを構成します。

    • -Djava.library.pathがAccessSDKインストールを指すようにすることで、Oracle Virtual Directoryコンポーネントを起動するようにopmnを構成します。

      INSTANCE_HOME/config/OPMN/opmn/opmn.xmlファイルを次のように編集します。

      <ias-component id="ovd1">
       <process-type id="OVD" module-id="OVD">
        <module-data>
         <category id="start-options">
          <data id="java-bin" value="$ORACLE_HOME/jdk/bin/java"/>
          <data id="java-options" value="-server -Xms512m -Xmx512m
           -Dvde.soTimeoutBackend=0
           -Doracle.security.jps.config=$ORACLE_
      INSTANCE/config/JPS/jps-config-jse.xml
           -Djava.library.path=AccessSDK_install_
      dir/AccessSDK/AccessServerSDK/oblix/lib/"/>
           <data id="java-classpath" value="$ORACLE_
      HOME/ovd/jlib/vde.jar$:$ORACLE_HOME/jdbc/lib/ojdbc6.jar"/>
          </category>
         </module-data>
        <stop timeout="120"/>
       </process-type>
      </ias-component>
       
      
    • AccessSDK_install_dir/AccessServerSDK/oblix/libからORACLE_HOME/ovd/plugins/libにjobaccess.jarファイルをコピーします。


注意:

前述の前提条件となる構成を正常に完了しないと、Oracle Virtual DirectorによってNoClassDefFoundエラーが生成されます。


4.5.1.1 構成パラメータ

OAMPolicyControlプラグインには、次の構成パラメータがあります。


注意:

useAccessAuthPolicyを除く次のすべての構成パラメータが、OAMPolicyControlプラグインのデプロイに必要です。


resourceIdOVD

Oracle Access Managerサーバーによって構成されるOracle Virtual Directory用のプロキシ・リソースを指定します。たとえば、//host:port/ovd_proxy_resourceなどです。

identityproxyid

identityproxyidパラメータは、アイデンティティ・サーバーに対する認証に使用され、管理者のusernameAttributeの値を指定します。

install_dir

必須ライブラリを含むAccessSDKインストール・ディレクトリを指定します。たとえば、AccessSDK_INSTALL_DIRECTORY/AccessServerSDK/などです。

OrclOVDEncryptedproxypasswd

アイデンティティ・サーバーに対する認証用の管理者パスワード。

identityEndpointAddress

アイデンティティ・サーバーのum_modifyUser Webサービスのリスニング・エンドポイントに対応するURLを指定します。たとえば、http://host:port/identity/oblix/apps/userservcenter/bin/userservcenter.cgiなどです。

usernameAttribute

アイデンティティ・サーバーのログイン属性となるように構成される属性を指定します。たとえば、uidやgenUserIdです。

useAccessAuthPolicy

useAccessAuthPolicyは、オプションの大文字小文字を区別しないパラメータであり、プロキシ・リソースにアクセスする際のOracle Access Managerサーバーの認証ポリシーの使用方法を決定します。サポートされている値はTrueおよびFalseです。デフォルト設定はFalseです。