携帯電話プロバイダを例にとります。 プロバイダのディレクトリ構造で電話の SIM カード番号を検索するには、まず顧客の携帯電話番号を検索し、次にそれを使用して SIM カード番号を検索します。 以下の表に、ビューを使用して完全なタスクを実行する方法を示します。
|
ビュー コマンドの定義 |
注釈 |
|---|---|
set view "SIM View" = {
description = "Display Sim Number given a name"
|
この行はビューを定義し、それに名前を与えます。 名前と説明は get view コマンドで表示されます。 |
entry = <o ACME><ou Views><cn "SIM"> |
この行は、このビューのベース オブジェクト DN を定義します。 ユーザは仮想エントリを指定して、ビューを呼び出します。さらに、ldapsearch コマンドでこのビューを呼び出すために、コマンド ラインに以下のオプションを含める必要があります。 -b "cn=SIM,ou=Views,o=ACME" この組織(ACME)では、単にビュー DN のすべてが一意であることを確実にするために、管理者に Views と呼ばれる組織単位を含めています。 |
(phase = 1 subtree = "ou=Customers,o=ACME" filter = "(cn=$cn)" ), |
これはビューの第 1 段階であり、1 とラベルされる必要があります。 ビューが呼び出されると、段階では以下の DN から開始するサブツリーを検索します。 "ou=Customers,o=ACME" 段階で $cn を使用することは、ユーザがビューを呼び出すとき cn の値を指定する必要があることを意味します。 たとえば、以下のように検索にフィルタを含めることができます。 (cn="John Smith") DSA はこの値を使用して、$cn を置換します。 そのため、段階 1 は、以下のフィルタを持った検索を実行します。 (cn="John Smith") 段階には他のオプションが含まれないので、段階はフィルタに一致するサブツリー内のエントリ情報をすべて返します。 |
(phase = 2 subtree = "ou=cellphones,ou=Accounts,o=ACME" filter = "(account=$1:cellphone)" eis = simCardNumber options = result-required ) }; |
これはビューの第 2 段階であり、2 とラベルされる必要があります。 この段階では以下のサブツリーを検索します。 "ou=cellphones,ou=Accounts,o=ACME" DSA は $1:cellphone を、段階 1 によって返される cellphone 属性の値で置換します。たとえば 01001001001 などの値です。 eis オプションは、段階が返すただ 1 つの属性値が simCardnumber であることを意味します。 顧客が 2 台の電話を持つ場合、以下の例のように、返された電話番号の OR (論理和)がフィルタです。 (|(account=01001001001)(account=01001001002) 2 つの simCardNumber 値がこの場合返されます。 この段階で result-required が指定されるので、DSA は各サブツリーにおける属性間のリンクが有効なことを確認します。 リンクが有効でない場合、アラームが生じます。 |
前の表で定義されたビューがある場合、顧客の SIM カード番号を見つけるために以下の検索を実行できます。
ldapsearch -h hostname:3000 -s subtree -b "cn=SIM,ou=Views,o=ACME" "(cn=John Smith)" simCardNumber
| Copyright © 2012 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |