Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

5.6.2. DNA を使用した値の属性への割り当て

Directory Server が属性値の生成を処理する方法が複数あります。
最も単純なケースでは、属性のない unique-number 属性を必要とするオブジェクトクラスのディレクトリーにユーザーエントリーが追加されます。値を持たない管理属性を追加する (または必要とする) と、DNA プラグインによる値の割り当てが発生します。エントリーが追加されると、プラグインは、プラグインに設定されたスコープおよびフィルターに基づいて、エントリーが定義された範囲に一致するかどうかを確認します。エントリーが範囲と一致し、その範囲に対して DNA が管理している属性が、追加されるエントリーにない場合は、DNA プラグインは次の値を割り当てます。このオプションは、一意の値を 1 つの属性に割り当てるように DNA プラグインが設定されている場合に限り機能します。
たとえば、posixAccount オブジェクトクラスには uidNumber 属性が必要です。uidNumber 属性が DNA プラグインで管理されており、フィルターの範囲内で uidNumber 属性なしでユーザーエントリーが追加されると、サーバーは新しいエントリーをチェックし、管理対象の uidNumber 属性が必要なことを確認し、自動的に割り当てられた値で属性を追加します。
 ldapmodify -a -D "cn=Directory Manager" -W -p 389 -h server.example.com -x

 dn: uid=jsmith,ou=people,dc=example,dc=com
 objectClass: top
 objectClass: person
 objectClass: posixAccount    
 uid: jsmith
 cn: John Smith
 ....
プラグインは不足している属性を処理し、次に利用可能な番号をサーバーに要求し、エントリーの値を提供します
同様の管理可能なオプションは、マジック番号 を使用することです。このマジック番号は、管理対象属性のテンプレート値であり、数字または単語などのサーバーの範囲外のもので、プラグインが新しい割り当て値に置き換える必要があると認識しているものです。その番号でエントリーが追加され、エントリーが設定された DNA プラグインの範囲およびフィルター内にある場合は、マジック番号を使用することで、プラグインが自動的にトリガーされ、新しい値を生成します。
DNA プラグインが uidNumbergidNumber の両方にとって同じ一意の番号を posixAccount エントリーに割り当てるように設定されていると、DNA プラグインは同じ番号を両方の属性に割り当てます。これを行うには、マジック番号を指定して、変更操作に両方の管理属性を渡します。以下に例を示します。
 ldapmodify -a -D "cn=Directory Manager" -W -p 389 -h server.example.com -x

 dn: uid=jsmith,ou=people,dc=example,dc=com
 objectClass: top
 objectClass: person
 objectClass: posixAccount
 uid: jsmith
 cn: John Smith
 uidNumber: magic    
 gidNumber: magic    
 ....
マジック番号は、LDIF からエントリーをインポートする場合や、複数の異なる属性に対して一意の番号を生成するためにDNA プラグインをトリガーする際に、非常に便利です。
DNA プラグインは、新規の一意の値のみを生成します。DNA プラグインが制御する属性に特定の値を使用するためにエントリーを追加または変更した場合には、指定した番号が使用されます。DNA プラグインは、その番号を上書きしません。
注記
属性の一意性 は、DNA プラグインで維持されるとは限りません。プラグインは、重複しない範囲のみを割り当てますが、管理属性に手動で数字を割り当てることができ、手動で割り当てられた番号が一意であることを検証したり要求したりすることはありません。