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

前
 
次
 

18 別名エントリの管理

この章では、別名エントリを追加、検索および変更する方法の例について説明し、メッセージのリストを示します。この項の内容は、次のとおりです。

属性別名の詳細は、第21.1.5項「属性別名の理解」を参照してください。

18.1 別名エントリの管理の概要

エントリの中には、長く複雑な識別名を持つものがあります。Oracle Internet Directoryでは別名オブジェクトを使用して長い名前の管理を容易にします。別名を使用してオブジェクトを検索(参照)すると、別名が間接参照され、その別名が指し示すオブジェクトが返されます。たとえば、別名Server1は、完全修飾された識別名dc=server1,dc=us,dc=myCompany,dc=comを指し示すように間接参照できます。この機能によって、厳密には階層構造でない構造も開発できます。

別名エントリは、オブジェクト・クラスaliasを使用して、ディレクトリ内のオブジェクト・エントリと区別します。このオブジェクト・クラスの定義は次のとおりです。

(2.5.6.1 NAME 'alias' SUP top STRUCTURAL MUST aliasedObjectName)

別名エントリにはaliasedObjectName属性も含まれており、この属性には、別名が指し示すオブジェクトの識別名が含まれています。この属性の定義は次のとおりです。

(2.4.5.1 NAME 'aliasedObjectName" EQUALITY distinguishedNmameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE)

図18-1およびその後に続く説明では、別名エントリの間接参照の例を示します。

図18-1 別名エントリの例

この図については本文で説明しています。

図18-1で、ou=uk sales,ou=global sales,o=myCompany,c=usは、ou=sales,o=myCompany,c=ukエントリを指し示す別名エントリです。

ou=uk sales,ou=global sales,o=oracle,c=usを参照すると、その参照は、ディレクトリ・サーバーによって実際のエントリou=sales,o=oracle,c=ukに自動的に変更されます。

18.2 別名エントリの追加

別名エントリを追加するには、LDIFの通常のエントリ、および実際のエントリを指し示す別名エントリを作成します。この例の手順を実行すると、図18-2に示すツリーが生成されます。

  1. 次のエントリを持つサンプルLDIFファイルMy_file.ldifを作成します。

    dn: c=us
    c: us
    objectclass: country
    
    dn: o=MyCompany, c=us
    o: MyCompany
    objectclass:organization
    
    dn: ou=Area1, c=us
    objectclass: alias
    objectclass: extensibleobject
    ou: Area1
    aliasedObjectName: o=MyCompany, c=us
    
    dn: cn=John Doe, o=MyCompany, c=us
    cn: John Doe
    sn: Doe
    objectclass: person
    
    dn: cn=President, o=MyCompany, c=us
    objectclass: alias
    objectclass: extensibleobject
    cn: President
    aliasedobjectname: cn=John Doe, o=MyCompany, c=us
    
  2. 次のコマンドを使用して、これらのエントリをディレクトリに追加します。

    ldapadd -p port -h host -D cn=orcladmin -q -f My_file.ldif
    

    注意:

    親が別名エントリである別名エントリを追加しようとすると、ディレクトリ・サーバーはエラーを返します。



    関連項目:

    エラー・メッセージは、第18.5項「エントリ別名間接参照メッセージ」を参照してください。


図18-2 My_file.ldifの作成結果を示すツリー

図18-2の説明が続きます
「図18-2 My_file.ldifの作成結果を示すツリー」の説明

図18-2の文字Aは、別名エントリを表します。

18.3 別名エントリによるディレクトリの検索

指定する検索ごとに設定できるフラグがあります。表18-1に示すように、検索は指定したフラグに基づいて実行されます。

表18-1 別名エントリによるディレクトリの検索のフラグ

フラグ LDAPサーバーの検索の動作

-a never

別名を間接参照しません。

-a find

検索でベース・オブジェクトを間接参照しますが、そのベースの下にある別名エントリは間接参照しません。

-a search

検索でベース・オブジェクトの下位にある別名は間接参照しますが、検索のベース・オブジェクトのロケーティングでは別名を間接参照しません。

-a always

検索で別名を間接参照し、検索のベース・オブジェクトのロケーティングでも別名を間接参照します。


デフォルトでは、ldapsearchの間接参照フラグは-a neverで、ディレクトリ・サーバーは別名エントリに対する間接参照を行いません。

18.3.1 別名エントリによるベースの検索

ベース検索は、指定した別名エントリの最上位レベルを検索します。

間接参照フラグ-a findを使用したベース検索

次の例は、間接参照フラグを-a findに設定し、フィルタとして"objectclass=*"を使用してou=Area1,c=usのベース検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a find -s base "objectclass=*" 

ディレクトリ・サーバーは、ベース検索時に、検索リクエストに指定されたベースを検索し、その位置をユーザーに戻します。ただし、この例のようにベースが別名エントリで、検索リクエストに-a findが指定されている場合、ディレクトリ・サーバーは、別名エントリを自動的に間接参照し、その別名エントリが指し示すエントリを返します。この例では、検索でou=Area1,c=us(別名エントリ)が間接参照され、o=MyCompany,c=usが返されます。

間接参照フラグ-a searchを使用したベース検索

次の例は、間接参照フラグを-a searchに設定し、フィルタとして"objectclass=*"を使用してou=Area1,c=usのベース検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a search -s base "objectclass=*" 

ディレクトリ・サーバーは、ベース検索時に、間接参照せずに検索リクエストに指定されたベースを検索し、その位置をユーザーに戻します。これにより、ou=Area1,c=usが返されます。

間接参照フラグ-a alwaysを使用したベース検索

次の例は、間接参照フラグを-a alwaysに設定し、フィルタとして"objectclass=*"を使用してou=Area1,c=usのベース検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a always -s base "objectclass=*" 

ディレクトリ・サーバーは、ベース検索時に、検索リクエストで指定されたベースを検索します。ベースが別名エントリである場合、ディレクトリ・サーバーは別名エントリを自動的に間接参照し、その別名エントリが指し示すエントリを返します。この例では、検索でou=Area1,c=us(別名エントリ)が間接参照され、o=MyCompany,c=usが返されます。

18.3.2 別名エントリによる1レベルの検索

1レベル検索では、指定したベース・レベルの子のみを検索します。

間接参照フラグ-a findを使用した1レベル検索

次の例は、間接参照フラグを-a findに設定し、フィルタに"objectclass=*"を使用した"ou=Area1,c=us"の1レベル検索を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a find -s one "objectclass=*"

ディレクトリ・サーバーは、フィルタ基準と一致するベースの下にある1レベル・エントリを返します。この例では、検索リクエストに-a findが指定されているため、ディレクトリ・サーバーは、ベースの検索(最初の手順)中に自動的に間接参照しますが、ベース下の1レベルの別名エントリは間接参照しません。したがって、この検索ではou=Area1,c=us(別名エントリ)が間接参照され、o=MyCompany,c=us下の1レベル・エントリが検索されます。1レベル・エントリの1つは、間接参照されずにそのまま返されるcn=President,o=MyCompany,c=usです。

したがって、この検索では、cn=President,o=MyCompany,c=usおよびcn=John Doe,o=MyCompany,c=usが返されます。

間接参照フラグ-a searchを使用した1レベル検索

次の例は、間接参照フラグを-a searchに設定し、フィルタとして"objectclass=*"を使用して"ou=Area1,c=us"の1レベル検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a search -s one "objectclass=*"

ディレクトリ・サーバーは、検索リクエストで指定されたベースを検索します。ベース・エントリが別名エントリの場合は、何も返されません。(別名エントリは子を持つことができません。)それ以外の場合は、ベース・エントリの直下の子が間接参照後に返されます。この例では、ベース・エントリが別名エントリの"ou=Area1,c=us"であるため、検索では何も返されません

間接参照フラグ-a alwaysを使用した1レベル検索

次の例は、間接参照フラグを-a alwaysに設定し、フィルタとして"objectclass=*"を使用して"ou=Area1,c=us"の1レベル検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a always -s one "objectclass=*"

この例では、検索リクエストに-a alwaysが指定されているため、ディレクトリ・サーバーは、ベースの検索(最初の手順)中に自動的に間接参照し、ベースの1レベル下の別名エントリを間接参照します。したがって、この検索ではou=Area1,c=us(別名エントリ)が間接参照され、o=MyCompany,c=us下の1レベル・エントリが検索されます。1レベル・エントリの1つは、cn=President,o=MyCompany,c=usです。これは間接参照され、cn=John Doe,o=MyCompany,c=usとして返されます。他の1レベル・エントリにはcn=John Doe,o=MyCompany,c=usがあり、これはすでに返されています。

したがって、この検索ではcn=John Doe,o=MyCompany,c=usが返されます。

18.3.3 別名エントリによるサブツリーの検索

サブツリー検索は、ベース、子および孫を検索します。

間接参照フラグ-a findを使用したサブツリー検索

次の例は、間接参照フラグを-a findに設定し、フィルタとして"objectclass=*"を使用して"ou=Area1,c=us"のサブツリーの検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a find -s sub "objectclass=*" 

ディレクトリ・サーバーは、フィルタ基準と一致するベースの下にあるすべてのエントリを返します。この例では、検索リクエストに-a findが指定されているため、ディレクトリ・サーバーは、ベースの検索(最初の手順)中に自動的に間接参照しますが、ベース下の別名エントリは間接参照しません。したがって、検索では、ou=Area1,c=us(別名エントリ)が間接参照され、o=MyCompany,c=us下のエントリが検索されます。エントリの1つは、間接参照されずにそのまま返されるcn=President,o=MyCompany,c=usです。

したがって、この検索では次の情報が返されます。

  • o=MyCompany,c=us

  • cn=John doe,o=MyCompany,c=us

  • cn=President,o=MyCompany,c=us

間接参照フラグ-a searchを使用したサブツリー検索

次の例は、間接参照フラグを-a searchに設定し、フィルタとして"objectclass=*"を使用して"ou=Area1,c=us"のサブツリーの検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a search -s sub "objectclass=*" 

ディレクトリは、検索リクエストで指定されたベースを検索します。ベースが別名エントリの場合、間接参照せずにそのベース・エントリが返されます。(別名エントリは子を持つことができません。)それ以外の場合は、そのベースの下にあるすべてのエントリが返されます。別名エントリが見つかる場合は間接参照され、その下にあるすべてのエントリも返されます。

この例では、ベース・エントリが別名エントリのou=Area1,c=usであるため、ou=Area1,c=usが返されます。

間接参照フラグ-a alwaysを使用したサブツリー検索

次の例は、間接参照フラグを-a alwaysに設定し、フィルタとして"objectclass=*"を使用して"ou=Area1,c=us"のサブツリーの検索を行う場合を示しています。

ldapsearch -p port -h host -b "ou=Area1,c=us" -a always -s sub "objectclass=*" 

ディレクトリ・サーバーは、ベース・エントリを間接参照して返します。また、間接参照されたベースの下にあるすべてのエントリも返されます。別名エントリが見つかる場合は間接参照され、その下にあるすべてのエントリも返されます。

この例では、ベース・エントリはou=Area1,c=usであり、o=MyCompany,c=usに間接参照されて返されます。o=MyCompany,c=usの下には2つのエントリがあります。1つはcn=President,o=MyCompany,c=usで、このエントリは返され、さらにcn=John Doe,o=MyCompany,c=usに間接参照されて返されます。o=MyCompany,c=usの下のもう1つのエントリはすでに返されています。したがって、結果はo=MyCompany,c=usおよびcn=John Doe,o=MyCompany,c=usとなります。

18.4 別名エントリの変更

この例は、別名エントリを変更する方法を示しています。ここでは、次のエントリを持つサンプルLDIFファイル
My_file.ldifを作成します。

dn: cn=President, o=MyCompany, c=us
changetype : modify
replace: aliasedobjectname
aliasedobjectname: cn=XYZ, o=MyCompany, c=us

次のコマンドを使用して、別名エントリを変更します。

ldapmodify -D "cn=orcladmin" -q -p port -h host -f My_file.ldif

18.5 別名間接参照に関するメッセージの解釈

表18-2は、別名エントリの間接参照に関するメッセージと、各メッセージの意味を示しています。

表18-2 エントリ別名間接参照メッセージ

メッセージ 意味

別名に問題があります。

次のいずれかの問題が発生しました。

  • 別名を間接参照しましたが、その別名がDIT内のエントリを指し示していません。

  • 親が別名である別名エントリを追加しようとしました。

別名の参照解除に問題があります。

アクセス制御上の問題であるため、別名を間接参照できません。

該当するオブジェクトがありません。

検索リクエストに指定されたベース識別名をサーバーで検索できません。

DN構文に誤りがあります。

aliasedObjectNameに指定された値に無効な識別名の構文が含まれている場合に別名エントリを追加または変更すると、ディレクトリ・サーバーがクライアントにこのエラー・メッセージを返します。

成功

クライアント操作が正常に完了しました。

間接参照ターゲットが見つかり、検索リクエストに指定したフィルタと一致しない場合、サーバーは一致エントリなしで成功メッセージを返します。

不十分なアクセス権限

ユーザーが間接参照されたエントリへのアクセス権限を持っていません。