18 別名エントリの管理
この章の内容は次のとおりです。
属性別名の詳細は、 「属性別名の理解」を参照してください。
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)
ノート:
aliasedObjectName
属性は、ディレクトリ情報ツリー(DIT)・ビューの識別名を参照できません。
図18-1およびその後に続く説明では、別名エントリの間接参照の例を示します。
図18-1 別名エントリの例
![この図については本文で説明しています。 この図については本文で説明しています。](img/oidag065.gif)
図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 別名エントリの追加
18.3 別名エントリによるディレクトリの検索
フラグを使用して、ベース、ベースの1レベル下およびサブツリーを検索できます。
次の各項では、これについてさらに詳しく説明しています。
18.3.1 別名エントリによるディレクトリの検索のフラグ
指定する検索ごとに設定できるフラグがあります。検索は、指定したフラグに基づいて実行されます。
別名フラグに基づいたディレクトリ検索の動作は、表18-1を参照してください。
表18-1 別名エントリによるディレクトリの検索のフラグ
フラグ | LDAPサーバーの検索の動作 |
---|---|
|
別名を間接参照しません。 |
|
検索でベース・オブジェクトを間接参照しますが、そのベースの下にある別名エントリは間接参照しません。 |
|
検索でベース・オブジェクトの下位にある別名は間接参照しますが、検索のベース・オブジェクトのロケーティングでは別名を間接参照しません。 |
|
検索で別名を間接参照し、検索のベース・オブジェクトのロケーティングでも別名を間接参照します。 |
デフォルトでは、ldapsearch
の間接参照フラグは-a never
で、ディレクトリ・サーバーは別名エントリに対する間接参照を行いません。
18.3.2 別名エントリによるベースの検索
ベース検索は、指定した別名エントリの最上位レベルを検索します。
次の各項では、これについてさらに詳しく説明しています。
18.3.2.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
が返されます。
18.3.2.2 間接参照フラグ-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
が返されます。
18.3.2.3 間接参照フラグ-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.3 別名エントリによる1レベルの検索
1レベル検索では、指定したベース・レベルの子のみを検索します。
次の各項では、これについてさらに詳しく説明しています。
18.3.3.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
が返されます。
18.3.3.2 間接参照フラグ-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"
であるため、検索では何も返されません
18.3.3.3 間接参照フラグ-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.4 別名エントリによるサブツリーの検索
サブツリー検索は、ベース、子および孫を検索します。
次の各項では、これについてさらに詳しく説明しています。
18.3.4.1 間接参照フラグ-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
18.3.4.2 間接参照フラグ-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
が返されます。
18.3.4.3 間接参照フラグ-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 別名エントリの変更
ldapmodify
コマンドを使用して、別名エントリを変更できます。
この例は、別名エントリを変更する方法を示しています。ここでは、次のエントリを持つサンプル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 エントリ別名間接参照メッセージ
メッセージ | 意味 |
---|---|
別名に問題があります。 |
次のいずれかの問題が発生しました。
|
別名の参照解除に問題があります。 |
アクセス制御上の問題であるため、別名を間接参照できません。 |
該当するオブジェクトがありません。 |
検索リクエストに指定されたベース識別名をサーバーで検索できません。 |
DN構文に誤りがあります。 |
|
成功 |
クライアント操作が正常に完了しました。 間接参照ターゲットが見つかり、検索リクエストに指定したフィルタと一致しない場合、サーバーは一致エントリなしで成功メッセージを返します。 |
不十分なアクセス権限 |
ユーザーが間接参照されたエントリへのアクセス権限を持っていません。 |