Red Hat Training

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

19.4.2.2. コマンドラインを使用したサブツリー/ユーザーパスワードポリシーの設定

  1. ns-newpwpolicy.pl スクリプトを実行して、必要な属性をサブツリーまたはユーザーエントリーに追加します。
    スクリプトのコマンド構文は以下のとおりです。
    # ns-newpwpolicy.pl [-D rootDN]  -w password | -w - | -j filename [-p port] [-h host] -U userDN -S suffixDN
    サブツリーエントリーを更新するには、- S オプションを使用します。ユーザーエントリーを更新するには、- U オプションを使用します。ns-newpwpolicy.pl スクリプトは、一度に 1 つのユーザーまたはサブツリーエントリーのみを受け入れます。ただし、ユーザーと接尾辞エントリーの両方を同時に使用することも可能です。このスクリプトの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス を参照してください』。
  2. このスクリプトは、ターゲットエントリーがサブツリーまたはユーザーエントリーであるかに応じて、必要な属性を追加します。
    サブツリー (例: ou=people,dc=example,dc=com) では、以下のエントリーが追加されます。
    • サブツリーとそのすべての子について、さまざまなパスワードポリシー関連のエントリーを保持するためのサブツリーレベルのコンテナーエントリー (nsPwPolicyContainer)。以下に例を示します。
      dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      objectClass: top
      objectClass: nsContainer
      cn: nsPwPolicyContainer
    • サブツリーに固有のすべてのパスワードポリシー属性を保持するための実際のパスワードポリシー仕様エントリー (nsPwPolicyEntry) です。以下に例を示します。
      dn: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com",
           cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      objectclass: top
      objectclass: extensibleObject
      objectclass: ldapsubentry
      objectclass: passwordpolicy
    • 上記の (nsPwPolicyEntry) エントリーを指定する pwdpolicysubentry 値を持つ CoS テンプレートエントリー (nsPwTemplateEntry)。以下に例を示します。
      dn: cn="cn=nsPwTemplateEntry,ou=people,dc=example,dc=com",
           cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      objectclass: top
      objectclass: extensibleObject
      objectclass: costemplate
      objectclass: ldapsubentry
      cosPriority: 1
      pwdpolicysubentry: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com",
           cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
    • サブツリーレベルでの CoS 仕様エントリー。以下に例を示します。
      dn: cn=newpwdpolicy_cos,ou=people,dc=example,dc=com
      objectclass: top
      objectclass: LDAPsubentry
      objectclass: cosSuperDefinition
      objectclass: cosPointerDefinition
      cosTemplateDn: cn=cn=nsPwTemplateEntry\,ou=people\,dc=example,dc=com,
           cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      cosAttribute: pwdpolicysubentry default operational
    ユーザーの場合( uid=jdoe,ou=people,dc=example,dc=comなど)、以下のエントリーが追加されます。
    • ユーザーとそのすべての子について、さまざまなパスワードポリシー関連のエントリーを保持するための親レベルのコンテナーエントリー (nsPwPolicyContainer)。以下に例を示します。
      dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      objectClass: top
      objectClass: nsContainer
      cn: nsPwPolicyContainer
    • ユーザーに固有のパスワードポリシー属性を保持するための実際のパスワードポリシー仕様エントリー (nsPwPolicyEntry) です。以下に例を示します。
      dn: cn="cn=nsPwPolicyEntry,uid=jdoe,ou=people,dc=example,dc=com",
           cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      objectclass: top
      objectclass: extensibleObject
      objectclass: ldapsubentry
      objectclass: passwordpolicy
  3. 上記のエントリー DN の値をターゲットエントリーの pwdpolicysubentry 属性に割り当てます。たとえば、以下はパスワードポリシーをユーザーエントリーに割り当てます。
    dn: uid=jdoe,ou=people,dc=example,dc=com
    changetype: modify
    replace: pwdpolicysubentry
    pwdpolicysubentry: cn="cn=nsPwPolicyEntry,uid=jdoe,ou=people,dc=example,dc=com",
         cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
  4. 適切な値でサブツリーまたはユーザーエントリーのパスワードポリシー属性を設定します。
    表19.2「パスワードポリシー関連の属性」 には、パスワードポリシーの設定に使用できる属性が記載されています。ldapmodify ユーティリティーを使用すると、nsPwPolicyEntry オブジェクトクラスが含まれるサブツリーまたはユーザーエントリーのこれらの属性を変更できます。
    注記
    cn=config エントリーの nsslapd-pwpolicy-local 属性は、サーバーが強制するパスワードポリシーのタイプを制御します。デフォルトでは、この属性は無効(off)です。属性が無効になると、サーバーはグローバルパスワードポリシーのみを確認し、強制します。サブツリーおよびユーザーレベルのパスワードポリシーは無視されます。ns-newpwpolicy.pl スクリプトが実行されると、最初に指定されたサブツリーおよびユーザーエントリーをチェックし、それらが存在する場合は変更します。エントリーを正常に更新した後、スクリプトは nsslapd-pwpolicy-local 設定パラメーターを on に設定します。サブツリーおよびユーザーレベルのパスワードポリシーを有効にできない場合は、スクリプトの実行後に nsslapd-pwpolicy-localoff に設定するようにしてください。
ユーザーおよびサブツリーレベルのパスワードポリシーチェックをオフにするには、cn=config エントリーを変更して nsslapd-pwpolicy-local 属性を off に設定します。以下に例を示します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x

dn: cn=config
changetype: modify
replace: nsslapd-pwpolicy-local
nsslapd-pwpolicy-local: off
この属性は、設定ファイル(dse.ldif)で直接変更して無効にすることもできます。
  1. サーバーを停止します。
    # systemctl stop dirsrv.target instance
  2. テキストエディターで dse.ldif ファイルを開きます。
  3. nsslapd-pwpolicy-local の値を off に設定し、保存します。
    nsslapd-pwpolicy-local: off
  4. サービスを起動します。
    # systemctl start dirsrv.target instance