プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Directory Integration Platform管理者ガイド
11g リリース1 (11.1.1)
B65032-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 ディレクトリ同期の構成

この章では、ディレクトリ同期の構成方法と、マッピング・ルールの書式設定方法について説明します。内容は次のとおりです。


関連項目:

Oracle Enterprise Manager Fusion Middleware Controlの使用方法は、第3章「Oracle Directory Integration Platformの管理」を参照してください。

9.1 Oracle Directory Integration Platformでのコネクタの登録

コネクタをデプロイする前に、Oracle Directory Integration Platformで使用しているOracleバックエンド・ディレクトリにコネクタを登録してください。この登録には、ディレクトリにエントリとして格納される同期プロファイルの作成作業が含まれます。Oracle Enterprise Manager Fusion Middleware Controlを使用したディレクトリ同期プロファイルの作成方法は、「同期プロファイルの作成」を参照してください。

同期プロファイル・エントリの属性は、オブジェクト・クラスorclodiProfileに属します。ただし、orclodiplastappliedchangenumber属性のみはorclchangesubscriberオブジェクト・クラスに属します。

Oracle Directory Integration Platformプラットフォーム関連のクラスと属性には、オブジェクト識別子の接頭辞2.16.840.1.113894.8が割り当てられます。

ディレクトリ内の様々な同期プロファイル・エントリが、次に示すコンテナの下に作成されます。

cn=subscriber profile,cn=changelog subscriber,cn=Directory Integration Platform,cn=products,cn=oracleContext

たとえば、OracleHRAgentという名前のコネクタが、次のようにディレクトリに格納されます。

orclodipagentname=OracleHRAgent,cn=subscriber profile,cn=changelog subscriber,cn=Directory Integration Platform,cn=products,cn=oracleContext

9.2 同期プロファイルのテンプレート

Oracle Directory Integration Platformをインストールすると、様々なタイプのディレクトリに対する同期用のテンプレート・プロファイルが作成されます。サポートされているディレクトリの完全なリストは、次のURLから入手できるOracle Fusion Middleware 11gR1のシステム要件とサポート対象プラットフォームの動作保証マトリックスを参照してください。

http://www.oracle.com/technetwork/middleware/downloads/fmw-11gr1certmatrix.xls

テンプレート・プロファイルの作成に使用されるプロパティ・ファイルとマッピング・ファイルは、$ORACLE_HOME/ldap/odi/confディレクトリにあります。


注意:

同期プロファイルのテンプレートは例を示したものです。テンプレート・プロファイルを使用する前に、「マッピング・ルールの構成」の説明に従って、マッピング・ルールを構成する必要があります。

9.3 接続詳細の構成

サード・パーティ・ディレクトリの接続詳細は、Oracle Enterprise Manager Fusion Middleware Controlを使用して同期プロファイルを作成または編集することで構成できます。インストール時に作成されたサンプルの同期プロファイルのいずれかを使用するには、正しい接続詳細を指定する必要があります。

インストール時に用意されたテンプレート・プロパティ・ファイルに基づいて、プロファイルを作成することもできます。これを行う場合、プロファイルのodip.profile.condirurlプロパティおよびodip.profile.condiraccountプロパティに接続詳細を指定する必要があります。パスワードを要求されます。

各サード・パーティ・ディレクトリでは、削除されたエントリを取得するために、異なる構成が必要です。tombstoneエントリを読み取るために必要なtombstoneの構成および権限を設定するには、サード・パーティ・ディレクトリのドキュメントを参照してください。


注意:

サード・パーティ・ディレクトリとしてMicrosoft Active Directoryを使用する場合、ユーザー・アカウントに、変更のモニター対象となっているフォレストのすべてのドメインに対して、ディレクトリ変更をレプリケートする権限があることを確認します。これは、次のいずれかの方法により実行できます。
  • このアカウントにドメイン管理権限を付与する。

  • このアカウントをドメイン管理者のグループのメンバーにする。

  • このアカウントに、変更のモニター対象であるフォレストのすべてのドメインに対する「ディレクトリの変更の複製」権限を付与する。

この権限を管理者以外のユーザーに付与するには、Microsoft Help and Support(http://support.microsoft.com/)の記事「How to Grant the 'Replicating Directory Changes' Permission for the Microsoft Metadirectory Services ADAM Service Account」の「More Information」の項の指示に従います。


ディレクトリ同期プロファイルの最も重要な部分のいくつかには、表9-1に示すプロパティに指定する接続詳細が含まれます。

表9-1 接続詳細のプロパティ

プロパティ 説明

odip.profile.condirurl

接続ディレクトリのURL

  • LDAPディレクトリに接続するには、host:portの形式を使用します。

  • SSLモードで接続するには、host:port:1の形式を使用します。

  • データベースに接続するには、host:port:sidの形式を使用します。

odip.profile.condiraccount

サード・パーティ・ディレクトリへの接続に使用される識別名またはアカウント名



注意:

  • 指定するアカウント情報には、接続するディレクトリでの十分な権限が必要です。

  • LDIFまたはタグ付きデータ形式を使用している場合には、アカウント名は不要です。

  • パスワードを要求されます。


9.4 マッピング・ルールの構成

この項では、マッピング・ルールの構成方法を説明します。内容は次のとおりです。

マッピング・ルール属性を使用して、ソースから宛先へエントリを変換する方法を指定します。Oracleバックエンド・ディレクトリは、ソースまたは宛先のいずれかである必要があります。エントリを変換する際のマッピング・ルールには、ドメイン・ルール、属性ルールおよびリコンシリエーション・ルールの3種類があります。これらのマッピング・ルールにより、識別名マッピング、属性レベル・マッピングおよびリコンシリエーション・ルールを指定できます。リコンシリエーション・ルールは、Novell eDirectoryとOpenLDAPでのみ使用されます。リコンシリエーション・ルールの詳細は、第25章「Novell eDirectoryまたはOpenLDAPとの統合」を参照してください。


注意:

Oracle Databaseに接続するマッピング・ルールの構成の詳細は、「Oracle Databaseの表との同期」の章の第12.2項「マッピング・ファイルの準備」を参照してください。

マッピング・ルールは固定の表形式で編成され、その形式に忠実に従う必要があります。マッピング・ルールの各セットは、DomainRulesまたはAttributeRulesという語のみを含む行の間にあります。

DomainRules
srcDomainName1: [dstDomainName1]: [DomainMappingRule1]
srcDomainName2: [dstDomainName2]: [DomainMappingRule2]
[DomainExclusionList]
srcDomainForExclusion1
srcDomainforExclusion2

AttributeRules
srcAttrName1:[ReqAttrSeq]:[SrcAttrType]:[SrcObjectClass]:[dstAttrName1]:
[DstAttrType]:[DstObjectClass]:[AttrMappingRule1]
srcAttrName1,srcAttrName2:[ReqAttrSeq]:[SrcAttrType]:[SrcObjectClass]:
[dstAttrName2]:[DstAttrType]:[DstObjectClass]:[AttrMappingRule2]
[AttributeExclusionList]
exclusionAttribute1
exclusionAttribute2

この例のsrcAttrName1srcAttrName2を拡張するには、それぞれ改行なしで1行に記述する必要があります。

9.4.1 識別名マッピング

この項では、Oracleバックエンド・ディレクトリと接続ディレクトリ間のエントリのマップ方法を説明します。マッピングがOracleバックエンド・ディレクトリとLDAPディレクトリ間のものである場合、複数のマッピング・ルールを作成できます。キーワードDomainRulesのみを含んでいる行の後に、ドメイン・ルールの指定が表示されます。各ドメイン・ルールは、コロン区切りのコンポーネント(表9-2で説明されている)で示されます。

表9-2 ドメイン・ルールのコンポーネント

コンポーネント名 説明

SrcDomainName

関係のあるドメインまたはコンテナの名前。LDAPおよびLDIF以外のソースには、NONLDAPを指定します。

DstDomainName

宛先に関係のあるドメイン名。このコンポーネントは、宛先ディレクトリ内のエントリのコンテナが、ソース・ディレクトリでのコンテナと異なる場合に指定します。

SrcDomainNameに割り当てられた値がLDAPまたはLDIFドメインの場合、このフィールドも同じ値を継承します。ただし、SrcDomainNameに割り当てられた値がLDAPまたはLDIFドメイン以外の場合、エントリの作成場所となるコンテナを指定する必要があります。

未指定の場合、このフィールドは有効な状態にあるSrcDomainNameの値を継承します。LDAPおよびLDIF以外の宛先には、NONLDAPを指定します。インポートとエクスポートは、常にOracleバックエンド・ディレクトリを参照するため、NONLDAP:NONLDAPの組合せは許可されません。

DomainMappingRule

このルールは、宛先識別名を構成するために使用されます。詳細は、第9.4.1.1項「ドメイン・マッピング・ルール」を参照してください。


例9-1 識別名マッピングの例

Distinguished Name Rules
%USERBASE INSOURCE%:%USERBASE ATDEST%:

USERBASEは、ソース・ディレクトリのユーザーおよびグループのマップ元のコンテナを指します。通常、これは、ソース・ディレクトリ・ドメインのルートの下にあるusersコンテナです。

例9-2 1対1識別名マッピングの例

1対1マッピングが発生するには、ソース・ディレクトリのDNが宛先ディレクトリのDNと一致している必要があります。この例では、サード・パーティ・ディレクトリのDNが宛先ディレクトリのDNに一致します。具体的には、次の条件を満たしている必要があります。

  • ソース・ディレクトリのホストはus.mycompany.comドメインにあり、したがって、サード・パーティ・ディレクトリ・ドメインのルートはus.mycompany.comです。ドメインの下にあるuserコンテナのDN値は、cn=users,dc=us,dc=mycompany,dc=comになります。

  • 宛先ディレクトリのデフォルトのレルム値は、dc=us,dc=mycompany,dc=comです。このデフォルトのレルムには、DN値がcn=users,dc=us,dc=mycompany,dc=comusersコンテナが自動的に含まれます。

ソース・ディレクトリのDNが宛先ディレクトリのDNと一致するため、ディレクトリ間の1対1識別名マッピングが行われます。

dc=us,dc=mycompany,dc=comの下のcn=usersコンテナのみを同期化する場合、ドメイン・マッピング・ルールは次のとおりです。

Distinguished Name Rules
cn=users,dc=us,dc=mycompany,dc=com:cn=users,dc=us,dc=mycompany,dc=com 

このルールでは、cn=users,dc=us,dc=mycompany,dc=comの下のすべてのエントリが同期化されます。ただし、このコンテナの下で同期化されるオブジェクトのタイプは、識別名マッピング・ルールに従う属性レベルのマッピング・ルールによって決まります。

ソース・ディレクトリからエントリcn=users,dc=us,dc=mycompany,dc=comの下のサブツリーcn=groups,dc=us,dc=mycompany,dc=comを同期化する予定の場合、ドメイン・マッピング・ルールは次のようになります。

cn=groups,dc=us,dc=mycompany,dc=com:cn=groups,cn=users,dc=us,dc=mycompany,dc=com

9.4.1.1 ドメイン・マッピング・ルール

このルールは、ソース・ドメイン名またはAttributeRulesに指定されている属性(あるいはその両方)から、宛先識別名を構成するために使用されます。このフィールドの形式は、通常、cn=%,l=%,o=oracle,dc=comです。これらの指定は、エントリをディレクトリ内の異なるドメインまたはコンテナに配置するために使用されます。LDAP以外のソースの場合、このルールにより、ディレクトリにエントリを追加できるようターゲット識別名を構成する方法を指定します。

このフィールドは、Oracleバックエンド・ディレクトリへのインポート、またはLDIFファイルまたは他の外部LDAP準拠ディレクトリへのエクスポートの場合にのみ有効です。このコンポーネントは、宛先ディレクトリ内のエントリのいずれかの識別名が、ソース・ディレクトリのエントリの識別名と異なる場合に指定します。

このコンポーネントは、LDAPからLDIF、LDAPからLDAP、またはLDIFからLDAPへの同期の場合はオプションです。未指定の場合、ソース・ドメイン名と宛先ドメイン名は同じと考えられます。

dnpart属性

文字列を格納する変数としてdnpart属性を使用し、ドメイン・マッピング・ルールでその変数を再利用できます。

rdn属性では、カンマは属性の一部ですが、dnpart属性では、カンマはディレクトリ・ツリー内に特別なレベルを作成するためのセパレータとして使用されます。

仮想識別名マッピングを有効にするには、ドメイン・マッピング・ルールを次のようにします。

dc=source,dc=com:dc=destination,dc=com:cn=*,dnpart,dc=destination,dc=com 

次の例に示すとおり、属性マッピング・ルールを編集する必要があります。

l:1: :europeanPerson:dnpart: : :"cn=" + l + ",cn=europe"
l:1: :americanPerson:dnpart: : :"cn=" + l + ",cn=america"

前述の例で、ObjectClassは、特別なレベルのcn=europeまたはcn=americaを持つDNの作成を定義するために使用されます。

複数値属性

場合によっては、複数値属性の名前を使用して識別名のRDNを構成する必要があります。たとえば、cn=%,l=%,dc=myCompany,dc=com(cnは複数値属性)の識別名でエントリを構成する場合、DomainMappingRuleは、rdn,l=%,dc=myCompany,dc=com(rdnは、NULL値以外の宛先属性の1つ)のような形式になります。これをサポートする典型的なマッピング・ファイルは、次のような形式です。

DomainRules
NONLDAP:dc=us,dc=myCompany,dc=com:rdn,l=%,dc=us,dc=myCompany,dc=com
AttributeRules
firstname: : :cn: :person
email : : : :cn: :person: trunc(email,'@')
email : 1: : :rdn: :person: 'cn='+trunc(email,'@')
firstname,lastname: : : :cn: :person: firstname+","+lastname
lastname,firstname: : : :cn: :person: lastname+","+firstname
firstname,lastname: : : :sn: :person: lastname | firstname
EmployeeNumber: : : :employeenumber: :inetOrgperson
EMail: : : :mail: :inetOrgperson
telephoneNumber:1 : : :telephonenumber: :person
address:1: : :postaladdress: :person
address:1: : :postaladdress: :person
address:1: : :postaladdress: :person
state: : : :st: :locality
street:1: : :street: :locality
zip: : : :postalcode: :locality

9.4.1.2 ドメインの除外

マップ・ファイルにDomainExclusionListヘッダーを挿入して、ブートストラップや同期化の際に除外するドメインを識別できます。DomainExclusionListにリストされたドメインは、ブートストラップおよび同期化の際に除外されます。


注意:

domainexclusionlistにリストされた識別名(DN)は、ソース・ディレクトリのコンテナのDNを識別しています。

次に、除外するドメインの例を含むDomainExclusionListヘッダーの例を示します。

DomainExclusionList
cn=sales,cn=users,dc=us,dc=mycompany,dc=com
cn=marketing,cn=users,dc=us,dc=mycompany,dc=com

例9-3「DomainExclusionListヘッダーおよびAttributeExclusionListヘッダーを使用したマップ・ファイルの例」は、DomainExclusionListヘッダーを含むマップ・ファイルの例を示しています。この例で、cn=sales,cn=users,dc=us,dc=mycompany,dc=comおよびcn=marketing,cn=users,dc=us,dc=mycompany,dc=comの下のエントリは除外されます。

9.4.2 属性レベル・マッピング

キーワードAttributeRulesのみを含んでいる行の後に、属性ルールの指定が表示されます。属性ルールは、エントリのプロパティ値がどのように2つのLDAPディレクトリ間で関係するかを指定します。たとえば、一方のディレクトリのユーザー・オブジェクトのcn属性を、別のディレクトリのgivennameオブジェクトにマップできます。同様に、一方のディレクトリのグループ・オブジェクトのcn属性を、別のディレクトリのdisplayname属性にマップできます。各属性ルールは、コロン区切りのコンポーネント(表9-3で説明されている)で示されます。

表9-3 属性ルールのコンポーネント

コンポーネント名 説明

SrcAttrName

LDAP準拠ディレクトリのリポジトリの場合、このパラメータは変換する属性の名前を意味します。

Oracle Databaseのリポジトリの場合、このパラメータは、SrcObjectClassで指定された表のColumnNameを意味します。

他のリポジトリの場合、このパラメータは適切に解釈されます。

ReqAttrSeq

ソース属性を宛先に渡す必要があるかどうかを示します。エントリをOracleバックエンド・ディレクトリと接続ディレクトリ間で同期化する場合は、一部の属性を同期キーとして使用する必要があります。このフィールドは、指定した属性がキーとして使用されているかどうかを示します。使用されている場合は、属性の変化には関係なく、その属性の値がソースから抽出されます。

属性を相手側に常に渡す必要がある場合は、このフィールドに0(ゼロ)以外の整数値を指定します。

SrcAttrType

このパラメータは、整数、文字列、バイナリなど、属性の型を意味し、マッピング・ルールの妥当性をチェックします。

SrcObjectClass

共有している属性のソースがLDAP準拠ディレクトリの場合は、このパラメータによって、その属性が所属しているオブジェクト・クラスの名前が指定されます。

共有属性のソースがOracle Databaseのリポジトリの場合、このパラメータは表名を意味し、指定は必須です。他のリポジトリの場合、このパラメータは無視されます。

DstAttrName

オプションの属性。未指定の場合は、SrcAttrNameが使用されます。

LDAP準拠ディレクトリの場合、このパラメータは宛先の属性の名前を意味します。

Oracle Databaseのリポジトリの場合、このパラメータは、SrcObjectClassで指定された表のColumnNameを意味します。

他のリポジトリの場合、このパラメータは適切に解釈されます。

「-」を指定してDstAttrTypeおよびDstObjectClassフィールドを空のままにすると、マッピング関数によって計算された値は、宛先エントリの任意の属性に格納されません。これは、タスクを実行するが値を返さないマッピング関数(AccountLockOut()など)に便利です。

DstAttrType

このパラメータは、整数、文字列、バイナリなど、属性の型を意味します。ソースおよび宛先の属性型の互換性を保証する責任は管理者にあります。Oracle Directory Integration Platformはこの互換性を保証しません。

DstObjectClass

指定しない場合、SrcObjectClass値が使用されます。

LDAP準拠ディレクトリの場合、このパラメータは、属性が所属するオブジェクト・クラスを意味します。このパラメータはオプションです。

Oracle Databaseのリポジトリの場合、このパラメータは表名を意味し、指定は必須です。

他のリポジトリの場合、このパラメータは無視されます。

AttrMapping Rule

演算子(「+」および「|」)と関数を含むオプションの算術式。

詳細は、「サポートされている属性マッピング・ルールと例」を参照してください。

未指定の場合は、ソース属性値が宛先属性の値としてコピーされます。リテラルは一重引用符('')または二重引用符("")で指定できます。


同期プロファイルにマッピング・ルールを入力する場合、厳密に正しい形式になるようにファイルを編集します。


注意:

マッピング・ファイルに属性およびオブジェクト・クラスが定義される際、スキーマに定義されているそれぞれの属性およびオブジェクト・クラスはソース・ディレクトリに入っているとみなされます。

同期用に親コンテナが選択されると、マッピング・ルールに一致するすべての子も同様に同期化されます。子コンテナを選択して同期から排除することはできません。


9.4.2.1 属性の除外

マップ・ファイルにAttributeExclusionListヘッダーを挿入して、ブートストラップや同期化の際に除外する属性を識別できます。AttributeExclusionListにリストされた属性は、ブートストラップおよび同期化の際に除外されます。

次に、除外する属性の例を含むAttributeExclusionListヘッダーの例を示します。

AttributeExclusionList
facsimileTelephoneNumber
telephonenumber

例9-3は、DomainExclusionListおよびAttributeExclusionListの両ヘッダーを含むマップ・ファイルの例を示しています。この例で、cn=sales,cn=users,dc=us,dc=mycompany,dc=comおよびcn=marketing,cn=users,dc=us,dc=mycompany,dc=comの下のエントリは除外され、フィルタされたすべてのエントリでは、facsimileTelephoneNumberおよびtelephonenumber属性が除外されます(含まれません)。

例9-3 DomainExclusionListヘッダーおよびAttributeExclusionListヘッダーを使用したマップ・ファイルの例

DomainRules
cn=users,dc=us,dc=mycompany,dc=com : ou=people,dc=us,dc=myothercompany,dc=com:
DomainExclusionList
cn=sales,cn=users,dc=us,dc=mycompany,dc=com
cn=marketing,cn=users,dc=us,dc=mycompany,dc=com

AttributeRules
# attribute rule common to all objects
objectguid: :binary: :orclobjectguid:string: :bin2b64(objectguid)
ObjectSID: :binary: :orclObjectSID:string:orclADObject:bin2b64(ObjectSID)
distinguishedName: : : :orclSourceObjectDN: :orclADObject
# USER ENTRY MAPPING RULES
# attribute rule for mapping windows LOGIN id
sAMAccountName,userPrincipalName: : :user:orclSAMAccountName: :orclADUser:toupper(truncl(userPrincipalName,'@'))+"$"+sAMAccountname
# attribute rule for mapping Active Directory LOGIN id
userPrincipalName: : :user:orclUserPrincipalName: :orclADUser:userPrincipalName
# Map the userprincipalname to the nickname attr by default
userPrincipalName: : :user:uid: :inetorgperson:userPrincipalName
# Map the SamAccountName to the nickname attr if required
# If this rule is enabled, userprincipalname rule needs to be disabled
#sAMAccountName: : :user:uid: :inetorgperson
# Assign the userprincipalname to Kerberaos principalname
userPrincipalName: : :user:krbPrincipalName: :orcluserv2:trunc(userPrincipalName,'@')+'@'+toupper(truncl(userPrincipalName,'@'))
# This rule is mapped as SAMAccountName is a mandatory attr on AD
# and sn is mandatory on OID. sn is not mandatory on Active Directory
SAMAccountName: : :user:sn: : person:
# attributes to map to cn - normally this is the given name
cn: : :person:cn: :person:
AttributeExclusionList
facsimileTelephoneNumber
telephonenumber

9.4.3 新しいマッピング・ファイルの手動作成

同期プロファイルを作成および構成する際に、Oracle Enterprise Manager Fusion Middleware Controlを使用して同期マッピング・ルールを作成することをお薦めします。「同期プロファイルの作成」で説明するように、マッピング・ルールは「マッピング」タブで作成します。次の情報は、マッピング・ファイルを手動で(つまりOracle Enterprise Manager Fusion Middleware Controlを使用しないで)作成する必要がある場合に参照するためのものです。

新規マッピング・ファイルを手動で作成するには、次のようにします。

  1. ソース・ディレクトリ内で同期に関係のあるコンテナを指定します。

  2. ソース・コンテナ内のオブジェクトのマッピング先である宛先コンテナを指定します。指定されたコンテナがディレクトリ内に存在することを確認します。

  3. 宛先ディレクトリ内に作成されるエントリの識別名作成ルールを決定します。LDAPからLDAPへの場合、マッピングは通常1対1です。LDAP以外からLDAPへの場合は、ドメインの識別名構成ルールが必要です。たとえば、タグ付きファイルまたはHuman Resourcesエージェントからの同期の場合、マッピング・ルールの形式はuid=%,dc=mycompany,dc=comになります。その場合、Oracle Human Resourcesから適用されるすべての変更にuid属性が存在する必要があります。手順6で指定するとおり、必須属性としてuid属性を指定する必要があります。

  4. ディレクトリ間で同期化するオブジェクト(ソースおよび宛先ディレクトリ内の関連オブジェクト・クラス)を指定します。通常、ディレクトリ間で同期化されるオブジェクトには、ユーザー、グループ、組織単位、組織およびその他のリソースがあります。これらのオブジェクトを識別するには、ディレクトリで使用されている実際のオブジェクト・クラスを識別します。

  5. ディレクトリ間で同期化する各種オブジェクトのプロパティ(LDAPコンテキストの属性)を指定します。オブジェクトの属性すべてを同期化する必要はありません。同期化対象のユーザー・プロパティは、cnsnuidおよびmailです。

  6. マッピング・ルールを定義します。各マッピング・ルールの形式は次のとおりです。

    <srcAttrName>:<ReqdFlag>:<srcAttrType>:<SrcObjectClass>: <dstAttrName>:<dstAttrType>:<dstObjectClass>: <Mapping Rule>
    
    
    

    マッピング・ルールを定義するときは、必ず次のことを確認してください。

    • 必須属性にはそれぞれ順序番号が付いていること。たとえば、手順3uid属性が必須として指定された場合は、<ReqdFlag>のかわりに1の値を割り当てます。

    • 関連オブジェクト・クラスは、それぞれ宛先ディレクトリ上にスキーマ定義を持つこと。

    • 宛先オブジェクト・クラス内の必須属性は、すべてソースから割り当てられた値を持つこと。様々なLDAP実装は標準に完全に準拠していないこともありますが、これは標準オブジェクト・クラスにも当てはまります。

    ソース・オブジェクト・クラスに属する属性のすべてを1つの宛先オブジェクト・クラスに割り当てる必要はありません。ソース・オブジェクト・クラスの各種の属性は、異なる宛先オブジェクト・クラスに属する様々な属性に割り当てることができます。

    属性がバイナリ値をとる場合は、<attrtype>フィールドでbinaryとして指定します。

マッピング・ルールには柔軟性があります。1対多と多対1の両方のマッピングを組み込むことができます。

  • 1対多

    接続ディレクトリの1つの属性を、Oracleバックエンド・ディレクトリの多数の属性にマップできます。たとえば、接続ディレクトリのある属性がAddress:123 Main Street/MyTown, MyState 12345であるとします。Oracleバックエンド・ディレクトリのこの属性を、LDAP属性homeAddressおよびLDAP属性postalAddressの両方にマップできます。

  • 多対1

    接続ディレクトリの複数の属性をOracleバックエンド・ディレクトリの1つの属性にマップできます。たとえば、Oracle Human Resourcesディレクトリでは、firstname=Annelastname=Smithの2つの属性を使用してAnne Smithを表すとします。これらの2つの属性は、Oracleバックエンド・ディレクトリの1つの属性cn=Anne Smithにマップできます。ただし、双方向同期では、逆方向のマッピングはできません。たとえば、cn=Anne Smithを複数の属性にマップすることはできません。


関連項目:

この章の終わりにあるマッピング・ファイルの例

9.4.4 サポートされている属性マッピング・ルールと例

サポートされている属性マッピング・ルールは、次のとおりです。

  • 連結演算子(+): 2つの文字列属性を連結します。

    次のようなマッピング・ルールについて考えてみます。

    Firstname,lastname:  :  :  : givenname:  : inetorgperson: firstname+lastname
    

    たとえば、ソースのFirstnameJohnLastNameDoeの場合、このルールによって、宛先のgivenname属性は、JohnDoeという値になります。

  • OR演算子(|): 2つの文字列属性の値の1つを宛先に割り当てます。

    次のようなマッピング・ルールについて考えてみます。

    Fistname,lastname : : : :givenname: :inetorgperson: firstname | lastname
    

    この例では、firstnameの値が存在する場合は、それがgivennameに割り当てられます。firstname属性が存在しない場合、lastnameの値がgivennameに割り当てられます。両方の値が空である場合、値は割り当てられません。

  • bin2b64 ( ): ソース・ディレクトリのバイナリ値をBase64のエンコード値として宛先ディレクトリに保存します。通常、次のように使用します。

    objectguid: : : :binary: :orclobjectguid: orcladuser:bin2b64(objectguid)
    

    (objectguid)の値を検索する必要がある場合、これは必須です。

  • tolower(): 文字列属性値を小文字に変換します。

    firstname: : : :givenname: :inetorgperson: tolower(firstname)
    
  • toupper(): 文字列属性値を大文字に変換します。

    firstname: : : :givenname: :inetorgperson: toupper(firstname)
    
  • trunc(str,char): 文字列を切り捨て、指定したcharの最初の出現箇所と、charの右側に出現するすべての文字を削除します。次に例を示します。

    mail : : : : uid : : inetorgperson : trunc(mail,'@')
    

    たとえば、ソースのmailJohn.Doe@acme.comの場合、このルールによって、宛先のuid属性は、John.Doeという値になります。

  • truncl(str,char): 文字列を切り捨て、指定したcharの最初の出現箇所と、charの左側に出現するすべての文字を削除します。次に例を示します。

    mail : : : : ou : : inetorgperson : truncl(mail,'@')
    
  • truncr(str,char): 文字列を切り捨て、指定したcharの最初の出現箇所と、charの右側に出現するすべての文字を削除します。次に例を示します。

    mail : : : : uid : : inetorgperson : truncr(mail,'@')
    
  • dnconvert(str): ドメイン・マッピングが使用される場合に、DNタイプ属性を変換します。

    この例は、次のドメイン・マッピング・ルールを前提としています。

    DomainRules
    cn=srcdomain:cn=dstdomain:
    

    次に例を示します。

    uniquemember : : : groupofuniquenames : uniquemember : :groupofuniquenames : dnconvert(uniquemember)
    

    この例で、ソースのuniquemembercn=testuser1,cn=srcdomainの場合、宛先のuniquemembercn=testuser1,cn=dstdomainになります。

  • substring(String src,String startPosition,String endPosition): <start position>にあるstartingと<end position>にあるending、または文字列の最後まで(指定がない場合)の部分文字列を返します。

    sn: : : person: employeenumber: : inetorgperson:substring(sn,"2","5")
    sn: : : person: givenname: : inetorgperson:substring(sn,"3")
    
  • リテラル:

    Userpassword: : :person: userpassword: :person: 'welcome1'
    
  • fsptodn: FSP (外部セキュリティ・プリンシパル)からDNを計算します。次に例を示します。

    fsp : : : : dn : : top : fsptodn(fsp)
    
  • AccountLockOut: バインド試行に複数回失敗した後にユーザー・アカウントをロックします。次に例を示します。

    pwdAccountLockedTime::::-:::AccountLockOut(pwdAccountLockedTime,<lockout-duration>, <bind-failures>)
    

    詳細は、「アカウント・ロックの同期の構成」を参照してください。

  • AccountDisable: ユーザー・アカウントを一時的に無効化してから、再度有効化します。たとえば、ソース・ディレクトリと宛先ディレクトリとしてOracle Unified Directoryを使用する場合:

    ds-pwp-account-disabled:1:::ds-pwp-account-disabled::top:
    

    詳細は、「アカウント無効化の同期」を参照してください。

  • OnDemandPassword: インポート・プロファイルを構成して、接続ディレクトリからバックエンド・ディレクトリにパスワードを同期化します。次に例を示します。

    pwdLastSet : : : user : orclODIPPwdLastSet : : top : onDemandPassword(pwdLastSet)
    

    詳細は、「パスワード同期」を参照してください。

  • PasswordTranslate: エクスポート・プロファイルを構成して、バックエンド・ディレクトリから接続ディレクトリにパスワードを同期化します。次に例を示します。

    orclodiptranslatepassword: : : : unicodepwd : : user : passswordtranslate(orclodiptranslatepassword)
    

    詳細は、「パスワード同期」を参照してください。

9.4.5 アカウント・ロックの同期の構成

バックエンド・ディレクトリまたは接続ディレクトリのアカウント・ロックアウト機能を使用して、バインド試行が何度も失敗した後にユーザー・アカウントをロックできます。アカウントがロックされると、ユーザーは認証を許可されません。ロックアウトは、一時的(指定された期間の後で自動的に終了)または永続的(管理者がユーザーのパスワードをリセットするまで有効)にできます。

バックエンド・ディレクトリおよび関連する接続ディレクトリがOracle Directory Integration Platformに同期される場合で、1つのディレクトリのアカウントがロックアウトされると、Oracle Directory Integration Platformによって他のディレクトリでもそのアカウントがロックアウトされます。


注意:

Oracle Directory Integration Platformでのアカウント・ロックアウトの同期は、Oracle Unified DirectoryおよびOracle Directory Server Enterprise Editionバックエンド・ディレクトリでのみサポートされます。

この項には次のトピックが含まれます。

9.4.5.1 前提条件

アカウント・ロックアウトの同期を構成するための前提条件は、次のとおりです。

  • バックエンド・ディレクトリと接続ディレクトリが時間同期されていることを確認します。時間同期の詳細は、使用しているオペレーティング・システム固有のドキュメントを参照してください。

  • バックエンド・ディレクトリと接続ディレクトリのパスワード・ポリシーが、アカウント・ロックアウトの有効化または無効化、バインド機能、ロックアウト期間などで同じプロパティを持つように構成されていることを確認します。

    詳細は、次を参照してください。

    • Oracle Fusion Middleware Oracle Directory Server Enterprise Edition管理者ガイドデフォルト・パスワード・ポリシーの管理に関する項。

    • 『Oracle Fusion Middleware Oracle Unified Directoryの管理』のパスワード・ポリシーの管理に関する項。


注意:

パスワード・ポリシーがエントリに割り当てられていない場合、デフォルト値が割り当てられます。ソース・ディレクトリと接続ディレクトリが同じデフォルト・パスワード・ポリシーを持つように構成されていることを確認してください。

9.4.5.2 アカウント・ロックアウトの同期の有効化

マッピング・ルールを次のように編集して、アカウント・ロックアウトの同期を有効化できます。

ソース・ディレクトリがOracle Unified DirectoryまたはOracle Directory Server Enterprise Editionの場合

アカウント・ロックアウトの同期を有効化するには、次のようにします。

pwdAccountLockedTime::::-:::AccountLockOut(pwdAccountLockedTime, <lockout-duration>, <bind-failures>)

bind-failures: その数の超過後にOracle Directory Integration Platformが宛先ディレクトリに対してアカウントをロックできる失敗したバインドの数。

lockout-duration: アカウントが自動的にロックされた後に自動ロック解除するためにパスワード・ポリシーに対して構成された時間。ソース・ディレクトリと宛先ディレクトリのパスワード・ポリシーに同じ期間が割り当てられていることを確認します。

:

pwdAccountLockedTime::::-:::AccountLockOut(pwdAccountLockedTime,"300","3")

ソース・ディレクトリがMicrosoft Active Directoryの場合

次のマッピング・ルールを追加できます。

lockoutTime,msds-user-account-control-computed:::user:-:::
AccountLockOut(msds-user-account-control-computed,<bind-failures>)

bind-failures: その数の超過後にOracle Directory Integration Platformが宛先ディレクトリに対してアカウントをロックできる失敗したバインドの数。

:

lockoutTime,msds-user-account-control-computed:::user:-:::
AccountLockOut(msds-user-account-control-computed,"3")

9.4.6 アカウント無効化の同期

管理者がアカウントを無効化すると、管理者がそれを有効化するまでログインできません。バックエンド・ディレクトリまたは接続ディレクトリの機能を使用して、ユーザー・アカウントを一時的に無効化してから、再度有効化できます。あるディレクトリでアカウントが一時的に無効化または有効化されると、Oracle Directory Integration Platformによって、関連するディレクトリでそのアカウントが一時的に無効化または有効化されます。

表9-4に記載されているマッピング・ルールを追加して、アカウント無効化の同期を構成できます。


注意:

Oracle Directory Integration Platformでのアカウント無効化の同期は、Oracle Unified DirectoryおよびOracle Directory Server Enterprise Editionバックエンド・ディレクトリでのみサポートされます。

表9-4 アカウント無効化の同期のマッピング属性

ソース・ディレクトリ 宛先ディレクトリ マッピング・ルール

Oracle Unified Directory


Oracle Unified Directory


ds-pwp-account-disabled:1:::ds-pwp-account-disabled::top:

Oracle Directory Server Enterprise Edition


Oracle Unified Directory


nsAccountLock:1:::ds-pwp-account-disabled::top:

Microsoft Active Directory

Oracle Unified Directory


userAccountControl:1:::ds-pwp-account-disabled::top:

AccountDisable(userAccountControl)

Oracle Unified Directory


Oracle Directory Server Enterprise Edition


ds-pwp-account-disabled:1:::nsAccountLock::top:

Oracle Directory Server Enterprise Edition


Oracle Directory Server Enterprise Edition


nsAccountLock:1::: nsAccountLock::top:

Microsoft Active Directory

Oracle Directory Server Enterprise Edition


userAccountControl:1:::nsAccountLock::top:

AccountDisable(userAccountControl)

Oracle Unified Directory


Microsoft Active Directory

modifiersName,ds-pwp-account-disabled:1:::userAccountControl::user:AccountDisable(ds-pwp-account-disabled, "544")

Oracle Directory Integration Platformでは、ブートストラップ中にuserAccountControl属性のデフォルト値として544を使用します。ADS_UF_ACCOUNTDISABLE属性は、ソース・ディレクトリの無効状態を反映するように設定されます。userAccountControl属性の詳細は、Microsoft Active Directoryのドキュメントを参照してください。

Oracle Directory Server Enterprise Edition


Microsoft Active Directory

modifiersName,nsAccountLock:1:::userAccountControl::user:AccountDisable(nsAccountLock, "544")

Oracle Directory Integration Platformでは、ブートストラップ中にuserAccountControl属性のデフォルト値として544を使用します。ADS_UF_ACCOUNTDISABLE属性は、ソース・ディレクトリの無効状態を反映するように設定されます。userAccountControl属性の詳細は、Microsoft Active Directoryのドキュメントを参照してください。



注意:

ソース・ディレクトリのユーザーを無効化するには、次を参照してください。

9.4.7 例: タグ付きファイル・インタフェース用のマッピング・ファイル

前述の説明に基づいて、ここではタグ付きファイル・インタフェースを使用して、Oracle Human Resourcesデータベース表からユーザー・エントリをインポートするためのマッピング・ファイルの例を示します。ソースはLDAP以外のディレクトリです。このサンプル・ファイルはインストール時に提供され、$ORACLE_HOME/ldap/odi/conf/oraclehragent.map.masterにあります。

DomainRules
NONLDAP:dc=metahr,dc=com:cn=%,dc=metahr,dc=com
AttributeRules
firstname: : : :cn: :person
lastname: : : :sn: :person
lastname: : : :cn: :person
email: : : :cn: :person: trunc(email,'@')
firstname,lastname: : : :cn: :person: firstname+","+lastname
firstname,lastname: : : :cn: :person: lastname+","+firstname
EmployeeNumber: : : :employeenumber: :inetOrgperson
EMail: : : :mail: :inetOrgperson
TelephoneNumber1: : : :telephonenumber: :person
TelephoneNumber2: : : :telephonenumber: :person
TelephoneNumber3: : : :telephonenumber: :person
Address1: : : :postaladdress: :person:Address1 | Address2
Address2: : : :Telephonenumber: :person:
state: : : :st: :locality
street1: : : :street: :locality
zip: : : :postalcode: :locality
town_or_city: : : :l: :locality
Title: : : :title: :organizationalperson
#Sex: : : :sex: :person
#socialsecurity: : : :ssn: :person
country: : : :c: :country
#BirthDate: : : :birthday: :organizationalperson
employeenumber:1: : :userpassword: :person: "********"+employeenumber

関連項目:

詳細は、「ドメイン・マッピング・ルール」を参照してください。

前述のように、マッピング・ファイルは、キーワードおよびドメインと属性の一連のマッピング・ルール・エントリで構成されています。この例のマッピング・ファイルには、ドメイン・ルールNONLDAP:dc=myCompany,dc=com:cn=%,dc=myCompany,dc=comが含まれています。

  • このルールは、ソース・ドメインがNONLDAPで、ソース・ドメインがないことを示しています。

  • 宛先ドメイン(:dc=myCompany,dc=com)は、このプロファイルが処理するすべてのディレクトリ・エントリが、ドメインdc=myCompany,dc=comにあることを示しています。同期化を開始する前に、ドメインが存在することを確認してください。

  • ドメイン・マッピング・ルール(:uid=%,dc=myCompany,dc=com)は、ソースからのデータが、このドメイン・マッピング・ルールで構成した識別名を持つディレクトリ内のエントリを参照することを示しています。この場合のuidは、常にNULL以外の値を持つ宛先属性の1つである必要があります。同期化するエントリに対応するデータがNULL値の場合、マッピング・エンジンは、そのエントリを無効と判断し、次のエントリに進みます。ディレクトリでエントリを正確に識別するには、uidが単一値であることも必要です。

  • タグ付きファイルの場合、ソース・エントリは同期化対象のオブジェクトのタイプを示すオブジェクト・クラスを持ちません。SrcObjectClassフィールドは空白です。

  • 宛先がOracleバックエンド・ディレクトリであるオブジェクトは、それぞれオブジェクト・クラスを持つ必要があります。

  • emailは、マッピング・ファイル例では必須属性として指定されています。それは、uid属性がemail属性から導出されているためです。同期化を成功させるには、タグ付きファイルに指定されているすべての変更に、次のとおりemail属性を指定する必要があります。

    Email : 1 : : :uid : : person : trunc(email,'@')
    

9.4.8 例: LDIFインタフェース用のマッピング・ファイル

統合プロファイルのサンプルは、Oracle Directory Integration Platformインストールの一部として作成されます。統合プロファイルのサンプルの作成に使用されるプロパティ・ファイルは、$ORACLE_HOME/ldap/odi/samplesディレクトリにあります。


注意:

接続されているOracle Databaseのインポート・マッピング・ファイルのサンプルは、第12.4.2項「マッピング・ファイルの構成」を参照してください。

次にインポート・マッピング・ファイルの例を示します。

インポート・マッピング・ファイル例

DomainRules
dc=mycompany.oid,dc=com:dc=mycompany.iplanet,dc=com
AttributeRules
# Mapping rules to map the domains and containers
o: : :organization: o: :organization
ou: : :organizationalUnit: ou: : organizationalUnit
dc: : :domain:dc: :domain
# Mapping Rules to map users
uid : : :person: uid: :inetOrgperson
sn: : :person:sn: :person
cn: : :person:cn: :person
mail: :inetorgperson: mail: :inetorgperson
employeenumber: :organizationalPerson: employeenumber: :organizationalperson
c: : :country:c: :country
l: : :locality: l: :locality
telephonenumber: :organizationalPerson: telephonenumber: :organizationalperson
userpassword: : :person: userpassword: :person
uid: : :person: orcldefaultProfileGroup: :orclUserV2
# Mapping Rules to map groups
cn: : :groupofuniquenames:cn: :groupofuniquenames
member: : :groupofuniquenames:member: :orclgroup
uniquemember: : :groupofuniquenames:uniquemember: :orclgroup
owner: : :groupofuniquenames:owner: :orclgroup
# userpassword: :base64:userpassword: :binary:

この例では、ソース・ドメインと宛先ドメインの両方が、ドメイン・マッピング・ルール・セクションで指定されています。この例では、ソース・ドメインと宛先ドメインは同じです。ただし、コンテナが宛先ディレクトリにある場合は、異なる宛先ドメインを指定できます。

また、この例では、属性ルールがユーザー属性マッピング・ルールとグループ属性マッピング・ルールの2つのセクションに分かれています。マッピング・ルールにオブジェクト・クラスを指定すると、あるオブジェクトの特定の属性を一意にマップできます。

9.4.9 マッピング・ルールの更新

マッピング・ルールは、新規ルールの追加、既存ルールの変更またはorclodipAttributeMappingRules属性に指定されているマッピング・ルール・セットからの一部のルールの削除によって、カスタマイズできます。通常、これらの操作を実行するには、マッピング・ルールが指定されているファイルを指定するか、または使用するOracleバックエンド・ディレクトリのドキュメントの説明に従い、ldapsearchコマンドを使用してファイルの属性値を格納します。

9.4.9.1 エントリのマッピング・ルール・ファイルへの追加

新規エントリをマッピング・ルール・ファイルに追加するには、そのファイルを編集して、レコードをファイルに追加します。これには、次のようにします。

  1. Oracleバックエンド・ディレクトリにマップする必要がある接続ディレクトリの属性名とオブジェクト・クラスを識別します。

  2. Oracleバックエンド・ディレクトリ内の対応する属性名およびマップ先のオブジェクト・クラスを識別します。

  3. 属性値に対して実行する必要がある変換を示すマッピング・ルール要素を生成します。

  4. managesyncprofilesコマンドを使用して、属性マッピング・ルール・ファイルを同期プロファイルにロードします。

    たとえば、ソース・ディレクトリ内のあるエントリの電子メール属性を宛先の固有識別子にマップする必要がある場合は、次のようになります。

    Email:  :  : inetorgperson: uid: : person:
    

9.4.9.2 マッピング・ルール・ファイル内のエントリの変更

マッピング・ルール・ファイル内の変更するエントリを特定した後、属性値の変換に必要なマッピング・ルール要素を生成します。

9.4.9.3 エントリのマッピング・ルール・ファイルからの削除

マッピング・ルール・ファイル内の削除するエントリを特定した後、エントリをファイルから削除するか、エントリの前に番号記号(#)を付けてそのエントリをコメント化することができます。


関連項目:


9.5 カスタム・プラグインを使用したマッピングの拡張

カスタム・プラグインを使用してマッピング機能を拡張できます。新しいマッピング操作用のプラグインをサポートするために、oracle.ldap.odip.util.mapapi.IMapOperation Javaインタフェースが定義されています。このトピックには次の項が含まれ、マッピング機能を拡張するカスタム・プラグインに対するOracle Directory Integration Platformのサポートが説明されています。

9.5.1 カスタム・プラグインの作成

カスタム・プラグインを使用してマッピング機能を拡張するには、次のようにoracle.ldap.odip.util.mapapi.pluginパッケージのクラスを実装し、oracle.ldap.odip.util.mapapi.IMapOperationインタフェースを実装する必要があります。

package oracle.ldap.odip.util.mapapi;
 
import java.util.Vector;
 
public interface IMapOperation
{
   public Vector evaluate(Vector operands);
}

evaluate()メソッドによって取得されるoperands引数は、ベクターです。operandsベクターの要素は、マッピング・ルールで指定されたプラグイン呼出しに基づいて、次のいずれかになります。

  • 値のベクター(プラグインの引数として渡される属性)

  • 文字列(文字列リテラルはプラグインの引数として渡される)

  • 文字(文字リテラル)

戻り型はベクターです。このベクターのすべての要素は文字列またはバイト配列であることが必要です。単一の文字列を戻すには、サイズ1の新規ベクターを作成し、そのベクターに文字列を追加する必要があります。この制限は、複数値属性を許可するために強制されます。


注意:

Vector evaluateメソッドは、空のベクター(属性を消去または削除)またはNULL値(現在の値を変更せずに維持)を返すこともできます。

次に例を示します。

cn,sn: : :person:description: :person:PLUGIN#MyPlugin(cn, sn, ”Mr”)

プラグイン・クラスMyPluginは、Vector evaluate(Vector operands)メソッドを実装する必要があります。このマッピング・ルールのプラグイン呼出しにより、operandsの要素は次のようになります。

  • 要素1は、cnのすべての値を含むベクターです(cnに1つの値しかない場合も含む)。

  • 要素2は、snのすべての値を含むベクターです(snに1つの値しかない場合も含む)。

  • 要素3は、文字列リテラル「Mr」です。

次に例を示します。

package oracle.ldap.odip.util.mapapi.plugin;
 
import java.util.Vector;
 
public class MyPlugin
  implements oracle.ldap.odip.util.mapapi.IMapOperation
{
  public Vector evaluate(Vector operands)
  {
    ...
  }
}

9.5.2 マッピング・プラグインの評価制約

  • 属性に複数の値がある場合、対応するプラグインは、ベクターに格納されているすべての属性値に対して一度のみ呼び出されます。属性値ごとに呼び出されるわけではありません。

  • 空の文字列リテラル(" ")または文字リテラル(' ')は無視されます。

  • プラグイン呼出しに従って、evaluate()メソッドのVector operandsに含まれる各要素のタイプを識別し、適宜処理する必要があります。

  • プラグインと既存のマッピング・ルールの演算子またはファンクションの組合せはサポートされません。たとえば、次の組合せはマッピング・ルールとしてサポートされません。

    Plugin#MyPlugin(cn, sn) + givenanme 
    toupper(Plugin#(MyPlugin(cn,sn))
    Plugin#TempPlugin1(cn) + Plugin#TempPlugin2(sn)
    
  • 異なる属性ルールのマッピング・プラグイン呼出しを同じ呼出しシグネチャにすることをお薦めします。次の例は、Mypluginが異なる呼出しシグネチャを持つため、非常に間違いやすく、推奨されません。

    sn: : :person:givenname: :person:PLUGIN#MyPlugin(sn,"Mr")
    cn: : :person:description: :person:PLUGIN#MyPlugin(cn)
    

9.5.3 マッピング・プラグインの追加

マッピング・プラグインをOracle Directory Integration Platformに追加するには、次のようにします。

  1. 実行中の場合は、Oracle Directory Integration PlatformをホストしているWebLogic管理対象サーバーを停止します。

  2. マッピング・プラグインのJARファイルを、Oracle Directory Integration Platformアプリケーションが展開されたパスの/APP-INF/lib/ディレクトリにコピーします。次に例を示します。

    MW_HOME/user_projects/domains/DOMAIN_NAME/servers/MANAGED_SERVER_NAME/tmp/_WL_user/DIP_VERSION_NUMBER/RANDOM_CHARACTERS/APP-INF/lib/
    
  3. Oracle Directory Integration PlatformをホストするWebLogic管理対象サーバーを起動します。

9.5.4 マッピング・プラグインのアプリケーション

この項では、マッピング・プラグインの様々なアプリケーションについて説明します。内容は次のとおりです。

9.5.4.1 新規のマッピング操作のサポート

アプリケーションでは、マッピング・フレームワークで内部的にサポートされていない独自のマッピング操作を実装できます。

条件付きマッピングのサポート

条件付き属性マッピングのサポート

条件に基づく属性マッピングをサポートできます。たとえば、credential属性が存在する場合はorclisenabledENABLEDに設定し、存在しない場合はorclisenabledDISABLEDに設定するようにマッピング・ルールを作成できます。このロジックは、プラグインを実装してこの値を割り当てることでサポートできます。このマッピング・ルールは、次のようになります。

credential: : :UserType:orclisenabled::orcluserv2:PLUGIN#ConditionalAttrBasedOnPresence(credential)

すべてのカスタム・プラグインで、属性マッピング・ルールにPLUGIN#キーワードを含める必要があります(この場合はConditionalAttrBasedOnPresence)。

条件付き識別名マッピングのサポート

条件に基づくDNコンテナ・マッピングをサポートできます。たとえば、部門がSalesのユーザーをou=sales,dc=acme,dc=comにマップし、部門がITのユーザーをou=IT,dc=acme,dc=comにマップするとします。このマッピングをサポートするには、次のようにします。

  • DomainRulesセクションに、次のような構成ルールを指定します。

    NONLDAP:dc=acme,dc=com:cn=%,ou=%,dc=acme,dc=com
    
  • AttributeRulesセクションに、ouをマップするためのプラグイン操作を含む次のようなルールを指定します。

    department: : :UserType:ou: :orcluserv2:ConditionalOUMapping(department)
    

9.5.4.2 複数のリテラル値のサポート

現在のマッピング・フレームワークでサポートされるのは、属性に対して単一のリテラル値を指定することのみです。しかし、属性に複数のデフォルト値を指定できる場合は、複数のリテラル値を指定することが必要になります。たとえば、Microsoft Exchangeの場合、複数の値を指定できるshowInAddressBook属性が存在します。これも、プラグインを使用して実装できます。

9.5.5 プラグインの使用例

この項では、プラグインの使用例を示します。

例1: 属性マッピング・ルール

cn: : :person:initials: :person:PLUGIN#PluginSamp1(cn)

例1: 対応するプラグインの実装

vector evaluate(Vector operands)
{ 
 Vector all_cnValues = (Vector)operands.get(0); Vector result =  new Vector();         
 //All the elements of this result must be strings.               
 return result;     
}

例2: 属性マッピング・ルール

cn: : :person:givenname: :person:PLUGIN#Myplugin(cn,"Mr")

例2: 対応するプラグインの実装

Vector evaluate(Vector operands)
{
Vector all_cnValues = (Vector)operands.get(0);
String strOperand = (String)operands.get(1);
Vector result =  new Vector();
 
for(int i=0; i<all_cnValues.size(); i++)
{
String cnValue = (String) all_cnValues.get(i);
String givenNameNewValue = strOperand + cnValue;
result.add(givenNameNewVlaue);
}
//All the elements of this result must be strings.
return result;
}

例3: 属性マッピング・ルール

mail: : :inetorgperson:mail: :inetorgperson: Plugin#MyPlugin(mail, '@')

例3: 対応するプラグインの実装

Vector evaluate(Vector operands)
{
    Vector all_mailValues = (Vector) operands.get(0);
    Character charOperand = (Character) operands.get(1);
    char charOperandValue = charOperand.charValue();
    
    Vector result =  new Vector();
   
    return result;
}

例4: 属性マッピング・ルール

cn,sn,mail: : :inetorgperson:description: :inetorgperson Plugin#MyPlugin(cn, sn, mail)

例4: 対応するプラグインの実装

Vector evaluate(Vector operands)
{
                Vector all_cnValues = (Vector) operands.get(0);
                Vector all_snValues = (Vector) operands.get(1);
                Vector all_mailValues = (Vector) operands.get(2);

                Vector result = new Vector();
                …
                …
                …

                return result;
}

9.6 一致フィルタの構成

デフォルトで、コネクタにより、同期用に構成されたコンテナ内のすべてのオブジェクトに対する変更が取得されます。しかし、ユーザーおよびグループに対する変更のみなど、特定のタイプの変更のみを同期化する場合があります。マッピング・ルールにより、エントリをあるディレクトリから別のディレクトリに変換する方法を指定できますが、ディレクトリ間で同期化されるオブジェクトをフィルタ処理することもできます。

接続ディレクトリからの変更をOracleバックエンド・ディレクトリにインポートする前に、同期プロファイルで変更を「接続されたディレクトリ一致フィルタ」(orclODIPConDirMatchingFilter)属性を使用してフィルタ処理できます。同様に、Oracleバックエンド・ディレクトリから接続ディレクトリにエクスポートする前に、変更を「OID一致フィルタ」(orclODIPOIDMatchingFilter)属性を使用してフィルタ処理できます。

どちらの属性の場合も、次の項で説明されているように、接続ディレクトリに対して、LDAP検索により増分変更を取得するか、または変更ログに変更を格納するかのいずれかのフィルタを指定できます。

9.6.1 LDAP検索による変更のフィルタ処理

変更ログをサポートしていない接続ディレクトリの場合、LDAP検索の実行によりエントリの最新のフットプリントが取得されます。objectclass=*を指定して実行されるLDAP検索では、所定のツリーまたはサブツリー内のエントリがすべて返されるため、同期に関係のあるオブジェクトのみを取得するには、LDAPフィルタ構文を使用してフィルタを指定する必要があります。たとえば、検索フィルタをorclOdipConDirMatchingFilter属性に割り当てることができます。フィルタは、searchfilter=LDAP_SEARCH_FILTERと指定します。

次の例では、組織単位、グループおよびユーザーを取得し、コンピュータは取得しないLDAP検索フィルタを作成します。

searchfilter=(|(objectclass=group)(objectclass=organizationalUnit)
(&(objectclass=user)(!(objectclass=computer))))

9.6.2 変更ログからの変更のフィルタ処理

変更ログに変更を格納する接続ディレクトリの場合、Oracle Directory Integration Platformに用意されている次の単純な演算子を使用すれば、「接続されたディレクトリ一致フィルタ」(orclODIPConDirMatchingFilter)または「OID一致フィルタ」(orclODIPOIDMatchingFilter)に一致フィルタを指定できます。

  • =(等しい演算子)

  • !(等しくない演算子)


注意:

LDAPまたはLDAP以外のディレクトリで、変更ログから増分変更が取得される場合は、前述の演算子を使用できます。

LDAP検索を使用して増分変更を取得する接続ディレクトリでは、前述の演算子を使用することもできますが、指定できるのは単一の式のみです。そうでない場合、検索は失敗します。


フィルタをsearchfilter=CHANGELOG_SEARCH_FILTERと指定します。

たとえば、次のフィルタを使用すると、プロファイルimp1またはプロファイルimp2によって変更が行われた場合、同期が行われません。

searchfilter=(!(|(modifiersname=orclodipagentname=imp1,cn=subscriberprofile,cn=changelog subscriber,cn=products,cn=oraclecontext)(modifiersname=orclodipagentname=imp2,cn=subscriberprofile,cn=changelog subscriber,cn=products,cn=oraclecontext)))

変更を変更ログに格納する接続ディレクトリの場合、一致フィルタで同期化できるのは、変更ログに現れる属性についてのみです。変更ログにない属性を一致フィルタに含めると、検索操作は失敗します。このため、一致フィルタの使用は、変更ログに増分変更を格納する接続ディレクトリに限られます。

9.7 ファイルの場所とネーミング

表9-5に、同期時に使用される各種のファイルの場所を示します。デフォルトでは、ファイル・ベースのインタフェース(タグ付き/LDIF)が同期に使用される場合、次の場所でファイルの読取りと書込みが行われます。

表9-5 ファイルの場所と名前

ファイル ファイル名

インポート・データ・ファイル

$ORACLE_HOME/ldap/odi/data/import/Profile_Name.dat

エクスポート・データ・ファイル

$ORACLE_HOME/ldap/odi/data/export/Profile_Name.dat


たとえば、Oracle Human Resourcesプロファイルのデータ・ファイル名はoraclehrprofile.datです。

9.8 パスワード同期

Oracle Directory Integration Platformのパスワード同期機能を使用して、バックエンド・ディレクトリと接続ディレクトリの全体で単一のパスワードを維持できます。


注意:

バックエンド・ディレクトリと接続ディレクトリのパスワードを同期化するには、SSL接続を使用することをお薦めします。

9.8.1 パスワード同期のメカニズム

パスワード同期は、構成モードとデプロイメント・モードが異なるため、バックエンド・ディレクトリと接続ディレクトリに応じて異なります。Oracle Directory Integration Platformには、選択したバックエンド・ディレクトリおよび接続ディレクトリに応じてパスワードを同期する複数のメカニズムがあります。

Oracle Directory Integration Platformでは、次のパスワード・メカニズムがサポートされます。

  • Oracle Internet Directoryパスワード・ポリシーの有効化: Oracle Internet DirectoryからOracle Internet Directory以外の接続ディレクトリにパスワードを同期化するには、パスワード・ポリシーを有効化し、状況によってはOracle Internet Directoryサーバーでパスワードの可逆暗号化を有効化する必要があります。詳細は、第20.3.5項「Oracleバックエンド・ディレクトリから接続ディレクトリへのパスワードの同期の有効化」を参照してください。

  • 委任認証: バックエンド・ディレクトリで外部認証プラグイン(Microsoft Active Directory外部認証プラグインなど)を使用でき、これを使用すると、ユーザーはMicrosoft Windows資格証明を使用してOracle環境にログインできます。

    • Oracle Internet Directory外部認証プラグイン: Javaベースの外部認証プラグインを使用して、Oracle Internet DirectoryからOracle Internet Directory以外の接続ディレクトリにパスワードを同期化できます。詳細は、第20.3.6項「外部認証プラグインの構成」を参照してください。

    • パススルー認証: パススルー認証(PTA)は、バインド・リクエストがバインドDNによってフィルタされるメカニズムです。あるDirectory Server(委任者)がバインド・リクエストを受け取り、フィルタに基づいて別のDirectory Server(被委任者)にバインド・リクエストを認証するよう求めることができます。この機能の一部として、PTAプラグインによって委任者であるDirectory Serverがローカルのデータベースに保存されているとは限らないエントリに対する単純なパスワードベースのバインド操作を受け入れられるようになります。パススルー認証の一般的なシナリオは、Oracle Unified DirectoryまたはOracle Directory Server Enterprise Editionからのユーザーについての認証をActive Directoryに渡すなどです。詳細は、次を参照してください:

      • 『Oracle Fusion Middleware Oracle Unified Directory管理者ガイド』のパススルー認証の理解に関する項。

      • Oracle Fusion Middleware Oracle Directory Server Enterprise Edition管理者ガイドパススルー認証に関する項。

  • Oracle Password Filter: Oracle Password Filterを使用して、Microsoft Active Directoryからのみバックエンド・ディレクトリにパスワードを同期化します。詳細は、第22章「Oracle Password Filter for Microsoft Active Directoryのデプロイ」を参照してください。

  • パスワード・ハッシング技術を使用した同期: Oracle Directory Integration PlatformからOracle Unified DirectoryまたはOracle Directory Server Enterprise Editionにパスワードを同期化します。

    Oracle Unified DirectoryおよびOracle Directory Server Enterprise Editionでは、同じ一連のパスワード・ハッシング技術をサポートしています。Oracle Directory Integration PlatformとOracle Directory Server Enterprise Edition間でパスワードを同期化するには、次のようにします。

    Oracle Directory Server Enterprise Editionハッシング同期の詳細は、第23.3.6項「手順6: パスワードの同期化」を参照してください。

  • オンデマンド・パスワード: 接続ディレクトリからOracle Unified DirectoryまたはOracle Directory Server Enterprise Editionバックエンド・ディレクトリにパスワードを同期化します。インポート・プロファイルを構成して、接続ディレクトリからバックエンド・ディレクトリにパスワードを同期化できます。詳細は、次を参照してください:

  • パスワード変換: Oracle Unified DirectoryまたはOracle Directory Server Enterprise Editionバックエンド・ディレクトリから接続ディレクトリにパスワードを同期化します。エクスポート・プロファイルを構成して、バックエンド・ディレクトリから接続ディレクトリにパスワードを同期化できます。詳細は、次を参照してください:

表9-6に、Oracle Directory Integration Platformでサポートされるディレクトリ・サーバー用のパスワード同期メカニズム・オプションを示します。

表9-6 パスワード同期のメカニズム

ソース 宛先 サポートされるパスワード同期のメカニズム

Oracle Unified Directory


Oracle Unified Directory


  • Oracle Unified Directory (宛先ディレクトリ)パススルー認証

  • オンデマンド・パスワード

  • パスワード変換

  • パスワード・ハッシング技術を使用した同期


Oracle Internet Directory

  • Oracle Internet Directory外部認証プラグイン

  • パスワード変換

  • パスワード・ハッシング技術を使用した同期


Oracle Directory Server Enterprise Edition


  • Oracle Directory Server Enterprise Edition (宛先ディレクトリ)パススルー認証

  • オンデマンド・パスワード

  • パスワード変換

  • パスワード・ハッシング技術を使用した同期


Microsoft Active Directory

  • パスワード変換

Oracle Internet Directory

Oracle Unified Directory


  • Oracle Internet Directoryパスワード・ポリシーの有効化。

  • Oracle Unified Directory (宛先ディレクトリ)パススルー認証

  • パスワード・ハッシング技術を使用した同期


Oracle Internet Directory

  • パスワード・ポリシーの有効化。

  • Oracle Internet Directory外部認証プラグイン

  • パスワード・ハッシング技術を使用した同期


Oracle Directory Server Enterprise Edition


  • パスワード・ポリシーの有効化。

  • Oracle Directory Server Enterprise Edition (宛先ディレクトリ)パススルー認証

  • パスワード・ハッシング技術を使用した同期


Microsoft Active Directory

  • パスワード・ポリシーおよびパスワードの可逆暗号化の有効化。

Oracle Directory Server Enterprise Edition


Oracle Unified Directory


  • Oracle Unified Directory (宛先ディレクトリ)パススルー認証

  • オンデマンド・パスワード

  • パスワード変換

  • パスワード・ハッシング技術を使用した同期


Oracle Internet Directory

  • Oracle Internet Directory外部認証プラグイン

  • パスワード変換

  • パスワード・ハッシング技術を使用した同期


Oracle Directory Server Enterprise Edition


  • Oracle Directory Server Enterprise Edition (宛先ディレクトリ)パススルー認証

  • オンデマンド・パスワード

  • パスワード変換

  • パスワード・ハッシング技術を使用した同期


Microsoft Active Directory

パスワード変換

Microsoft Active Directory

Oracle Unified Directory


  • オンデマンド・パスワード

  • Oracle Password Filter


Oracle Internet Directory


  • Oracle Internet Directory外部認証プラグイン

  • Oracle Password Filter


Oracle Directory Server Enterprise Edition


  • オンデマンド・パスワード

  • Oracle Password Filter


9.8.2 Oracle Unified Directory用のパスワード同期の構成

接続ディレクトリと、バックエンド・ディレクトリとして使用されているOracle Unified Directoryの間でパスワードを同期化できます。


注意:

第5.2.5項「タスク5: Oracle WebLogic Serverドメインの構成」の説明に従って、dipConfigurator setupコマンドを使用してOracle Directory Integration Platform用にOracle Unified Directoryが構成されていることを確認してください。

9.8.2.1 オンデマンド・パスワードを使用した接続ディレクトリからOracle Unified Directoryへのパスワードの同期化

インポート・プロファイルを構成して、接続ディレクトリからOracle Unified Directoryにパスワードを同期化できます。これを行うには、次の手順を完了します。

  1. コマンド行でdipConfigurator setupPluginコマンドを実行してOracle Directory Integration Platformプラグインを構成し、次の引数を入力します。

    表9-7 setupPluginプロパティ

    引数 定義

    wlshost

    Oracle Directory Integration PlatformがデプロイされているOracle WebLogic Serverのホスト名。デフォルト値はlocalhostです。

    wlsport

    Oracle Directory Integration PlatformがデプロイされているOracle WebLogic管理対象サーバーのリスニング・ポート番号。デフォルト値は、7001です。

    wlsuser

    Oracle WebLogic ServerのログインID。

    ldaphost

    Oracle Unified Directoryのホスト名。デフォルト値はlocalhostです。

    ldapport

    Oracle Unified Directoryサーバーのポート番号。デフォルト値は、636です。

    isldapssl

    SSLの有効化または無効化。デフォルト値はtrue

    ldapuser

    ディレクトリに接続するためのバインドDN。デフォルト値はcn=Diretory Managerです。

    ldapadminport

    接続するOracle Unified Directoryの管理ポート番号。デフォルトのポート番号は4444です。



    注意:

    <ORACLE_HOME>/ldap/log/にあるdipConfig.logファイルを参照できます。

    :

    $ORACLE_HOME/bin/dipConfigurator setupPlugin -wlshost localhost -wlsport 7001 -wlsuser weblogic -ldaphost oudhost -ldapport 389 -ldapuser "cn=Directory Manager" -isldapssl false -ldapadminport 4444
    
  2. Oracle Enterprise Manager Fusion Middleware Controlを使用して属性マッピング・ルールを作成します。

    1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

    2. 左のナビゲーション・パネルで、「Identity and Access」をクリックするか展開し、同期プロファイルを編集するDIPコンポーネントを選択します。

    3. 「DIPサーバー」メニューをクリックして「管理」を選択し、Oracle Unified Directory用に作成した同期プロファイルを選択します。

    4. 「編集」をクリックします。編集するプロファイルの「同期プロファイルの編集」画面が表示されます。

    5. 「マッピング」タブを選択します。

    6. 「属性マッピング・ルール」セクションで「作成」アイコンを選択します。

      「属性マッピング・ルールの追加」画面が表示されます。

    7. パラメータは次の要領で指定してください。

      • ソースのオブジェクト・クラス: 必須オプションを選択します。たとえば、接続ディレクトリとしてMicrosoft Active Directoryを使用する場合、「ユーザー」を選択します。

      • 属性: pwdLastSetを選択します。

      • DIP-OUDオブジェクト・クラス: 「操作属性」を選択します。

      • DIP-OUD属性: orclodippwdlastsetを選択します。

      • 対応付けの式: 接続ディレクトリに応じてオプションを選択します。次に例を示します。

        Microsoft Active Directory: onDemandPassword(pwdLastSet)

        Oracle Unified Directory: onDemandPassword(pwdChangedTime)

        Oracle Directory Server Enterprise Edition: onDemandPassword(pwdChangedTime)


        注意:

        Oracle Directory Server Enterprise Editionでパスワードの有効期限が構成されている場合、onDemandPassword属性を使用できます。詳細は、Oracle Fusion Middleware Oracle Directory Server Enterprise Edition管理者ガイドパスワードの有効期限のポリシーに関する項を参照してください。

      「OK」をクリックします。

      「すべてのマッピング・ルールの検証」ボタンをクリックしてマッピング・ルールをテストできます。


    注意:

    次の属性マッピング・ルールを追加してマッピング・ルールを編集することもできます。
    pwdLastSet : : : user : orclODIPPwdLastSet : : top : onDemandPassword(pwdLastSet)
    

    詳細は、第9.4.9.1項「エントリのマッピング・ルール・ファイルへの追加」を参照してください。


9.8.2.2 パスワード変換を使用したOracle Unified Directoryから接続ディレクトリへのパスワードの同期化

エクスポート・プロファイルを構成して、Oracle Unified Directory (バックエンド・ディレクトリ)から接続ディレクトリにパスワードを同期化できます。これを行うには、次の手順を完了します。

  1. Oracle Directory Integration Platformプラグインが構成されていない場合、コマンド行でdipConfigurator setupPluginコマンドを実行する必要があります。

    $ORACLE_HOME/bin/dipConfigurator setupPlugin -wlshost localhost -wlsport 7001 -wlsuser weblogic -ldaphost oudhost -ldapport 389 -ldapuser "cn=Directory Manager" -isldapssl false -ldapadminport 4444
    

    引数の詳細は、表9-7「setupPluginプロパティ」を参照してください。


    注意:

    第9.8.2.1項「オンデマンド・パスワードを使用した接続ディレクトリからOracle Unified Directoryへのパスワードの同期化」のコマンドをすでに実行している場合、dipConfigurator setupPluginコマンドは実行しないでください。

  2. コマンド行でdipConfigurator setupPasswordTranslationコマンドを実行します。

    $ORACLE_HOME/bin/dipConfigurator setupPasswordTranslation -wlshost localhost -wlsport 7001 -wlsuser weblogic -ldaphost oudhost -ldapport 389 -ldapuser "cn=Directory Manager" -isldapssl false -ldapadminport 4444
    

    引数の詳細は、表9-7「setupPluginプロパティ」を参照してください。


    注意:

    <ORACLE_HOME>/ldap/log/にあるdipConfig.logファイルを参照できます。

  3. Oracle Enterprise Manager Fusion Middleware Controlを使用して属性マッピング・ルールを作成します。

    1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

    2. 左のナビゲーション・パネルで、「Identity and Access」をクリックするか展開し、同期プロファイルを編集するDIPコンポーネントを選択します。

    3. 「DIPサーバー」メニューをクリックして「管理」を選択し、Oracle Unified Directory用に作成した同期プロファイルを選択します。

    4. 「編集」をクリックします。編集するプロファイルの「同期プロファイルの編集」画面が表示されます。

    5. 「マッピング」タブを選択します。

    6. 「属性マッピング・ルール」セクションで「作成」アイコンを選択します。

      「属性マッピング・ルールの追加」画面が表示されます。

    7. パラメータは次の要領で指定してください。

      • ソースのオブジェクト・クラス: 必須オプションを選択します。たとえば、接続ディレクトリとしてMicrosoft Active Directoryを使用する場合、「ユーザー」を選択します。

      • 属性: unicodepwdを選択します。

      • DIP-OUDオブジェクト・クラス: 「操作属性」を選択します。

      • DIP-OUD属性: orclodiptranslatepasswordを選択します。

      • 対応付けの式: orclODIPTranslatePasswordを入力します。

      「OK」をクリックします。

      「すべてのマッピング・ルールの検証」ボタンをクリックしてマッピング・ルールをテストできます。


    注意:

    次の属性マッピング・ルールを追加してマッピング・ルールを編集することもできます。
    orclodiptranslatepassword: : : : unicodepwd : : user : passswordtranslate(orclodiptranslatepassword)
    

    詳細は、第9.4.9.1項「エントリのマッピング・ルール・ファイルへの追加」を参照してください。


9.8.3 Oracle Directory Server Enterprise Edition用のパスワード同期の構成

これはオプションの手順で、接続ディレクトリから、バックエンド・ディレクトリとして使用されているOracle Directory Server Enterprise Editionにパスワードをインポートまたはエクスポートできます。

9.8.3.1 オンデマンド・パスワードを使用した接続ディレクトリからOracle Directory Server Enterprise Editionへのパスワードの同期化

インポート・プロファイルを構成して、接続ディレクトリからOracle Directory Server Enterprise Editionにパスワードを同期化できます。これを行うには、次の手順を完了します。

  1. コマンド行でdipConfigurator setupPlugin (<ORACLE_HOME>/bin)コマンドを実行してOracle Directory Integration Platformプラグインを構成し、次の引数を入力します。

    表9-8 setupPluginプロパティ

    引数 定義

    wlshost

    Oracle Directory Integration PlatformがデプロイされているOracle WebLogic Serverのホスト名。デフォルト値はlocalhostです。

    wlsport

    Oracle Directory Integration PlatformがデプロイされているOracle WebLogic管理対象サーバーのリスニング・ポート番号。デフォルト値は、7001です。

    wlsuser

    Oracle WebLogic ServerのログインID。

    ldaphost

    Oracle Directory Server Enterprise Editionのホスト名。デフォルト値はlocalhostです。

    ldapport

    Oracle Directory Server Enterprise Editionサーバーのポート番号。デフォルト値は、636です。

    isldapssl

    SSLの有効化または無効化。デフォルト値はtrue

    ldapuser

    ディレクトリに接続するためのバインドDN。デフォルト値はcn=Diretory Managerです。

    ldapadminport

    接続するOracle Unified Directoryの管理ポート番号。デフォルトのポート番号は4444です。


    :

    $ORACLE_HOME/bin/dipConfigurator setupPlugin -wlshost localhost -wlsport 7001 -wlsuser weblogic -ldaphost odseehost -ldapport 636 -ldapuser "cn=Directory Manager" -isldapssl true
    

    注意:

    <ORACLE_HOME>/ldap/log/にあるdipConfig.logファイルを参照できます。

  2. ディレクトリ・サーバー・インスタンスを再起動します。

    dsadm restart
    
  3. Oracle Enterprise Manager Fusion Middleware Controlを使用して属性マッピング・ルールを作成します。

    1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

    2. 左のナビゲーション・パネルで、「Identity and Access」をクリックするか展開し、同期プロファイルを編集するDIPコンポーネントを選択します。

    3. 「DIPサーバー」メニューをクリックして「管理」を選択し、Oracle Directory Server Enterprise Edition用に作成した同期プロファイルを選択します。

    4. 「編集」をクリックします。編集するプロファイルの「同期プロファイルの編集」画面が表示されます。

    5. 「マッピング」タブを選択します。

    6. 「属性マッピング・ルール」セクションで「作成」アイコンを選択します。

      「属性マッピング・ルールの追加」画面が表示されます。

    7. パラメータは次の要領で指定してください。

      • ソースのオブジェクト・クラス: 必須オプションを選択します。たとえば、接続ディレクトリとしてMicrosoft Active Directoryを使用する場合、「ユーザー」を選択します。

      • 属性: pwdLastSetを選択します。

      • DIP-ODSEEオブジェクト・クラス: 「操作属性」を選択します。

      • DIP-ODSEE属性: orclodippwdlastsetを選択します。

      • 対応付けの式: マッピング式としてonDemandPassword(pwdChangedTime)を入力します。

      「OK」をクリックします。

      「すべてのマッピング・ルールの検証」ボタンをクリックしてマッピング・ルールをテストできます。


    注意:

    次の属性マッピング・ルールを追加してマッピング・ルールを編集することもできます。
    pwdLastSet : : : user : orclODIPPwdLastSet : : top : onDemandPassword(pwdLastSet)
    

    詳細は、第9.4.9.1項「エントリのマッピング・ルール・ファイルへの追加」を参照してください。


9.8.3.2 パスワード変換を使用したOracle Directory Server Enterprise Editionから接続ディレクトリへのパスワードの同期化

エクスポート・プロファイルを構成して、Oracle Directory Server Enterprise Edition (バックエンド・ディレクトリ)から接続ディレクトリにパスワードを同期化できます。これを行うには、次の手順を完了します。

  1. コマンド行でdipConfigurator setupPlugin (<ORACLE_HOME>/bin)コマンドを実行してOracle Directory Integration Platformプラグインを構成します。

    $ORACLE_HOME/bin/dipConfigurator setupPlugin -wlshost localhost -wlsport 7001 -wlsuser weblogic -ldaphost odseehost -ldapport 636 -ldapuser "cn=Directory Manager"
    

    引数の詳細は、表9-8「setupPluginプロパティ」を参照してください。

  2. ディレクトリ・サーバー・インスタンスを再起動します。

    dsadm restart
    
  3. コマンド行でdipConfigurator setupPasswordTranslation (<ORACLE_HOME>/bin)コマンドを実行します。

    $ORACLE_HOME/bin/dipConfigurator setupPasswordTranslation -wlshost localhost -wlsport 7001 -wlsuser weblogic -ldaphost odseelocalhost -ldapport 636 -ldapuser "cn=Directory Manager" -isldapssl true
    

    引数の詳細は、表9-8「setupPluginプロパティ」を参照してください。


    注意:

    <ORACLE_HOME>/ldap/log/にあるdipConfig.logファイルを参照できます。

  4. Oracle Enterprise Manager Fusion Middleware Controlを使用して属性マッピング・ルールを編集します。

    1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

    2. 左のナビゲーション・パネルで、「Identity and Access」をクリックするか展開し、同期プロファイルを編集するDIPコンポーネントを選択します。

    3. 「DIPサーバー」メニューをクリックして「管理」を選択し、Oracle Directory Server Enterprise Edition用に作成した同期プロファイルを選択します。

    4. 「編集」をクリックします。編集するプロファイルの「同期プロファイルの編集」画面が表示されます。

    5. 「マッピング」タブを選択します。

    6. 「属性マッピング・ルール」セクションで「作成」アイコンを選択します。

      「属性マッピング・ルールの追加」画面が表示されます。

    7. パラメータは次の要領で指定してください。

      • ソースのオブジェクト・クラス: 必須オプションを選択します。たとえば、接続ディレクトリとしてMicrosoft Active Directoryを使用する場合、「ユーザー」を選択します。

      • 属性: unicodepwdを選択します。

      • DIP-ODSEEオブジェクト・クラス: 「操作属性」を選択します。

      • DIP-ODSEE属性: orclodiptransalepasswordを選択します。

      • 対応付けの式: マッピング式としてorclODIPTranslatePasswordを入力します。

      「OK」をクリックします。

      「すべてのマッピング・ルールの検証」ボタンをクリックしてマッピング・ルールをテストできます。


    注意:

    次の属性マッピング・ルールを追加してマッピング・ルールを編集することもできます。
    orclodiptranslatepassword: : : top : unicodepwd : : user : passswordtranslate(orclodiptranslatepassword)
    

    詳細は、第9.4.9.1項「エントリのマッピング・ルール・ファイルへの追加」を参照してください。


9.8.4 Oracle Internet Directory用のパスワード同期の構成

Oracle Internet Directoryから接続ディレクトリにパスワードを同期化するには、Oracle Internet Directoryサーバーでパスワード・ポリシーを有効にする必要がある以外に、パスワードの可逆暗号化を有効にする必要がある場合があります。

たとえば、IBM Tivoli Directory ServerとOracle Directory Server Enterprise Editionは、Oracle Internet Directoryと同様のハッシング・アルゴリズムをサポートします。したがって、Oracle Internet DirectoryからIBM Tivoli Directory ServerまたはOracle Directory Server Enterprise Editionへパスワードを同期するには、Oracle Internet Directoryサーバーでパスワード・ポリシーのみ有効にする必要があります。

しかし、Oracle Internet DirectoryからMicrosoft Active DirectoryまたはNovell eDirectoryへパスワードを同期する場合、両方ともOracle Internet Directoryと同様のハッシュ・アルゴリズムをサポートしないため、Oracle Internet Directoryサーバーでパスワード・ポリシー可逆パスワード暗号化を有効にする必要があります。


注意:

Oracle Internet Directoryでは、各レルムで複数のパスワード・ポリシーがサポートされます(一般的に、ファイングレイン・パスワード・ポリシーと呼ばれます)。

ファイングレイン・パスワード・ポリシーの詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』を参照してください。


パスワード・ポリシーを有効にするには、適切なコンテナのorclPwdPolicyEnable属性に値1を割り当てます。Oracle Internet Directoryサーバーでパスワードの可逆暗号化を有効にするには、適切なコンテナのorclpwdEncryptionEnable属性に値1を割り当てます。

たとえば、あるレルムで、デフォルト・ポリシーに基づくパスワード・ポリシーとパスワードの可逆暗号化を有効化するには、次のエントリで、orclPwdPolicyEnable属性およびorclpwdEncryptionEnable属性に値1を割り当てます。

cn=default,cn=PwdPolicyEntry,cn=common,cn=products,cn=oraclecontext,Realm_DN

そのためには、ldapmodifyを使用して次の内容のLDIFファイルをアップロードします。

dn: cn=default,cn=PwdPolicyEntry,cn=common,cn=products,cn=oraclecontext,Realm_DN
changetype: modify
replace: orclpwdpolicyenable
orclpwdpolicyenable: 1
-
replace: orclpwdencryptionenable
orclpwdencryptionenable: 1

関連項目:

Oracle Internet Directoryのパスワード・ポリシーの詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』を参照してください。