30 パスワード・ポリシーの管理

パスワード・ポリシーは、システムでのパスワードの使用を制御するルール・セットであり、ディレクトリに対して採用するあらゆるセキュリティ戦略に不可欠のコンポーネントです。Oracle Unified Directoryには、一般ユーザー用のデフォルトのパスワード・ポリシーとルート・ユーザー用のデフォルトのパスワード・ポリシーが含まれています。これらのデフォルトのパスワード・ポリシーは、ディレクトリ・サーバーの構成内にあり、変更可能です。

デフォルトのパスワード・ポリシーに加えて、Oracle Unified Directoryでは複数のパスワード・ポリシーをサポートしているため、特定のユーザー・セットに対象を特化したパスワード・ポリシーを作成および構成できます。カスタマイズしたパスワード・ポリシーをLDAPサブエントリとして定義し、ユーザー・データとともに格納できます。それにより、カスタマイズしたポリシーをサーバー間でレプリケートできるようになります。

Oracle Unified Directoryでは、パスワード・ポリシーを構成および管理するためにdsconfigユーティリティおよびOracle Unified Directory Services Manager (OUDSM)が使用されます。

トピック

30.1 パスワード・ポリシー・コンポーネントの理解

すべてのパスワード・ポリシーで構成可能な様々なコンポーネントについて、このトピックを確認してください。

すべてのパスワード・ポリシーには、次の構成可能なコンポーネントが含まれます:

  • パスワードの複雑性要件。パスワードの構成と必要な文字数を指定します。通常、パスワードで使用する最小文字数、使用可能な文字のタイプおよび必要な数字の数を指定します。たとえば、多くの機関が、最小文字数を7文字または8文字とし、数字と特殊文字が1文字ずつ含まれていることと、大文字と小文字の両方が含まれていることを要件としています。

  • パスワード履歴。以前のパスワードを再利用できるようになるまでに、ユーザーが使用する必要がある一意のパスワード数を決定します。

  • 最大パスワード経過時間。パスワードをどのくらいの期間使用したら、変更を許可または要求されるかを決定します。

  • 最小パスワード経過期間。新しいパスワードをどのくらいの期間維持したら、変更できるかを決定します。

  • 初回ログイン。システムへのユーザーの初回ログイン時に、ユーザーにパスワードの変更を要求するかどうかを決定します。

  • パスワード変更の認可。ユーザーがパスワードを変更するための条件を示します。たとえば、ユーザーがパスワードを変更するには、新しいパスワードの入力前に現在のパスワードを入力してアイデンティティが認証を受ける必要があるようにサーバーを構成できます。

  • アカウント・ロックアウト。アカウントを無効にしてユーザーがアクセスできないようにするときの条件を決定します。たとえば、ユーザーが3回試行しても適切に認証されない場合、4回目の試行でアカウントをロックするようにサーバーを構成できます。その後、そのユーザーのアカウントのロックは、管理者が手動で解除する必要があります。

  • パスワード記憶スキーム。パスワードの暗号化方法とサーバーでの記憶方法を決定します。サーバー上の特定のアカウントの記憶スキームを構成できます。たとえば、ルート・ユーザーのパスワードは、このアカウントおよびその特権が持つ重要性から、強力な暗号化を必要とします。そのため、ルート・ユーザーのパスワードの記憶には、SSHA-512記憶スキームを使用するように構成できます。

ノート:

Oracle Unified Directoryには、ユーザー・エントリおよび適用されるパスワード・ポリシーの両方に含まれる情報に基づいて、ユーザーのパスワードが期限切れになる正確な時間を動的に計算できるPassword Expiration Time仮想属性が用意されています。

仮想属性の詳細は、「仮想属性の構成」を参照してください。

パスワードの検証は、パスワード・ポリシーで直接的には処理されず、DNがパスワード・ポリシー内に存在する特定のパスワード・バリデータ・エントリによって処理されます。詳細は、「パスワード・バリデータの管理」を参照してください。

30.2 デフォルトのパスワード・ポリシー・プロパティの使用

デフォルトのパスワード・ポリシー・プロパティのリストおよびこれらのプロパティの管理方法は、これらのトピックを確認してください。

30.2.1 デフォルト・パスワード・ポリシーのプロパティ

デフォルトのパスワード・ポリシーのすべてのプロパティのリストとその説明について、このトピックを確認してください。

次の表に、デフォルト・パスワード・ポリシーのプロパティを示します。

表30-1 デフォルト・パスワード・ポリシーのプロパティ

プロパティ 説明

account-status-notification-handler

パスワード・ポリシーの処理中にイベントが発生した場合、メッセージを送信します。このプロパティを使用して、このパスワード・ポリシーに使用するアカウント・ステータス通知ハンドラのDNを指定します。

allow-expired-password-changes

非推奨。ユーザーのパスワードの有効期限が切れた後に、そのユーザーにパスワードの変更を許可するかどうかを示します。ユーザーはリクエストを匿名で発行し、現在のパスワードをリクエストに含める必要があります。有効な場合、この機能によってパスワード変更拡張操作が使用されます。この操作はデフォルトで初期構成時に有効化されます。

allow-user-password-changes

ユーザーが自分のパスワードを変更するためのアクセス制御権を保有している場合に、そのユーザーにこの変更を許可するかどうかを示します。

default-password-storage-scheme

このパスワード・ポリシーでクリア・テキスト・パスワードのエンコードに使用するパスワード記憶スキームを指定します。

「パスワード・ストレージ・スキーム」を参照してください。

deprecated-password-storage-scheme

このパスワード・ポリシーで非推奨と見なすパスワード記憶スキームのDNを指定します。このパスワード・ポリシーを持つユーザーがサーバーに対する認証を行ったときに、そのユーザーのパスワードが非推奨のスキームでエンコードされている場合、その値は削除され、デフォルトのパスワード記憶スキームを使用してエンコードされた値に置き換えられます。

expire-password-without-warning

パスワード有効期限切れ警告がユーザーにまだ表示されていない場合でも、そのユーザーのパスワードを有効期限切れにすることが可能かどうかを示します。これをfalseに設定すると、パスワードの有効期限時間が過ぎた後でも、常に、警告メッセージが少なくとも1回、確実にユーザーに表示されます。有効期限時間は、現在の時間に警告間隔(ds-cfg-password-expiration-warning-interval)を加えた時間にリセットされます。

force-change-on-add

アカウントの初回使用時にパスワードの変更をユーザーに要求し、その他の操作はいずれもパスワードを変更しないと実行できないようにするかどうかを示します。

force-change-on-reset

管理パスワードのリセット後にパスワードを変更するようにユーザーに要求し、他の操作はいずれもパスワードを変更しないと実行できないようにするかどうかを示します。

grace-login-count

ユーザーに許可する最大猶予ログイン数を指定します。猶予ログインによって、ユーザーは、パスワードの有効期限が切れた後でもサーバーに対して認証を行うことができますが、パスワードを変更するまでは他の操作はいずれも実行できません。

idle-lockout-interval

ユーザー・アカウントがアイドル状態を維持できる(つまり、ディレクトリに対する認証を行わないでいられる)最大時間を指定します。この時間が経過すると、アカウントはサーバーによってロックされます。このアクションは、last login timeのトラッキングが有効化されており、idle lockout intervalがゼロ以外の値に設定されている場合に適用されます。

last-login-time-attribute

ユーザーの最終ログイン時刻の保持に使用する、ユーザーのエントリ内の属性名を指定します。これを指定する場合、指定する属性は、サーバー・スキーマに操作属性として定義されているか、ユーザーのエントリの少なくとも1つのオブジェクト・クラスで許可されている必要があります。この目的で、ds-pwp-last-login操作属性が定義されています。最終ログイン時刻のトラッキングは、パスワード・ポリシーに対してds-cfg-last-login-time-attribute属性とds-cfg-last-login-time-format属性が構成されている場合にのみ有効化されます。

last-login-time-format

最終ログイン時刻値の生成に使用する書式文字列を指定します。java.text.SimpleDateFormatクラスに使用可能な書式文字列を指定できます。ノート: パフォーマンス上の理由から、最終ログインの日付(書式: yyyyMMdd)のみを格納し、時間は格納しないようにこの属性を構成する方が望ましい場合もあります。この場合、更新は1日に1回行えばよく、ユーザーの認証時に毎回行う必要はなくなります。最終ログイン時刻のトラッキングは、パスワード・ポリシーに対してds-cfg-last-login-time-attribute属性とds-cfg-last-login-time-format属性が構成されている場合にのみ有効化されます。

lockout-duration

認証に失敗したユーザー・アカウントをロック状態にする時間を指定します。この時間が経過すると、アカウントのロックは自動的に解除されます。値0 secondsは、ロックされたアカウントのロック解除は自動的には行われず、管理者がリセットする必要があることを表します。

lockout-failure-count

認証に何回失敗したら、ユーザー・アカウントを一時的または永久的にロックするかを指定します。値ゼロは、自動ロックアウトを有効化しないことを表します。

lockout-failure-expiration-interval

ロックアウト対象の失敗として前回の認証試行の失敗を加算する場合の最大時間を指定します。ノート: 認証に成功すると、以前に失敗したすべての試行のレコードが常にクリアされます。値0 secondsは、失敗した試行が自動的には有効期限切れにならないことを表します。

lockout-soft-duration-count

多数の認証失敗が発生した後に、ユーザー・アカウントを一時的にロックする時間の長さを指定します。この属性の値は、秒、分、時間、日または週の単位の後に続く整数です。0秒の値は、アカウントが一時的にロックされることはないことを示します。

lockout-soft-failure-count

ユーザー・アカウントを一時的にロックするまでに、ユーザーが認証に何回まで失敗が許されるかを指定します。0の値は、失敗によってアカウントが一時的にロックされることはないことを示します。

max-password-age

ユーザーが同じパスワードを維持できる最大時間を指定します。この時間が経過すると、ユーザーは新しいパスワードを選択する必要があります。これは、多くの場合パスワードが有効期限切れになるまでの間隔と呼ばれます。値0 secondsは、パスワードが有効期限切れにならないことを表します。ds-cfg-expire-passwords-without-warning属性をfalseに設定すると、有効なパスワード有効期限切れ時間が再計算され、最初の警告を受け取った時間に警告間隔(ds-cfg-password-expiration-warning-interval)を加えた時間に設定されます。この動作によって、常に、完全に構成されたパスワード変更警告間隔がユーザーに確実に適用されるようになります。

max-password-reset-age

ユーザーのパスワードが管理者によってリセットされた後に、そのユーザーによるパスワードの変更が可能な最大時間を指定します。この時間が経過すると、そのユーザーはロックアウトされます。これは、ds-cfg-force-change-on-reset属性がtrueに設定されている場合にのみ適用されます。値0 secondsは、管理者によるリセット後にユーザーがパスワードを変更する必要がある時間に制限がないことを表します。

min-password-age

ユーザーがパスワード値を維持する必要がある最小時間を指定します。この時間が経過すると、ユーザーはパスワード値を再び変更できるようになります。ゼロ以外の値を指定することによって、ユーザーが、前のパスワードを履歴からフラッシュして再利用可能にするために、パスワードの変更を繰り返すことを確実に防止できます。

password-attribute

ユーザーのエンコードされたパスワードを保持する、ユーザーのエントリ内の属性を指定します。指定する属性は、サーバーのスキーマで定義されている必要があり、またユーザー・パスワード構文または認証パスワード構文のどちらかを持っている必要があります。通常、ユーザー・パスワード構文(OID: 1.3.6.1.4.1.26027.1.3.1)の場合は「userPassword」と入力します。また、認証パスワード構文(OID: 1.3.6.1.4.1.4203.1.1.2)用に値authPasswordを指定することもできます(サーバーでこの構文がサポートされている場合)。

password-change-requires-current-password

ユーザーが新しいパスワードを設定するときに、現在のパスワードを入力する必要があるかどうかを示します。これをtrueに設定した場合、ユーザーは既存のパスワードの変更時に現在のパスワードを入力する必要があります。この変更は、パスワード変更拡張操作を使用するか、標準のLDAP変更操作を使用する(既存のパスワード値を削除し、同じ変更操作で新しいパスワード値を追加する)ことによって実行できます。

password-expiration-warning-interval

パスワードの有効期限が間もなく切れることを示すユーザーへの通知を開始する、パスワード有効期限前の時間を指定します。ds-cfg-expire-passwords-without-warning属性がfalseに設定されている場合は、ゼロ以外の値をここで指定する必要があります。

password-generator

このパスワード・ポリシーとともに使用するパスワード・ジェネレータのDNを指定します。パスワード・ジェネレータはパスワード変更拡張操作とともに使用され、このジェネレータによって、クライアントからのリクエストに新しいパスワードが含まれていない場合に新しいパスワードが生成されます。パスワード・ジェネレータのDNを指定しないと、パスワード変更拡張操作でユーザーのパスワードの自動生成は行われません。

password-history-count

パスワード履歴に保持するパスワード値の最大数を指定します。ユーザーのパスワードが変更されるたびに、サーバーは、提示された新しいパスワードを、現在のパスワードおよび履歴に格納されているすべてのパスワードと突き合せてチェックします。一致が検出された場合、ユーザーは新しいパスワードを使用できません。値ゼロは、パスワード履歴を保持しないことを表すか(パスワード履歴期間の値が0 secondsに設定されている場合)、パスワード履歴リストを完全に期間ベースとし、最大数を適用しないことを表します(パスワード履歴期間の値が0 seconds以外の値に設定されている場合)。ノート: 構成されている履歴数を管理者が減らした場合(ただし、ゼロ以外の値)、パスワード履歴状態情報を含んでいる各ユーザー・エントリは、そのユーザーのパスワード変更が処理されたときに初めてこの操作の影響を受けます。履歴状態の超過値がある場合は、この時点でパージされます。履歴数がゼロに減らされ、かつパスワード履歴期間が0秒に設定されている場合、この機能を再び有効化すると、ユーザーのエントリのあらゆる状態情報が保持されます。

password-history-duration

以前に使用されたパスワードをユーザーのパスワード履歴内に有効として保持する最大時間を指定します。ユーザーのパスワードが変更されるたびに、サーバーは、提示された新しいパスワードを、現在のパスワードおよび履歴に格納されているすべてのパスワードと突き合せてチェックします。一致が検出された場合、ユーザーは新しいパスワードを使用できません。値0 secondsは、パスワード履歴を保持しないことを表すか(パスワード履歴の期間の値が0に設定されている場合)、パスワード履歴リストを完全に期間ベースとし、最大数を適用しないことを表します(パスワード履歴の期間の値が0以外の値に設定されている場合)。

password-validator

このパスワード・ポリシーとともに使用するパスワード・バリデータのDNを指定します。パスワード・バリデータはユーザーが新しいパスワードを指定しようとするたびに起動され、新しいパスワードが許容範囲内かどうかがこのバリデータによって判定されます。

previous-last-login-time

ユーザーがBIND操作を使用してサーバーへの認証を行った最後から2番目の時刻を示します。ユーザーがログインすると、Oracle Unified Directoryにより、既存のlast-login-time値が(その作成時にのみ使用された書式で) previous-last-login-timeにコピーされ、新しいログイン時刻を反映するようにlast-login-time値が更新されます。

previous-last-login-time-format

古い最終ログイン時刻値に対して過去に使用された書式文字列を指定します。この値は、last-login-timeオプションが有効化されており、その値の格納書式が変更された場合以外は不要です。

require-change-by-time

このパスワード・ポリシーを持つすべてのユーザーがパスワードを変更する必要がある時点を指定します。このオプションは、パスワード有効期限とは別に作用します(つまり、パスワード有効期限が無効化されている場合でも、いずれかの時点ですべてのユーザーにパスワードの変更を強制します)。

require-secure-authentication

このパスワード・ポリシーを持つユーザーが、SSLのようなセキュア通信メカニズム、またはパスワードをプクリア・テキストで公開しないDIGEST-MD5、EXTERNAL、GSSAPIなどのセキュアSASLメカニズムを使用して、安全に認証を行う必要があるかどうかを示します。

require-secure-password-changes

このパスワード・ポリシーを持つユーザーが、安全な方法で(SSLのようなセキュア通信チャネルを使用するなど)パスワード変更を行う必要があるかどうか示します。

30.2.2 デフォルト・パスワード・ポリシーのプロパティの表示

Oracle Unified Directory Services Managerまたはdsconfigコマンドを使用して、デフォルト・パスワード・ポリシーのプロパティを表示できます。

30.2.2.1 dsconfigを使用したデフォルト・パスワード・ポリシーのプロパティの表示

dsconfigを使用してプロパティを表示するには、次のコマンドを実行します。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  get-password-policy-prop --policy-name "Default Password Policy"

Property                                  : Value(s)
------------------------------------------:--------------------------
account-status-notification-handler       : -
allow-expired-password-changes            : false
allow-user-password-changes               : true
default-password-storage-scheme           : Salted SHA-1
deprecated-password-storage-scheme        : -
expire-passwords-without-warning          : false
force-change-on-add                       : false
force-change-on-reset                     : false
grace-login-count                         : 0
idle-lockout-interval                     : 0 s
last-login-time-attribute                 : -
last-login-time-format                    : -
lockout-duration                          : 0 s
lockout-failure-count                     : 0
lockout-failure-expiration-interval       : 0 s
max-password-age                          : 0 s
max-password-reset-age                    : 0 s
min-password-age                          : 0 s
password-attribute                        : userpassword
password-change-requires-current-password : false
password-expiration-warning-interval      : 5 d
password-generator                        : Random Password Generator
password-history-count                    : 0
password-history-duration                 : 0 s
password-validator                        : -
previous-last-login-time-format           : -
require-change-by-time                    : -
require-secure-authentication             : false
require-secure-password-changes           : false

拡張プロパティを表示するには、--advancedオプションを次のように含めます:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  get-password-policy-prop --policy-name "Default Password Policy" --advanced
30.2.2.2 OUDSMを使用したデフォルト・パスワード・ポリシーのプロパティの表示

OUDSMを使用してプロパティを表示するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。
  4. 「デフォルト・パスワード・ポリシー」を選択します。

パスワード・ポリシーのプロパティとその値が右側のペインに表示されます。

30.2.3 デフォルト・パスワード・ポリシーの変更

Oracle Unified Directory Services Managerまたはdsconfigコマンドを使用して、デフォルト・パスワード・ポリシーの様々なプロパティを変更できます。

30.2.3.1 dsconfigを使用したデフォルト・パスワード・ポリシーのプロパティの変更

dsconfigを使用してプロパティを変更するには、次のコマンドを実行します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop --policy-name "Default Password Policy" \
  --set allow-expired-password-changes:true
30.2.3.2 OUDSMを使用したデフォルト・パスワード・ポリシーのプロパティの変更

OUDSMを使用してプロパティを変更するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。
  4. 「デフォルト・パスワード・ポリシー」を選択します。

    パスワード・ポリシーのプロパティとその値が右側のペインに表示されます。

  5. 必要なプロパティを変更して「適用」をクリックします。

拡張プロパティの表示と変更は、OUDSMでは行えません。

30.3 パスワード・ポリシー状態情報の属性

パスワード・ポリシー状態情報は、ユーザーごとに維持する必要があります。この情報は各ユーザー・エントリに操作属性のセットとして格納されます。これらの属性は、エンド・ユーザーや管理者によって直接変更されることを避けるため、NO-USER-MODIFICATIONフラグ付きで宣言されます。

次の表で説明するように、パスワード・ポリシーには、状態情報を保持する多くの操作属性が含まれます。

表30-2 パスワード・ポリシーの操作属性

属性 説明

pwdChangedTime

この属性は、ユーザーまたは管理者によってユーザーのパスワードが最後に変更された時間のタイムスタンプ(汎用時間形式)を保持します。これは、ユーザーのパスワードを設定または変更する追加、変更またはパスワード変更操作で自動的に設定され、クリアや設定解除はされません。これは、最小または最大パスワード経過時間を施行する目的で、ユーザーのパスワードが最後に変更された時間の判定や、有効期限切れ警告通知を生成するかどうかの決定に使用されます。また、パスワード・リセット最大期間を施行するためにpwdReset属性とともに使用されます。

pwdGraceUseTime

この属性は、ユーザーのパスワードが期限切れになった後に、猶予ログインの最大回数を施行するために、そのユーザーが猶予期間ログインで認証された時間のタイムスタンプ(汎用時間形式)を保持します。これは、ユーザーが猶予期間ログインを使用して認証されたときは常に自動的に設定され、ユーザーのパスワードがユーザー自身によって変更されたり管理者によってリセットされたときは常に消去されます。

pwdFailureTime

この属性は、パスワードが正しくないためにユーザーの認証試行が失敗した時間のタイムスタンプ(汎用時間形式)を保持します。これは、試行に何度も失敗するとその結果アカウントがロックされるよう、アカウントの最大失敗数の施行に使用されます。これは、認証失敗が発生ときは常に自動的に設定され、ユーザー認証が成功したとき(ロックアウトの発生前またはアカウントがロックされてロックアウト期間が経過した後)や、ユーザーのパスワードがユーザー自身によって変更されたり管理者によってリセットされたときは常にクリアされます。

pwdHistory

この属性は、以前のパスワードをタイムスタンプ(汎用時間形式)とともに保持します。ds-cfg-password-history-durationまたはds-cfg-password-history-count、あるいはその両方を設定した場合に使用されます。これは、パスワードを変更すると自動的に設定されます。

pwdAccountLockedTime

この属性は、認証試行に何度も失敗した後、ユーザーのアカウントがロックされた時間のタイムスタンプ(汎用時間形式)を保持します。アカウントがロックされていることを示すため、またパスワード・ロックアウト継続時間を経て、自動的にロックが解除される時期についての情報を提供するために使用されます。これは、ユーザーのパスワードが管理者によってリセットされたり、ロックアウト継続時間が経過した後に(認証の成功や失敗にかかわらず)認証が試行されたときに自動的にクリアされます。

ノート: Oracle Unified Directoryパスワード・ポリシーの実装は、パスワード・ポリシーのドラフトで指定された動作とは大きく異なります。Oracle Unified Directoryの実装では、アカウント・ロックアウトが一時的なものか永続的なものかにかかわらず、この属性は常にアカウントがロックされた時間を保持します。パスワード・ポリシーのドラフトでは、一定期間後にアカウントを自動的にロック解除しない場合は、00000101000000Zという特殊な値が設定されます。この違いには、いくつかの理由がありますが、主な理由は、ドラフトで指定された時間は実際には不適切なためです(グレゴリオ暦では0年がない)。また、アカウントがロックされたのは一時的なものか永続的なものかの判断は、ds-cfg-lockout-duration属性(0秒の値は、アカウントを自動的にロック解除しないことを示す)に基づいて行われるため、この特殊な値は必要ありません。

pwdPolicySubEntry

この属性は、指定されたエントリのパスワード・ポリシーを保持します。パスワード・ポリシーによって制御される各オブジェクトは、pwdPolicySubentry属性でポリシーを制御するために使用されているサブエントリを公開します。オブジェクトのパスワード・ポリシーの検査または管理を行おうとするユーザーは、適切なpwdPolicyサブエントリに到達するために、そのオブジェクトのpwdPolicySubentryを照会する場合があります。

ds-pwp-password-policy-dn

この属性は、関連付けられているユーザーに対して適用されるパスワード・ポリシーの構成エントリのDNを保持します。定義済の場合、有効な既存のパスワード・ポリシーの定義構成エントリまたはサブエントリを参照している必要があります。この属性がユーザーのエントリ内に存在するが、有効な構成エントリまたはサブエントリを参照していない場合、ユーザーは認証が許可されません。

pwdPolicySubentry操作属性を使用して、特定の各ユーザー・エントリで有効なポリシーを確認できます。

pwdReset

この属性は、ユーザーのパスワードが管理者によってリセットされ、ユーザーが他の操作を実行できるようにするには、このパスワードを変更する必要がある場合に、ブール値のtrueを保持します。これは、ユーザーのアカウントが追加されds-cfg-force-change-on-add属性がtrueに設定された場合、または管理上の変更操作やパスワード変更の操作によりパスワードがリセットされds-cfg-force-change-on-reset属性がtrueに設定された場合に、自動的にtrueに設定されます。これは、ユーザーのパスワードがそのユーザー自身によって変更されたときは常にクリアされます。

ds-pwp-account-disabled

この属性は、ユーザーのアカウントが管理者によって手動で無効化されているために、そのユーザーのディレクトリ・サーバーに対する認証が許可されない場合に、ブール値のtrueを保持します。この属性は、ディレクトリ・サーバーによって自動的に設定またはクリアされず、管理者が手動で指定する必要があります。また、仮想属性として生成される場合もあります。

ds-pwp-last-login-time

この属性は、最終ログイン時間の情報を保持するためのデフォルト属性として使用されます(この機能が有効化されている場合)。機能が有効になっている場合、この属性を使用するための要件はありません。管理者の選択によって、代替属性を構成できます。

ds-pwp-password-changed-by-required-time

この属性は、パスワード・ポリシー構成エントリのds-cfg-require-change-by-time属性の値と等しい汎用時間を格納できます。これは、ユーザーのパスワードがその構成に従って変更されたかどうかを示すために使用されます。構成属性が現在ds-pwp-password-changed-by-required-time属性に保持されている値とは異なる値を保持している場合に、ユーザーのパスワードが(エンド・ユーザーまたは管理者によって)変更されると、この属性にds-cfg-require-change-by-time属性の値が設定されます。

ds-pwp-warned-time

この属性は、ユーザーが今後のパスワード有効期限について最初に警告された時間のタイム・スタンプ(汎用時間形式)を保持します。これは、ユーザーに有効期限の警告が表示されたかどうかを判定し、表示された場合は新しく調整された有効期限を判定するために、ds-cfg-expire-passwords-without-warning構成属性と組み合せて使用されます。これは、パスワードの有効期限が近づいていることを示す警告通知が最初に送信されたときはディレクトリ・サーバーによって自動的に設定され、ユーザーのパスワードが(ユーザーまたは管理者によって)変更されたときは常に消去されます。

30.4 pwdPolicyオブジェクト・クラスで使用される属性

pwdPolicyオブジェクト・クラスには、複数のユーザーに適用されるパスワード・ポリシーを定義する属性が含まれます。

次に示すpwdPolicyオブジェクト・クラスのスキーマ定義は、LDAPサブエントリのpwdPolicyでサポートされている属性を表します。

( 1.3.6.1.4.1.42.2.27.8.2.1
         NAME 'pwdPolicy'
         SUP top
         AUXILIARY
         MUST ( pwdAttribute )
         MAY ( pwdMinAge $ pwdMaxAge $ pwdInHistory $ pwdCheckQuality $
         pwdMinLength $ pwdExpireWarning $
         pwdGraceAuthNLimit $ pwdLockout $
         pwdLockoutDuration $ pwdMaxFailure $ pwdFailureCountInterval $
         pwdMustChange $ pwdAllowUserChange $ pwdSafeModify ) )
         

表30-3に、pwdPolicyオブジェクト・クラスでサポートされている属性を示します。

表30-3 pwdPolicyオブジェクト・クラスでサポートされている属性

属性 説明

pwdAttribute

パスワード・ポリシーが適用される属性の名前を保持します。たとえば、パスワード・ポリシーはuserPassword属性に適用されます。

pwdMinAge

この属性は、次にパスワードを修正するまでの秒数を保持します。

この属性が存在しない場合は、0秒と想定されます。

pwdMaxAge

この属性は、変更されたパスワードが有効期限切れになるまでの秒数を保持します。

この属性が存在しない場合、または値が0の場合、パスワードは期限切れになりません。0ではない場合、この値はpwdMinAgeの値以上にする必要があります。

pwdInHistory

この属性は、pwdHistory属性に格納する使用済パスワードの最大数を指定します。

この属性が存在しない場合、または値が0の場合、使用済パスワードはpwdHistory属性に格納されず、再使用が可能になります。

pwdCheckQuality

この属性は、変更または追加中に、パスワードの品質が検証される方法を示します。この属性が存在しない場合、または値が0の場合、品質チェックは実施されません。1の値は、サーバーが品質をチェックするが、ハッシュ・パスワードやその他の理由によりサーバーがチェックできない場合は受け入れることを示します。2の値は、サーバーが品質をチェックするが、サーバーが検証できない場合はそのパスワードを拒否してエラーを返すことを示します。

pwdMinLength

品質チェックが有効な場合、この属性はパスワードで使用しなくてはいけない最小文字数を保持します。属性が存在しない場合、パスワード最小文字数は適用されません。ハッシュ・パスワードやその他の理由によりサーバーが長さをチェックできない場合は、サーバーはpwdCheckQuality属性の値に応じて、パスワードをチェックしないで受け入れるか(0または1の場合)、パスワードを拒否します(2の場合)。

pwdExpireWarning

この属性は、パスワードの有効期限切れ警告メッセージが認証中のユーザーに戻されるまでの最大秒数を指定します。

この属性が存在しない場合、または値が0の場合、警告は戻されません。0ではない場合、この値はpwdMaxAgeの値より小さくする必要があります。

pwdGraceAuthNLimit

この属性は、期限切れのパスワードを認証に使用できる回数を指定します。この属性が存在しない場合、または値が0の場合、認証は失敗します。

pwdLockout

この属性は、値がTRUEの場合、指定したバインド試行の連続失敗回数後に、そのパスワードを認証に使用できなくなることを示します。バインド試行の最大連続失敗回数は、pwdMaxFailure属性で指定します。

この属性が存在しない場合、または値がFALSEの場合、バインド試行の失敗数に到達しても、そのパスワードは認証に使用されます。

pwdLockoutDuration

この属性は、バインド試行何度もに失敗したためにそのパスワードを認証に使用できなくなるまでの秒数を保持します。この属性が存在しない場合、または値が0の場合、パスワード管理者によってリセットされるまで、そのパスワードは認証に使用できません。

pwdMaxFailure

この属性は、認証にパスワードを使用できなくなるまでのバインド試行の連続失敗回数を指定します。この属性が存在しない場合、または値が0の場合、このポリシーはチェックされず、pwdLockoutの値は無視されます。

pwdFailureCountInterval

この属性は、認証に成功しなくても、失敗カウンタからパスワードの失敗がパージされるまでの秒数を保持します。

この属性が存在しない場合、または値が0の場合、失敗カウンタは認証に成功した場合にのみリセットされます。

pwdMustChange

この属性の値がTRUEの場合、管理者によってパスワードがリセットされた後に最初にディレクトリにバインドするとき、ユーザーがパスワードを変更する必要があることを示します。この属性が存在しない場合、または値がFALSEの場合、管理者によってパスワードがリセットされた後のバインド時に、ユーザーがパスワードを変更する必要はありません。この属性は、このドキュメントで指定しているアクションでは設定されません。通常、ユーザーのパスワードをリセットした後にパスワード管理者によって設定されます。

pwdAllowUserChange

この属性は、変更操作は引き続きアクセス制御の対象ですが、ユーザーが自分のパスワードを変更できるかどうかを示します。この属性が存在しない場合は、TRUEの値と想定されます。この属性は、アクセス制御メカニズムが存在しない場合に使用されます。

pwdSafeModify

この属性は、パスワードの変更時に新しいパスワードとともに現在のパスワードを送信する必要があるかを指定します。この属性が存在しない場合は、FALSEの値と想定されます。

30.5 レプリケート環境でのパスワード・ポリシー、パスワード・バリデータおよびパスワード・ジェネレータの理解

レプリケート環境でパスワードを制御するポリシーについて理解できます。ディレクトリ・サーバー構成内(cn=configの下)に存在するパスワード・ポリシー、パスワード・バリデータまたはパスワード・ジェネレータは、レプリケートされません。構成情報全般はレプリケートされず、各ディレクトリ・サーバー・インスタンス固有のものです。

デフォルト・パスワード・ポリシー、パスワード・バリデータまたはパスワード・ジェネレータを変更する場合は、レプリケート・トポロジ内の各ディレクトリ・サーバー・インスタンスで同じ変更を行う必要があります。同様に、cn=configの下にある特殊パスワード・ポリシー、パスワード・バリデータまたはパスワード・ジェネレータは、他のディレクトリ・サーバーにレプリケートされません。

サブエントリとして(つまり、データの一部として)作成されたパスワード・ポリシー、パスワード・バリデータおよびパスワード・ジェネレータは、レプリケートされます。

サブエントリとしてのパスワード・ポリシーの作成の詳細は、「LDAPサブエントリとしてのパスワード・ポリシーの定義」を参照してください

サブエントリとしてのパスワード・バリデータの作成の詳細は、「LDAPサブエントリとしてのパスワード・バリデータの定義」を参照してください

サブエントリとしてのパスワード・ジェネレータの作成の詳細は、「LDAPサブエントリとしてのパスワード・ジェネレータの定義」を参照してください

レプリケート環境でのパスワード・ポリシーの使用に関するその他の考慮事項を次に示します:

  • ディレクトリ・サーバーは、ユーザー・エントリに格納されているすべてのパスワード情報(現在のパスワード、パスワード履歴、パスワード有効期限)をレプリケートします。

  • ユーザーが自分のパスワードを変更した場合、すべてのレプリカでパスワードが新しいパスワードに更新されるまでにしばらく時間がかかる場合があります。

  • 1人のユーザーに対してパスワード有効期限の警告が複数(レプリケートされた各サーバーから1つずつ)表示されることがあります。

30.6 コマンド行を使用したパスワード・ポリシーの管理

パスワード・ポリシーを構成する最も簡単な方法は、コマンド行を使用することです。dsconfigコマンドを使用して、既存のパスワード・ポリシーを管理し、パスワード・ポリシーのプロパティを変更します。

この項では、次の項目について説明します。

30.6.1 デフォルト・パスワード・ポリシーの構成

dsconfigコマンドを使用して、デフォルト・パスワード・ポリシーの様々なプロパティを変更します。

30.6.1.1 アカウント・ロックアウト機能

次の表に、アカウント・ロックアウト機能を示します。

表30-4 アカウント・ロックアウト機能

機能 説明

ロックアウト対象の失敗数。

lockout-failure-countプロパティは、認証に何回失敗したらユーザー・アカウントをロックするかを指定します

ロックアウト・ソフト失敗回数

lockout-soft-failure-countプロパティは、認証に何回失敗したらユーザー・アカウントをソフト・ロックするかを指定します

ロックアウト期間。

lockout-durationプロパティは、認証試行に失敗した後、アカウントがロック状態になる時間の長さを決定します。値ゼロは、アカウントのロック解除が自動的には行われないことを表します

ソフト・ロックアウト継続時間

lockout-soft-durationプロパティは、認証試行に失敗した後、アカウントがソフト・ロック状態になる時間の長さを決定します。このソフト・ロックアウト継続時間が経過すると、アカウントのロックは自動的に解除されます。

ロックアウト対象の失敗が有効期限切れになるまでの間隔。

lockout-failure-expiration-intervalプロパティは、ロックアウトの失敗に前回の認証試行の失敗を加算する場合の最大時間を決定します。値ゼロは、失敗した試行が自動的には有効期限切れにならないことを表します

アイドル・ロックアウト間隔。

idle-lockout-intervalプロパティは、ユーザー・アカウントがディレクトリに対する認証を行わないでいられる最大時間を指定します。この時間が経過すると、アカウントはサーバーによってロックされます。このプロパティは、last-login-timeが有効化され、idle-lockout-intervalがゼロ以外の値に設定されている場合に適用されます。

次のコマンドでは、デフォルト・パスワード・ポリシーのアカウント・ロックアウト・プロパティが設定されます。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop \
  --policy-name "Default Password Policy" --set "lockout-soft-failure-count:3" \
  --set "lockout-duration:15 minutes" --set "idle-lockout-interval:90 days" \
  --set "lockout-failure-expiration-interval:10 minutes"

次のコマンドでは、ハード・アカウント・ロックを使用したパスワード・ポリシーのアカウント・ロックアウト・プロパティが設定されます。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop \
  --policy-name "Default Password Policy" --set "lockout-failure-count:9"\
  --set "lockout-soft-failure-count:3" --set "lockout-duration:0 seconds"\
  --set "lockout-soft-duration:10 minutes"\
  --set "idle-lockout-interval:90 days"\
  --set "lockout-failure-expiration-interval:10 minutes"

この例では、ユーザーがログインに2回失敗すると、3回目の試行失敗でシステムがタイム・アウトします。

lockout-soft-duration期間の経過後、ユーザーは再びログイン試行に3回失敗します。ユーザー・アカウントはlockout-soft-durationの10分間ロックされます。

lockout-failure-expiration-intervalの10分間が経過すると、ユーザーに対するアカウント・ロックアウトのための認証失敗は加算されません。これにより、許可されていない人物が短時間に何度もログイン試行を行うことでパスワードを推測することを回避できます。

2回目のlockout-soft-duration期間の経過後、ユーザーは再びログイン試行に3回失敗します。これで、ユーザー・アカウントはハード・ロックされ、アカウントは管理者が手動でロック解除する必要があります。

30.6.1.2 最終ログインの構成

最終ログインは、ユーザーがログイン履歴を追跡するために役立つ基本的なセキュリティ機能です。ディレクトリ・サーバーは、ユーザーの最終ログイン時刻を保持する操作属性ds-pwp-last-loginを備えています。別の属性を指定する場合は、その操作属性がサーバー・スキーマに定義されているか、ユーザーのエントリの少なくとも1つのオブジェクト・クラスで許可されている必要があります。

last-login-time-formatプロパティでは、yyyMMddまたは20140922のような時間書式が決定されます。時間書式が変更され、last-loginが有効になっている場合、変更後の書式がlast-login-time-format構文に一致していないと、previous-last-login-time-formatプロパティを使用してユーザーのログイン時刻がデコードされることがあります。

previous-last-login-timeプロパティ属性には、ユーザーのnext-to-lastログイン時刻が保持されます。Oracle Unified Directoryでは、この値をlast-login-time値から取得し、previous-last-login-time値をその作成時にのみ使用された書式で表示します。新規ログインが行われると、Oracle Unified Directoryにより、既存のlast-login-time値がprevious-last-login-timeにコピーされ、新しいログイン時刻を反映するようにlast-login-time値が更新されます。

次のコマンドでは、デフォルト・パスワード・ポリシーの最終ログイン・プロパティが設定されます。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop \
  --policy-name "Default Password Policy" \
  --set "last-login-time-attribute:ds-pwp-last-login-time" \
  --set "last-login-time-format:yyyyMMdd" \
  --set "previous-last-login-time-format:yyyyMMdd"
  --set "previous-last-login-time-attribute:ds-pwp-last-login-time" \
30.6.1.3 パスワード履歴数および履歴期間の構成

password-history-countプロパティでは、履歴に保持する過去のパスワード数が指定されます。値ゼロは、サーバーがパスワード履歴を保持しないことを表します。

password-history-durationプロパティでは、以前に使用されたパスワードをユーザー・パスワード履歴に保持する最大時間が指定されます。値0 secondsは、サーバーにパスワード履歴を保持しないことを表します。

次のコマンドでは、デフォルト・パスワード・ポリシーのパスワード履歴数と履歴期間が構成されます。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop \
  --policy-name "Default Password Policy" --set "password-history-count:3" \
  --set "password-history-duration:5 seconds"

30.6.2 新規パスワード・ポリシーの作成

異なる構成オプションを使用して複数のパスワード・ポリシーを構成し、格納できます。ディレクトリ・サーバー・インスタンスを設定すると、そのインスタンスでデフォルト・パスワード・ポリシーが使用され、ルート・ユーザー(cn=Directory Managerアカウントなど)を除くすべてのユーザー・エントリにそのポリシーが適用されます。

ディレクトリ内の特定のグループ用に、デフォルト・パスワード・ポリシーを変更したり、新しいパスワード・ポリシーを作成したりすることが可能です。特定のプロパティがパスワード・ポリシーに存在しない場合、サーバーはそのプロパティをデフォルト・パスワード・ポリシーから読み取ります。つまり、すべてのパスワード・ポリシーは、そのデフォルト値をデフォルト・パスワード・ポリシーから継承します。

次のコマンドでは、新しいパスワード・ポリシーが作成され、default-password-storage-schemelockout-durationlockout-failure-countおよびpassword-change-requires-current-passwordプロパティが設定されます。残りのプロパティはデフォルト・パスワード・ポリシーから継承されます。

新しいパスワード・ポリシーを作成するには、dsconfigコマンドを次のように使用します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  create-password-policy \
  --policy-name "Temp Password Policy" --set password-attribute:userPassword \
  --set default-password-storage-scheme:"Salted SHA-1" \
  --set lockout-duration:300s --set lockout-failure-count:3 \
  --set password-change-requires-current-password:true

これらのプロパティの詳細は、「デフォルトのパスワード・ポリシー・プロパティの使用」を参照してください。

30.6.3 初回ログイン・パスワード・ポリシーの作成

初回ログイン・パスワード・ポリシーは、システムへの最初のログイン時にパスワードを変更するようにユーザーに要求する特殊パスワード・ポリシーです。通常、管理者が新規作成したアカウント用に新しい一時パスワードを設定し、この一時パスワードがユーザーの初回ログインに使用されます。初回ログイン後、ユーザーは自分のパスワードを作成するように要求されます。

初回ログイン・パスワード・ポリシーを作成するには、dsconfigコマンドを使用します。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
create-password-policy --policy-name "First Login Password Policy" \
--set password-attribute:userpassword \
--set default-password-storage-scheme:"Salted SHA-1" \
--set allow-user-password-changes:true \
--set force-change-on-add:true \
--set force-change-on-reset:true \
--set expire-passwords-without-warning:false \
--set password-expiration-warning-interval:"1 days" \
--set min-password-age:"0 seconds" \
--set max-password-age:"3 days" \
--set lockout-duration:"1 hours" \
--set lockout-failure-count:3 \
--set password-change-requires-current-password:true

これらのプロパティの詳細は、「デフォルトのパスワード・ポリシー・プロパティの使用」を参照してください。

30.6.4 個別アカウントへのパスワード・ポリシーの割当て

パスワード・ポリシーを個別ユーザーに割り当てるには、対象のユーザーのエントリにds-pwp-password-policy-dn属性を追加します。それにより、構成したパスワード・ポリシーが、そのユーザーに対してサーバーで使用されるようになります。

  1. ldapmodifyを使用して、ds-pwp-password-policy-dn属性を追加します。
    $ ldapmodify --h localhost -p 1389 -D "cn=Directory Manager" \
    -j pwd-file -X -n \
    dn: uid=mgarcia,ou=Contractors,dc=example,dc=com
    changetype: modify
    add: ds-pwp-password-policy-dn
    ds-pwp-password-policy-dn: cn=Temp Password Policy,cn=Password Policies,cn=config
    
  2. ldapsearchを使用して、エントリを検証します。
    $ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file -X -n \
      -b "dc=example,dc=com" -s sub "(uid=mgarcia)" ds-pwp-password-policy-dn

30.6.5 パスワード・ポリシーの変更の防止

アクセス制御命令(ACI)をルート・エントリに追加して、ユーザーによるパスワード・ポリシーの変更を防止する必要があります。

特定のACIとともにldapmodifyコマンドを使用します。

$ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file -X -n \
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (targetattr != "ds-pwp-password-policy-dn")(version 3.0; acl "Allow self 
modification except for ds-pwp-password-policy-dn"; 
allow (write) (userdn = "ldap:///self");)

30.6.6 パスワード・ポリシーのユーザー・グループへの割当て

パスワード・ポリシーをユーザーのグループに割り当てるには、特定の基準に一致するすべての既存のユーザー・エントリにds-pwp-password-policy-dn属性を自動的に割り当てる仮想属性を使用し、この仮想属性に基準を関連付けて追加します。基準では、ユーザーがグループのメンバーであることを条件全体とすることも、条件の一部とすることもできます。

パスワード・ポリシーをユーザーのグループに追加する仮想属性を作成するには、dsconfigを使用します。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  create-virtual-attribute \
  --name "Add PWPolicy to Admins" --type user-defined --set enabled:true \
  --set attribute-type:ds-pwp-password-policy-dn \
  --set group-dn:cn=Admins,ou=Groups,dc=example,dc=com \
  --set conflict-behavior:real-overrides-virtual \
  --set value:"cn=Admins PWPolicy,cn=Password Policies,cn=config"

30.6.7 LDAPサブエントリとしてのパスワード・ポリシーの定義

LDAPサブエントリは、サーバーの操作データを保持する特殊エントリです。それらは、サブエントリ制御リクエスト制御を含めることで明示的にリクエストされない場合は、クライアントに返されない点で、操作属性に似ています。

パスワード・ポリシーをLDAPサブエントリとして定義すると、パスワード・ポリシーがユーザー・データとともに格納されるようになるため、レプリケート可能になります。

サブエントリ・パスワード・ポリシーは、構成で定義されているデフォルト・パスワード・ポリシーよりも優先されます。サブエントリ・パスワード・ポリシーに含まれていない設定は、デフォルト・パスワード・ポリシーから継承されます。

有効範囲が重なっている複数のパスワード・ポリシーが同じ親ノードに定義されている場合、その有効範囲内のエントリに適用するパスワード・ポリシー・サブエントリの選択は決定できません。そのため、パスワード・ポリシーの定義時には、他のポリシーとの間で競合が発生しないようにする必要があります。

サブエントリ・パスワード・ポリシーでは、パスワード・ポリシーの標準のプロパティのみを使用する必要があります。サブエントリ・パスワード・ポリシーに、Oracle Unified Directory固有のパスワード・ポリシー拡張を含めることはできません。

サブエントリ・パスワード・ポリシーを定義するには、LDIFファイルにパスワード・ポリシーを作成し、ldapmodifyを使用してそのファイルをデータに追加します。パスワード・ポリシーの適用先エントリを指定するには、サブエントリ・サブツリーの指定でLDAPフィルタを追加します。

次の例では、管理者のグループにのみ適用するパスワード・ポリシーを作成します。このパスワード・ポリシーの指定内容は次のとおりです:

  • ユーザーがパスワード試行に3回連続して失敗したら、そのユーザーのアカウントをロックします。

  • 失敗間隔は300秒とし、この経過後は、以前の失敗した認証試行についてはロックアウト対象の失敗として加算しません。

  • ロックアウト期間は300秒とし、この経過後は、ロックを自動的に解除します。

  • このパスワード・ポリシーの適用先ユーザーは、自分のパスワードを変更できます。

  • このパスワード・ポリシーを持つユーザーは、資格証明の公開を回避できる安全な方法を使用して自分のパスワードを変更する必要があります。

  1. パスワード・ポリシーを指定するエントリを含むLDIFファイル(admin-pwp.ldif)を作成します。
    dn: cn=Admins Password Policy,dc=example,dc=com
    objectClass: top
    objectClass: subentry
    objectClass: pwdPolicy
    cn: Admins Password Policy
    pwdAttribute: userPassword
    pwdLockout: TRUE
    pwdMaxFailure: 3
    pwdFailureCountInterval: 300
    pwdLockoutDuration: 300
    pwdAllowUserChange: TRUE
    pwdSafeModify: TRUE
    subtreeSpecification: {relativeBase "ou=people", specificationFilter
      "(isMemberOf=cn=Admins,ou=Groups,dc=example,dc=com)" }
    
  2. ldapmodifyコマンドを使用して、エントリをディレクトリに追加します。
    $ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -w password \
      --defaultAdd --filename admin-pwp.ldif 
    Processing ADD request for cn=Admins Password Policy,dc=example,dc=com
    ADD operation successful for DN cn=Admins Password Policy,dc=example,dc=com

30.6.8 パスワード・ポリシーの削除

不要になった任意のパスワード・ポリシーを配置場所のディレクトリから削除できます。ただし、デフォルト・パスワード・ポリシーとデフォルト・ルート・ユーザー・ポリシーは削除できません。

実際の操作では、まず、削除を計画しているパスワード・ポリシーを持つユーザーをチェックし、ユーザーを新しいパスワード・ディレクトリに移動します。その後、以前のパスワード・ポリシーを削除します。パスワード・ポリシーを削除したときに、削除したパスワード・ポリシーをまだ持っているユーザーがいる場合、そのユーザーは引き続き以前のパスワード・ポリシーを指すds-pwd-password-policy-dnを保有します。このエントリへのアクセス・リクエストが発生すると、サーバーはエラーを返します。

パスワード・ポリシーを削除するには、dsconfigを使用します。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  delete-password-policy --policy-name "Temp Password Policy"

30.7 OUDSMを使用したパスワード・ポリシーの管理

Oracle Unified Directory Services Manager (OUDSM)を使用して、既存のパスワード・ポリシーを管理し、パスワード・ポリシーのプロパティを変更します。

次のトピックでは、OUDSMを使用したパスワード・ポリシーの管理についてステップを追って説明します。

30.7.1 構成済パスワード・ポリシー・サブエントリのリスト

Oracle Unified Directory Services Manager (OUDSM)を使用して、サーバーで構成されているすべてのパスワード・ポリシー・サブエントリを表示します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー・サブエントリ」要素を開きます。

    すべてのパスワード・ポリシー・サブエントリのDNがリストされます。

  4. パスワード・ポリシー・サブエントリの詳細を表示するには、そのDNを選択します。

    右側のペインに、そのパスワード・ポリシー・サブエントリのプロパティが表示されます。

  5. パスワード・ポリシー・サブエントリのいずれかの面を変更するには、必要な値を変更して「適用」をクリックします。

使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。

30.7.2 パスワード・ポリシー・サブエントリの作成

Oracle Unified Directory Services Manager (OUDSM)を使用して、新しいパスワード・ポリシー・サブエントリを作成します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー・サブエントリ」要素を開きます。
  4. 「追加」アイコンをクリックします。

    右側のペインに、そのパスワード・ポリシー・サブエントリのプロパティが表示されます。

  5. 「新規パスワード・ポリシー・サブエントリの作成」画面で、必須フィールドを設定します。

    使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。

  6. パスワード・ポリシー・サブエントリの構成が完了したら、「作成」をクリックします。

30.7.3 既存のパスワード・ポリシー・サブエントリに基づくパスワード・ポリシー・サブエントリの作成

Oracle Unified Directory Services Manager (OUDSM)を使用して、既存のパスワード・ポリシー・サブエントリに基づく新しいパスワード・ポリシー・サブエントリを作成します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー・サブエントリ」要素を開きます。
  4. 新しいサブエントリのベースとするパスワード・ポリシー・サブエントリを選択します。
  5. 「類似追加」アイコンをクリックします。

    右側のペインに、元のパスワード・ポリシー・サブエントリのプロパティが表示されます。

  6. 必要な値を変更します。

    使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。

  7. 新しいパスワード・ポリシー・サブエントリの構成が完了したら、「作成」をクリックします。

30.7.4 パスワード・ポリシー・サブエントリの削除

Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・ポリシー・サブエントリを削除します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー・サブエントリ」要素を開きます。
  4. 削除するパスワード・ポリシー・サブエントリを選択します。
  5. 削除」アイコンをクリックします。

    削除の確認を求められます。「OK」をクリックします。

30.7.5 構成済パスワード・ポリシーの表示

Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・ポリシーのリストを表示します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。

    構成済パスワード・ポリシーのリストが表示されます。

  4. パスワード・ポリシーを選択すると、そのプロパティが右側のペインに表示されます。

使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。

30.7.6 パスワード・ポリシーの変更

Oracle Unified Directory Services Manager (OUDSM)を使用して、構成済パスワード・ポリシーを変更します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。

    構成済パスワード・ポリシーのリストが表示されます。

  4. プロパティを変更するパスワード・ポリシーを選択します。

ノート:

30.7.7 パスワード・ポリシーの作成

Oracle Unified Directory Services Manager (OUDSM)を使用して、新しいパスワード・ポリシーを作成します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。
  4. 「追加」アイコンをクリックします。
  5. 「パスワード・ポリシーの新規作成」画面で、必須プロパティを構成します。

    使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。

  6. 新しいパスワード・ポリシーの構成が完了したら、「作成」をクリックします。

30.7.8 既存のパスワード・ポリシーに基づくパスワード・ポリシーの作成

Oracle Unified Directory Services Manager (OUDSM)を使用して、既存のパスワード・ポリシーに基づく新しいパスワード・ポリシーを作成します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。
  4. 新しいポリシーのベースとするパスワード・ポリシーを選択します。
  5. 「類似追加」アイコンをクリックします。
  6. 「パスワード・ポリシーの新規作成」画面で、作成する新しいポリシー用にプロパティを編集します。

    使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。

  7. 新しいパスワード・ポリシーの構成が完了したら、「作成」をクリックします。

30.7.9 パスワード・ポリシーの削除

Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・ポリシーを削除します。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。
  4. 削除するパスワード・ポリシーを選択します。
  5. 削除」アイコンをクリックします。
  6. 「OK」をクリックして、削除を確定します。

30.7.10 サポートされているパスワード記憶スキームの表示

パスワード記憶スキームは、サーバーで保管されるユーザー・パスワードをエンコードするためのメカニズムを提供します。ユーザーが入力したパスワードが正しいかどうかをサーバーは判断できますが、多くの場合、パスワードは、クリアテキスト・パスワードの内容をユーザーに決定させない方法でエンコードされます。

Oracle Unified Directoryは複数のパスワード記憶スキームをサポートしています。「パスワード・ストレージ・スキーム」を参照してください。

OUDSMを使用してパスワード記憶スキームのリストを表示するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード記憶」要素を開きます。
  4. パスワード記憶スキームのリストが表示されます。

30.7.11 パスワード記憶スキームの有効化または無効化

Oracle Unified Directory Services Managerを使用して、パスワード記憶スキームを有効化または無効化できます。

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード記憶」要素を開きます。
  4. 有効化または無効化するパスワード記憶スキームを選択します。
  5. 右側のペインで、必要に応じて、「有効」ボックスを選択するか、このボックスの選択を解除します。
  6. 「適用」をクリックして、変更を保存します。

30.8 パスワード・バリデータの管理

パスワード・バリデータは、入力されたプレーン・テキスト・パスワードの使用が許容されるかどうかを判定するメカニズムを提供します。この検証によって、脆弱で容易に推測される可能性がある単純なパスワードをユーザーが選択するのを防止できます。

実行可能な検証のタイプには次のものがあります:

  • 指定されている最小文字数以上の文字がパスワードに含まれていることの確認

  • 指定されている最大文字数を超える文字数がパスワードに含まれていないことの確認

  • 各種文字セット(小文字、大文字、数字、記号など)の指定された文字数以上の文字がパスワードに含まれていることの確認

  • ユーザーが以前に使用したパスワードを再利用することの確実な防止(つまり、そのパスワードが以前のパスワードの履歴に含まれていないことの確認)

  • ユーザーがそのユーザーのエントリの別の属性値に一致するパスワードを選択することの確実な防止

  • パスワードが指定されたディレクトリに含まれていないことの確認

ユーザーのパスワード・ポリシーでは、そのユーザーが新しいパスワードを入力するたびに使用されるパスワード・バリデータ・セットが指定されます。パスワード・バリデータをアクティブ化するには、対応する構成エントリを有効化し、そのバリデータをアクティブ化するパスワード・ポリシーのpassword-validator属性にそのエントリのDNを含める必要があります。

サーバーで次のパスワード・バリデータをデフォルトで使用できます:

  • 属性値パスワード・バリデータ

    このバリデータは、提示されたパスワードの使用が許容されるかどうかを判定するために、そのパスワードがユーザーのエントリ内のいずれかの属性に含まれているかどうかを判定します。すべての属性または指定した属性サブセット内を検索するようにバリデータを構成できます。

  • 文字セット・パスワード・バリデータ

    このバリデータは、提示されたパスワードが許容されるかどうかを判定するために、1つ以上のユーザー定義文字セット内の文字が必要な数だけそのパスワードに含まれているかどうかをチェックします。たとえば、このバリデータでは、小文字、大文字、数字および記号がそれぞれ1つ以上パスワードに含まれているかどうかを確認できます。

    このバリデータでは、提示されたパスワードに、すべての構成済文字セットの文字ではなく、(use-any-ofプロパティで設定された)最小数の文字セットの文字が含まれているかも確認します。たとえば、4つの文字セットが構成されており、use-any-ofプロパティが3に設定されている場合、提示されたパスワードには4つの文字セットの文字のうち3つ以上が含まれている必要があります。ユーザーの必要に応じて、4つの構成済文字セットすべての文字をパスワードに含めることもできます。

    「パスワード・バリデータの値の構成」の例を参照してください。

  • 辞書パスワード・バリデータ

    このバリデータは、提示されたパスワードが許容されるかどうかを、指定された辞書ファイルにそのパスワード値が含まれているかどうかに基づいて判定します。サーバーに大きな辞書ファイルが装備されていますが、代替辞書も指定できます。この場合、辞書は、1行に1つのワードが含まれるプレーン・テキスト・ファイルである必要があります。

  • 長さに基づくパスワード・バリデータ

    このバリデータは、提示されたパスワードが許容されるかどうかを、そのパスワードに含まれる文字数が値の許容範囲内に収まっているかどうかに基づいて判定します。上限と下限の両方を定義できます。

  • 繰返し文字パスワード・バリデータ

    このバリデータは、提示されたパスワードが許容されるかどうかを、パスワード値内での任意の文字の連続使用回数に基づいて判定します。「aaaaaa」や「aaabbb」のような、同じ文字の繰返しで構成されている文字列がユーザー・パスワードに含まれていないことを確認します。

  • 類似に基づくパスワード・バリデータ

    このバリデータは、提示されたパスワードが許容されるかどうかを判定するために、ユーザーの現在のパスワードへの類似度を測定します。特に、レーベンシュタイン距離アルゴリズムを使用して、文字列間の変換における変更(文字の挿入、削除または置換)の最小数を判定します。この使用により、ユーザーが新しいパスワードの設定時に現在のパスワードにわずかな変更しか行わないことを防止できます。

    ノート:

    このパスワード・バリデータを有効にするには、ユーザーの現在のパスワードにアクセスできるようにする必要があります。そのため、このパスワード・バリデータを有効化するには、この他に、パスワード・ポリシー構成内のpassword-change-requires-current-passwordプロパティをtrueに設定する必要があります。

  • 一意文字パスワード・バリデータ

    このバリデータは、提示されたパスワードが許容されるかどうかを、パスワード内に含まれる一意の文字数に基づいて判定します。この使用により、「aabbcc」や「abcabc」のような、少数の文字しか含まれない単純なパスワードを防止できます。

30.8.1 コマンド行を使用したパスワード・バリデータの管理

dsconfigコマンドを使用して、パスワード・バリデータとそのプロパティを管理します。

次の各トピックでは、dsconfigコマンドを使用したパスワード・バリデータの管理についてステップを追って説明します。

30.8.1.1 使用可能なパスワード・バリデータの表示

使用可能なパスワード・バリデータのリストを表示するには:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  list-password-validators
Password Validator                  : Type                : enabled
------------------------------------:---------------------:--------
Attribute Value                     : attribute-value     : true
Character Set                       : character-set       : true
Dictionary                          : dictionary          : false
Length-Based Password Validator     : length-based        : true
Repeated Characters                 : repeated-characters : true
Similarity-Based Password Validator : similarity-based    : true
Unique Characters                   : unique-characters   : true
30.8.1.2 パスワード・バリデータのプロパティの表示

パスワード・バリデータのプロパティを表示するには:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  get-password-validator-prop --validator-name "Length-Based Password Validator"
Property            : Value(s)
--------------------:---------
enabled             : true
max-password-length : 0
min-password-length : 8
30.8.1.3 パスワード・バリデータの有効化または無効化

デフォルトでは、辞書バリデータ以外のすべてのパスワード・バリデータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。

dsconfigコマンドを使用して、enabledプロパティをtrueまたはfalseに設定します。たとえば、長さに基づくパスワード・バリデータを無効化するには、enabledプロパティを次のように設定します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-validator-prop --validator-name "Length-Based Password Validator" \
  --set enabled:false
30.8.1.4 パスワード・バリデータの値の構成

パスワード・バリデータのプロパティを構成するには、dsconfigコマンドを使用します。たとえば、パスワードは8文字以上の長さにする必要があることを指定するには、min-password-lengthプロパティを次のように設定します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-validator-prop --validator-name "Length-Based Password Validator" \
  --set min-password-length:8

4つの構成済文字セットの文字のうち3つ以上をパスワードに含める必要があることを指定するには、次のようにdsconfigを使用します。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-validator-prop --validator-name "Character Set" \
  --set enabled:true
  --set allow-unclassified-characters:false
  --set character-set:3:ABCDEFGHIJKLMNOPQRSTUVWXYZ
  --set character-set:3:abcdefghijklmnopqrstuvwxyz
  --set character-set:2:0123456789
  --set character-set:2:~!@#$%^&*()-_=+[]{}|;:,.<>/?
  --set use-any-of:3

この例では、ユーザーの必要に応じて、4つの構成済文字セットすべての文字をパスワードに含めることもできます。

30.8.1.5 パスワード・バリデータのパスワード・ポリシーへの関連付け

パスワード・バリデータは、特定のパスワード・ポリシーに関連付けられているときにのみ考慮されます。

パスワード・バリデータをパスワード・ポリシーに関連付けるには、そのパスワード・ポリシーのpassword-validatorプロパティを設定します。

たとえば、パスワードが特定の文字数を順守しているかどうかをデフォルト・パスワード・ポリシーでチェックすることを指定するには、デフォルト・パスワード・ポリシーのpassword-validatorプロパティを次のように設定します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop --policy-name "Default Password Policy" \
  --set password-validator:"Length-Based Password Validator"
30.8.1.6 LDAPサブエントリとしてのパスワード・バリデータの定義

LDAPサブエントリは、サーバーの操作データを保持する特殊エントリです。それらは、サブエントリ制御リクエスト制御を含めることで明示的にリクエストされない場合は、クライアントに返されない点で、操作属性に似ています。

パスワード・バリデータをLDAPサブエントリとして定義すると、パスワード・バリデータがユーザー・データとともに格納されるようになるため、レプリケート可能になります。サブエントリ・パスワード・バリデータは、サブエントリ・パスワード・ポリシーにのみアタッチできます。

同じ親の下に任意の数のサブエントリ・パスワード・バリデータを持つことができます。サブエントリ・パスワード・ポリシーにマップする際に、完全なDNを指定する必要があります。パスワード・バリデータがサブエントリ・パスワード・ポリシーにアタッチされていない場合、デフォルト・パスワード・ポリシーに構成されているバリデータを継承します。

サブエントリ・パスワード・バリデータを定義するには、LDIFファイル(length-based.LDIF)にパスワード・バリデータを作成し、ldapmodifyを使用してデータに追加します。

次の例では、長さに基づくパスワード・バリデータを次のプロパティで作成します。許可されるパスワードの最大長は25文字です。許可されるパスワードの最小長は10文字です。

  1. 次のコマンドを実行します:
    dn: cn=LengthBasedSubentryPV,ou=people,dc=example,dc=com
    changeType: add
    objectClass: top
    objectClass: ds-cfg-password-validator
    objectClass: ds-cfg-length-based-password-validator
    objectClass: subentry
    ds-cfg-enabled: true
    ds-cfg-max-password-length: 25
    cn: Length-Based Subentry PV
    ds-cfg-java-class: org.opends.server.extensions.LengthBasedPasswordValidator
    ds-cfg-min-password-length: 10
    subtreeSpecification: {}

    ノート:

    subtreeSpecificationを空のままにします。この属性値はパスワード・バリデータでは考慮されません。
  2. ldapmodifyコマンドを使用して、エントリをディレクトリに追加します。
    ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -w password \
     --defaultAdd --filename length-based.ldif
    Processing ADD request for
    cn=LengthBasedSubentryPV,ou=people,dc=example,dc=com
    ADD operation successful for DN
    cn=LengthBasedSubentryPV,ou=people,dc=example,dc=com
  3. 次のLDIFファイル(map-pwp-validator.LDIF)を作成して、前述の作成済パスワード・バリデータをサブエントリ・パスワード・ポリシーにマップします。
    dn: cn=subEntryPasswordPolicy,ou=people,dc=example,dc=com
    changeType: modify
    add: objectClass
    objectClass: oudPwdPolicyAdvanced
    -
    add: ds-cfg-password-validator
    ds-cfg-password-validator:
    cn=LengthBasedSubentryPV,ou=people,dc=example,dc=com
  4. ldapmodifyコマンドを使用して、エントリをディレクトリに追加します。
    ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -w password \
     -a -f map-pwp-validator.ldif
    Processing MODIFY request for
    cn=subEntryPasswordPolicy,ou=people,dc=example,dc=com
    MODIFY operation successful for DN
    cn=subEntryPasswordPolicy,ou=people,dc=example,dc=com

同様に、ldapmodifyを使用して、サブエントリ・パスワード・バリデータに対する変更操作を実行できます。OUDは、サブエントリ・パスワード・バリデータの削除操作に対して参照整合性チェックを実行します。パスワード・バリデータがサブエントリ・パスワード・ポリシーのいずれかによって参照されている場合、OUDはエラーをスローします。

30.8.2 OUDSMを使用したパスワード・バリデータの管理

Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・バリデータとそのプロパティを管理します。

次の各トピックでは、OUDSMインタフェースを使用したパスワード・バリデータの管理についてステップを追って説明します。

30.8.2.1 使用可能なパスワード・バリデータの表示

使用可能なパスワード・バリデータのリストを表示するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・バリデータ」要素を開きます。

    使用可能なパスワード・バリデータが表示されます。

30.8.2.2 パスワード・バリデータのプロパティの表示

パスワード・バリデータのプロパティを表示するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・バリデータ」要素を開きます。

    使用可能なパスワード・バリデータが表示されます。

  4. パスワード・バリデータをクリックすると、右側のペインにそのプロパティが表示されます。
30.8.2.3 パスワード・バリデータの有効化または無効化

デフォルトでは、辞書バリデータ以外のすべてのパスワード・バリデータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。

パスワード・バリデータを有効化または無効化するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・バリデータ」要素を開きます。

    使用可能なパスワード・バリデータが表示されます。

  4. パスワード・バリデータをクリックすると、右側のペインにそのプロパティが表示されます。
  5. バリデータを有効化する場合は「有効」チェック・ボックスを選択し、バリデータを無効化する場合はこのチェック・ボックスの選択を解除します。
  6. 「適用」をクリックして、構成変更を保存します。
30.8.2.4 パスワード・バリデータのプロパティの構成

OUDSMを使用してパスワード・バリデータのプロパティを構成するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・バリデータ」要素を開きます。

    使用可能なパスワード・バリデータが表示されます。

  4. パスワード・バリデータをクリックすると、右側のペインにそのプロパティが表示されます。
  5. 必要なプロパティを構成し、「適用」をクリックして構成変更を保存します。
30.8.2.5 パスワード・バリデータのパスワード・ポリシーへの関連付け

パスワード・バリデータは、特定のパスワード・ポリシーに関連付けられているときにのみ考慮されます。

パスワード・バリデータをパスワード・ポリシーに関連付けるには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
  2. 「セキュリティ」タブを選択します。
  3. 「パスワード・ポリシー」要素を開きます。

    使用可能なパスワード・ポリシーが表示されます。

  4. パスワード・ポリシーをクリックすると、右側のペインにそのプロパティが表示されます。
  5. 右側のペインで「構文」要素を開きます。
  6. 「パスワード・バリデータ」リストから、このパスワード・ポリシーに関連付けるパスワード・バリデータを選択します。
  7. 「適用」をクリックして、構成変更を保存します。

30.9 パスワード・ジェネレータの管理

パスワード・ジェネレータは、ユーザー・アカウントのパスワードを生成するために使用されます。パスワード・ジェネレータはパスワード変更拡張操作とともに使用され、このジェネレータによって、クライアントからのリクエストにパスワードが含まれていない場合に新しいパスワードが生成されます。

有効なパスワード・ポリシーにパスワード・ジェネレータが関連付けられていない場合、パスワード変更拡張操作によるユーザーのパスワードの自動生成は行われません。

パスワード・ジェネレータによって作成されたパスワードには、検証は適用されません。関連付けられたパスワード・バリデータの要件と一致するパスワードを作成するように、パスワード・ジェネレータを構成してください。

ディレクトリ・サーバー・インスタンスには、デフォルトで1つのパスワード・ジェネレータが構成されます。これはランダム・パスワード・ジェネレータです。次の各項では、dsconfigを使用したパスワード・ジェネレータの管理方法について説明します。

30.9.1 構成済パスワード・ジェネレータの表示

dsconfigコマンドを使用して、構成済パスワード・ジェネレータをリストします。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  list-password-generators
Password Generator        : Type   : enabled
--------------------------:--------:--------
Random Password Generator : random : true

30.9.2 パスワード・ジェネレータのプロパティの表示

dsconfigコマンドを使用して、パスワード・ジェネレータのプロパティを表示します。

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  get-password-generator-prop --generator-name "Random Password Generator"
Property               : Value(s)
-----------------------:-----------------------------------------------------
enabled                : true
password-character-set : alpha:abcdefghijklmnopqrstuvwxyz, numeric:0123456789
password-format        : "alpha:3,numeric:2,alpha:3"

パスワード文字セットは複数値プロパティであり、各値で異なる文字セットが定義されます。文字セットの書式は、セット名の後にコロンを1つ付け、次にセット内の文字を指定します。たとえば、alpha:abcdefghijklmnopqrstuvwxyzという値では、ASCIIのすべての英小文字を含む、alphaという文字セットが定義されます。

パスワード書式はカンマ区切りの要素リストであり、各要素はpassword-character-setプロパティで定義されている文字セット名および1つのコロンと、使用するそのセット内の文字数で構成されます。たとえば、デフォルト値alpha:3,numeric:2,alpha:3では、最初の3文字にalphaセット内の文字、次の2文字にnumericセット内の文字、最後の3文字にalphaセット内の文字をそれぞれ使用した、8文字のパスワードが生成されます。

30.9.3 パスワード・ジェネレータの有効化または無効化

デフォルトで、ランダム・パスワード・ジェネレータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。dsconfigコマンドを使用して、enabledプロパティをtrueまたはfalseに設定します。

たとえば、ランダム・パスワード・ジェネレータを無効化するには、enabledプロパティを次のように設定します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-generator-prop --generator-name "Random Password Generator" \
  --set enabled:false

30.9.4 パスワード・ジェネレータのプロパティの構成

パスワード・ジェネレータのプロパティを構成するには、dsconfigコマンドを使用します。

たとえば、ランダム・パスワード・ジェネレータによって生成するパスワードを、3つの文字、3つの数字および定義した2つの特殊文字の書式にする必要があることを指定するには、対応するプロパティを次のように設定します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-generator-prop --generator-name "Random Password Generator" \
  --add password-character-set:special:\!@#\$%^&*\(\) 
  --set password-format:alpha:3,numeric:3,special:2

30.9.5 パスワード・ジェネレータのパスワード・ポリシーへの関連付け

パスワード・ジェネレータは、特定のパスワード・ポリシーに関連付けられているときにのみ考慮されます。パスワード・ポリシーのpassword-generatorプロパティを設定し、dsconfigを使用してパスワード・ジェネレータをパスワード・ポリシーに関連付けます。

たとえば、Special Generatorという名前の新しいパスワード・ジェネレータをデフォルト・パスワード・ポリシーで使用することを指定するには、デフォルト・パスワード・ポリシーのpassword-generatorプロパティを次のように設定します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -X -n \
  set-password-policy-prop --policy-name "Default Password Policy" \
  --set password-generator:"Special Generator"

30.9.6 LDAPサブエントリとしてのパスワード・ジェネレータの定義

LDAPサブエントリは、サーバーの操作データを保持する特殊エントリです。それらは、サブエントリ制御リクエスト制御を含めることで明示的にリクエストされない場合は、クライアントに返されない点で、操作属性に似ています。

パスワード・ジェネレータをLDAPサブエントリとして定義すると、パスワード・ジェネレータがユーザー・データとともに格納されるようになるため、レプリケート可能になります。サブエントリ・パスワード・ジェネレータは、サブエントリ・パスワード・ポリシーにのみアタッチできます。

同じ親の下に任意の数のサブエントリ・パスワード・ジェネレータを持つことができます。サブエントリ・パスワード・ポリシーにマップする際には、完全なDNを指定する必要があります。パスワード・ジェネレータがサブエントリ・パスワード・ポリシーにアタッチされていない場合、デフォルト・パスワード・ポリシーに構成されているジェネレータを継承します。

サブエントリ・パスワード・ジェネレータを定義するには、LDIFファイル(length-based.LDIF)にパスワード・ジェネレータを作成し、ldapmodifyを使用してデータに追加します。

  1. 次の例では、ランダム・パスワード・ジェネレータを作成します:
    dn: cn=RandomPassGenerator,ou=people,dc=example,dc=com
    changetype: add
    objectClass: ds-cfg-random-password-generator
    objectClass: top
    objectClass: ds-cfg-password-generator
    objectClass: subentry
    ds-cfg-enabled: true
    ds-cfg-password-format: alpha:3,numeric:2,alpha:3
    cn: RandomPassGenerator
    ds-cfg-java-class: org.opends.server.extensions.RandomPasswordGenerator
    ds-cfg-password-character-set: alpha:abcdefghijklmnopqrstuvwxyz
    ds-cfg-password-character-set: numeric:0123456789
    subtreeSpecification: {}

    ノート:

    subtreeSpecificationを空のままにします。この属性値はパスワード・バリデータでは考慮されません。
  2. ldapmodifyコマンドを使用して、エントリをディレクトリに追加します。
    ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -w password \
     --defaultAdd --filename random-generator.ldif
    Processing ADD request for
    cn=RandomPassGenerator,ou=people,dc=example,dc=com
    ADD operation successful for DN
    cn=RandomPassGenerator,ou=people,dc=example,dc=com
  3. 次のLDIFファイル(map-pwp-generator.LDIF)を作成して、前述の作成済パスワード・ジェネレータをサブエントリ・パスワード・ポリシーにマップします。
    dn: cn=subEntryPasswordPolicy,ou=people,dc=example,dc=com
    changeType: modify
    add: objectClass
    objectClass: oudPwdPolicyAdvanced
    -
    add: ds-cfg-password-generator
    ds-cfg-password-generator:
    cn=RandomPassGenerator,ou=people,dc=example,dc=com
  4. ldapmodifyコマンドを使用して、エントリをディレクトリに追加します。
    ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -w password \
     -a -f map-pwp-generator.ldif
    Processing MODIFY request for
    cn=subEntryPasswordPolicy,ou=people,dc=example,dc=com
    MODIFY operation successful for DN
    cn=subEntryPasswordPolicy,ou=people,dc=example,dc=com

同様に、ldapmodifyを使用して、サブエントリ・パスワード・ジェネレータに対する変更操作を実行できます。OUDは、サブエントリ・パスワード・ジェネレータの削除操作に対して参照整合性チェックを実行します。パスワード・ジェネレータがサブエントリ・パスワード・ポリシーのいずれかによって参照されている場合、OUDはエラーをスローします。

ノート:

OUDSMでは、サブエントリ・パスワード・バリデータおよびサブエントリ・パスワード・ジェネレータはサポートされません。