この章では、Oracle Unified Directoryのパスワード・ポリシーのコンポーネントについて説明し、dsconfig
ユーティリティおよびOracle Directory Services Manager (ODSM)を使用してパスワード・ポリシーを構成および管理するのに役立つ例を示します。
パスワード・ポリシーは、システムでのパスワードの使用を制御するルール・セットであり、ディレクトリに対して採用するあらゆるセキュリティ戦略に不可欠のコンポーネントです。
Oracle Unified Directoryには、一般ユーザー用のデフォルトのパスワード・ポリシーとルート・ユーザー用のデフォルトのパスワード・ポリシーが含まれています。これらのデフォルトのパスワード・ポリシーは、ディレクトリ・サーバーの構成内にあり、変更可能です。
デフォルトのパスワード・ポリシーに加えて、Oracle Unified Directoryでは複数のパスワード・ポリシーをサポートしているため、特定のユーザー・セットに対象を特化したパスワード・ポリシーを作成および構成できます。カスタマイズしたパスワード・ポリシーをLDAPサブエントリとして定義し、ユーザー・データとともに格納できます。それにより、カスタマイズしたポリシーをサーバー間でレプリケートできるようになります。
この章の内容は以下のとおりです。
すべてのパスワード・ポリシーには、次の構成可能なコンポーネントが含まれます:
パスワードの複雑性要件。パスワードの構成と必要な文字数を指定します。通常、パスワードで使用する最小文字数、使用可能な文字のタイプおよび必要な数字の数を指定します。たとえば、多くの機関が、最小文字数を7文字または8文字とし、数字と特殊文字が1文字ずつ含まれていることと、大文字と小文字の両方が含まれていることを要件としています。
パスワード履歴。以前のパスワードを再利用できるようになるまでに、ユーザーが使用する必要がある一意のパスワード数を決定します。
最大パスワード経過時間。パスワードをどのくらいの期間使用したら、変更を許可または要求されるかを決定します。
最小パスワード経過期間。新しいパスワードをどのくらいの期間維持したら、変更できるかを決定します。
初回ログイン。システムへのユーザーの初回ログイン時に、ユーザーにパスワードの変更を要求するかどうかを決定します。
パスワード変更の認可。ユーザーがパスワードを変更するための条件を示します。たとえば、ユーザーがパスワードを変更するには、新しいパスワードの入力前に現在のパスワードを入力してアイデンティティが認証を受ける必要があるようにサーバーを構成できます。
アカウント・ロックアウト。アカウントを無効にしてユーザーがアクセスできないようにするときの条件を決定します。たとえば、ユーザーが3回試行しても適切に認証されない場合、4回目の試行でアカウントをロックするようにサーバーを構成できます。その後、そのユーザーのアカウントのロックは、管理者が手動で解除する必要があります。
パスワード記憶スキーム。パスワードの暗号化方法とサーバーでの記憶方法を決定します。サーバー上の特定のアカウントの記憶スキームを構成できます。たとえば、ルート・ユーザーのパスワードは、このアカウントおよびその特権が持つ重要性から、強力な暗号化を必要とします。そのため、ルート・ユーザーのパスワードの記憶には、SSHA-512記憶スキームを使用するように構成できます。
注意: Oracle Unified Directoryには、ユーザー・エントリおよび適用されるパスワード・ポリシーの両方に含まれる情報に基づいて、ユーザーのパスワードが期限切れになる正確な時間を動的に計算できる「パスワードの期限切れ時間」 仮想属性が用意されています。
仮想属性の詳細は、第18.11項「仮想属性の構成」を参照してください。 |
パスワードの検証は、パスワード・ポリシーで直接的には処理されず、DNがパスワード・ポリシー内に存在する特定のパスワード・バリデータ・エントリによって処理されます。詳細は、第30.8項「パスワード・バリデータの管理」を参照してください。
デフォルトのパスワード・ポリシーには、次の表で説明する、多くの構成可能なプロパティが含まれています。
表30-1 デフォルト・パスワード・ポリシーのプロパティ
プロパティ | 説明 |
---|---|
|
パスワード・ポリシーの処理中にイベントが発生した場合、メッセージを送信します。このプロパティを使用して、このパスワード・ポリシーに使用するアカウント・ステータス通知ハンドラのDNを指定します。 |
|
非推奨。ユーザーのパスワードの有効期限が切れた後に、そのユーザーにパスワードの変更を許可するかどうかを示します。ユーザーはリクエストを匿名で発行し、現在のパスワードをリクエストに含める必要があります。有効な場合、この機能によってパスワード変更拡張操作が使用されます。この操作はデフォルトで初期構成時に有効化されます。 |
|
ユーザーが自分のパスワードを変更するためのアクセス制御権を保有している場合に、そのユーザーにこの変更を許可するかどうかを示します。 |
|
このパスワード・ポリシーでクリア・テキスト・パスワードのエンコードに使用するパスワード記憶スキームを指定します。 第D.15.9項「パスワード記憶スキーム」を参照してください。 |
|
このパスワード・ポリシーで非推奨と見なすパスワード記憶スキームのDNを指定します。このパスワード・ポリシーを持つユーザーがサーバーに対する認証を行ったときに、そのユーザーのパスワードが非推奨のスキームでエンコードされている場合、その値は削除され、デフォルトのパスワード記憶スキームを使用してエンコードされた値に置き換えられます。 |
|
パスワード有効期限切れ警告がユーザーにまだ表示されていない場合でも、そのユーザーのパスワードを有効期限切れにすることが可能かどうかを示します。これを |
|
アカウントの初回使用時にパスワードの変更をユーザーに要求し、その他の操作はいずれもパスワードを変更しないと実行できないようにするかどうかを示します。 |
|
管理パスワードのリセット後にパスワードを変更するようにユーザーに要求し、他の操作はいずれもパスワードを変更しないと実行できないようにするかどうかを示します。 |
|
ユーザーに許可する最大猶予ログイン数を指定します。猶予ログインによって、ユーザーは、パスワードの有効期限が切れた後でもサーバーに対して認証を行うことができますが、パスワードを変更するまでは他の操作はいずれも実行できません。 |
|
ユーザー・アカウントがアイドル状態を維持できる(つまり、ディレクトリに対する認証を行わないでいられる)最大時間を指定します。この時間が経過すると、アカウントはサーバーによってロックされます。このアクションは、 |
|
ユーザーの最終ログイン時刻の保持に使用する、ユーザーのエントリ内の属性名を指定します。これを指定する場合、指定する属性は、サーバー・スキーマに操作属性として定義されているか、ユーザーのエントリの少なくとも1つのオブジェクト・クラスで許可されている必要があります。この目的で、 |
|
最終ログイン時刻値の生成に使用する書式文字列を指定します。 |
|
認証に失敗したユーザー・アカウントをロック状態にする時間を指定します。この時間が経過すると、アカウントのロックは自動的に解除されます。値 |
|
認証に何回失敗したら、ユーザー・アカウントを一時的または永久的にロックするかを指定します。値ゼロは、自動ロックアウトを有効化しないことを表します。 |
|
ロックアウト対象の失敗として前回の認証試行の失敗を加算する場合の最大時間を指定します。注意: 認証に成功すると、以前に失敗したすべての試行のレコードが常にクリアされます。値 |
|
多数の認証失敗が発生した後に、ユーザー・アカウントを一時的にロックする時間の長さを指定します。この属性の値は、秒、分、時間、日または週の単位の後に続く整数です。0秒の値は、アカウントが一時的にロックされることはないことを示します。 |
|
ユーザー・アカウントを一時的にロックするまでに、ユーザーが認証に何回まで失敗が許されるかを指定します。0の値は、失敗によってアカウントが一時的にロックされることはないことを示します。 |
|
ユーザーが同じパスワードを維持できる最大時間を指定します。この時間が経過すると、ユーザーは新しいパスワードを選択する必要があります。これは、多くの場合パスワードが有効期限切れになるまでの間隔と呼ばれます。値 |
|
ユーザーのパスワードが管理者によってリセットされた後に、そのユーザーによるパスワードの変更が可能な最大時間を指定します。この時間が経過すると、そのユーザーはロックアウトされます。これは、 |
|
ユーザーがパスワード値を維持する必要がある最小時間を指定します。この時間が経過すると、ユーザーはパスワード値を再び変更できるようになります。ゼロ以外の値を指定することによって、ユーザーが、前のパスワードを履歴からフラッシュして再利用可能にするために、パスワードの変更を繰り返すことを確実に防止できます。 |
|
ユーザーのエンコードされたパスワードを保持する、ユーザーのエントリ内の属性を指定します。指定する属性は、サーバーのスキーマで定義されている必要があり、またユーザー・パスワード構文または認証パスワード構文のどちらかを持っている必要があります。通常、ユーザー・パスワード構文(OID: |
|
ユーザーが新しいパスワードを設定するときに、現在のパスワードを入力する必要があるかどうかを示します。これを |
|
パスワードの有効期限が間もなく切れることを示すユーザーへの通知を開始する、パスワード有効期限前の時間を指定します。 |
|
このパスワード・ポリシーとともに使用するパスワード・ジェネレータのDNを指定します。パスワード・ジェネレータはパスワード変更拡張操作とともに使用され、このジェネレータによって、クライアントからのリクエストに新しいパスワードが含まれていない場合に新しいパスワードが生成されます。パスワード・ジェネレータのDNを指定しないと、パスワード変更拡張操作でユーザーのパスワードの自動生成は行われません。 |
|
パスワード履歴に保持するパスワード値の最大数を指定します。ユーザーのパスワードが変更されるたびに、サーバーは、提示された新しいパスワードを、現在のパスワードおよび履歴に格納されているすべてのパスワードと突き合せてチェックします。一致が検出された場合、ユーザーは新しいパスワードを使用できません。値ゼロは、パスワード履歴を保持しないことを表すか(パスワード履歴期間の値が |
|
以前に使用されたパスワードをユーザーのパスワード履歴内に有効として保持する最大時間を指定します。ユーザーのパスワードが変更されるたびに、サーバーは、提示された新しいパスワードを、現在のパスワードおよび履歴に格納されているすべてのパスワードと突き合せてチェックします。一致が検出された場合、ユーザーは新しいパスワードを使用できません。値 |
|
このパスワード・ポリシーとともに使用するパスワード・バリデータのDNを指定します。パスワード・バリデータはユーザーが新しいパスワードを指定しようとするたびに起動され、新しいパスワードが許容範囲内かどうかがこのバリデータによって判定されます。 |
|
ユーザーが |
|
古い最終ログイン時刻値に対して過去に使用された書式文字列を指定します。この値は、 |
|
このパスワード・ポリシーを持つすべてのユーザーがパスワードを変更する必要がある時点を指定します。このオプションは、パスワード有効期限とは別に作用します(つまり、パスワード有効期限が無効化されている場合でも、いずれかの時点ですべてのユーザーにパスワードの変更を強制します)。 |
|
このパスワード・ポリシーを持つユーザーが、SSLのようなセキュア通信メカニズム、またはパスワードをプクリア・テキストで公開しないDIGEST-MD5、EXTERNAL、GSSAPIなどのセキュアSASLメカニズムを使用して、安全に認証を行う必要があるかどうかを示します。 |
|
このパスワード・ポリシーを持つユーザーが、安全な方法で(SSLのようなセキュア通信チャネルを使用するなど)パスワード変更を行う必要があるかどうか示します。 |
この項の後半では、これらのプロパティの管理方法について説明します。内容は次のとおりです。
dsconfig
またはODSMを使用して、デフォルト・パスワード・ポリシーのプロパティを表示できます。
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
ODSMを使用したデフォルト・パスワード・ポリシーのプロパティの表示
ODSMを使用してプロパティを表示するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
「デフォルト・パスワード・ポリシー」を選択します。
パスワード・ポリシーのプロパティとその値が右側のペインに表示されます。
dsconfig
またはODSMを使用して、デフォルト・パスワード・ポリシーのプロパティを変更できます。
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
ODSMを使用したデフォルト・パスワード・ポリシーのプロパティの変更
ODSMを使用してプロパティを変更するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
「デフォルト・パスワード・ポリシー」を選択します。
パスワード・ポリシーのプロパティとその値が右側のペインに表示されます。
必要なプロパティを変更して「適用」をクリックします。
拡張プロパティの表示と変更は、ODSMでは行えません。
パスワード・ポリシー状態情報は、ユーザーごとに維持する必要があります。この情報は各ユーザー・エントリに操作属性のセットとして格納されます。これらの属性は、エンド・ユーザーや管理者によって直接変更されることを避けるため、NO-USER-MODIFICATION
フラグ付きで宣言されます。
次の表で説明するように、パスワード・ポリシーには、状態情報を保持する多くの操作属性が含まれます。
表30-2 パスワード・ポリシーの操作属性
属性 | 説明 |
---|---|
|
この属性は、ユーザーまたは管理者によってユーザーのパスワードが最後に変更された時間のタイムスタンプ(汎用時間形式)を保持します。これは、ユーザーのパスワードを設定または変更する追加、変更またはパスワード変更操作で自動的に設定され、消去や設定解除はされません。これは、最小または最大パスワード経過時間を施行する目的で、ユーザーのパスワードが最後に変更された時間の判定や、有効期限切れ警告通知を生成するかどうかの決定に使用されます。また、パスワード・リセット最大期間を施行するために |
|
この属性は、ユーザーのパスワードが期限切れになった後に、猶予ログインの最大回数を施行するために、そのユーザーが猶予期間ログインで認証された時間のタイムスタンプ(汎用時間形式)を保持します。これは、ユーザーが猶予期間ログインを使用して認証されたときは常に自動的に設定され、ユーザーのパスワードがユーザー自身によって変更されたり管理者によってリセットされたときは常に消去されます。 |
|
この属性は、パスワードが正しくないためにユーザーの認証試行が失敗した時間のタイムスタンプ(汎用時間形式)を保持します。これは、試行に何度も失敗するとその結果アカウントがロックされるよう、アカウントの最大失敗数の施行に使用されます。これは、認証失敗が発生ときは常に自動的に設定され、ユーザー認証が成功したとき(ロックアウトの発生前またはアカウントがロックされてロックアウト期間が経過した後)や、ユーザーのパスワードがユーザー自身によって変更されたり管理者によってリセットされたときは常に消去されます。 |
|
この属性は、以前のパスワードをタイムスタンプ(汎用時間形式)とともに保持します。 |
|
この属性は、認証試行に何度も失敗した後、ユーザーのアカウントがロックされた時間のタイムスタンプ(汎用時間形式)を保持します。アカウントがロックされていることを示すため、またパスワード・ロックアウト継続時間を経て、自動的にロックが解除される時期についての情報を提供するために使用されます。これは、ユーザーのパスワードが管理者によってリセットされたり、ロックアウト継続時間が経過した後に(認証の成功や失敗にかかわらず)認証が試行されたときに自動的に消去されます。 注意: Oracle Unified Directoryパスワード・ポリシーの実装は、パスワード・ポリシーのドラフトで指定された動作とは大きく異なります。Oracle Unified Directoryの実装では、アカウント・ロックアウトが一時的なものか永続的なものかにかかわらず、この属性は常にアカウントがロックされた時間を保持します。パスワード・ポリシーのドラフトでは、一定期間後にアカウントを自動的にロック解除しない場合は、 |
|
この属性は、指定されたエントリのパスワード・ポリシーを保持します。パスワード・ポリシーによって制御される各オブジェクトは、 |
|
この属性は、関連付けられているユーザーに対して適用されるパスワード・ポリシーの構成エントリのDNを保持します。定義済の場合、有効な既存のパスワード・ポリシーの定義構成エントリまたはサブエントリを参照している必要があります。この属性がユーザーのエントリ内に存在するが、有効な構成エントリまたはサブエントリを参照していない場合、ユーザーは認証が許可されません。
|
|
この属性は、ユーザーのパスワードが管理者によってリセットされ、ユーザーが他の操作を実行できるようにするには、このパスワードを変更する必要がある場合に、ブール値の |
|
この属性は、ユーザーのアカウントが管理者によって手動で無効化されているために、そのユーザーのディレクトリ・サーバーに対する認証が許可されない場合に、ブール値の |
|
この属性は、最終ログイン時間の情報を保持するためのデフォルト属性として使用されます(この機能が有効化されている場合)。機能が有効になっている場合、この属性を使用するための要件はありません。管理者の選択によって、代替属性を構成できます。 |
|
この属性は、パスワード・ポリシー構成エントリの |
|
この属性は、ユーザーが今後のパスワード有効期限について最初に警告された時間のタイム・スタンプ(汎用時間形式)を保持します。これは、ユーザーに有効期限の警告が表示されたかどうかを判定し、表示された場合は新しく調整された有効期限を判定するために、 |
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オブジェクト・クラスでサポートされている属性
属性 | 説明 |
---|---|
|
パスワード・ポリシーが適用される属性の名前を保持します。たとえば、パスワード・ポリシーは |
|
この属性は、次にパスワードを修正するまでの秒数を保持します。 この属性が存在しない場合は、 |
|
この属性は、変更されたパスワードが有効期限切れになるまでの秒数を保持します。 この属性が存在しない場合、または値が |
|
この属性は、 この属性が存在しない場合、または値が |
|
この属性は、変更または追加中に、パスワードの品質が検証される方法を示します。この属性が存在しない場合、または値が |
|
品質チェックが有効な場合、この属性はパスワードで使用しなくてはいけない最小文字数を保持します。属性が存在しない場合、パスワード最小文字数は適用されません。ハッシュ・パスワードやその他の理由によりサーバーが長さをチェックできない場合は、サーバーは |
|
この属性は、パスワードの有効期限切れ警告メッセージが認証中のユーザーに戻されるまでの最大秒数を指定します。 この属性が存在しない場合、または値が |
|
この属性は、期限切れのパスワードを認証に使用できる回数を指定します。この属性が存在しない場合、または値が |
|
この属性は、値が この属性が存在しない場合、または値が |
|
この属性は、バインド試行何度もに失敗したためにそのパスワードを認証に使用できなくなるまでの秒数を保持します。この属性が存在しない場合、または値が |
|
この属性は、認証にパスワードを使用できなくなるまでのバインド試行の連続失敗回数を指定します。この属性が存在しない場合、または値が |
|
この属性は、認証に成功しなくても、失敗カウンタからパスワードの失敗がパージされるまでの秒数を保持します。 この属性が存在しない場合、または値が |
|
この属性の値が |
|
この属性は、変更操作は引き続きアクセス制御の対象ですが、ユーザーが自分のパスワードを変更できるかどうかを示します。この属性が存在しない場合は、 |
|
この属性は、パスワードの変更時に新しいパスワードとともに現在のパスワードを送信する必要があるかを指定します。この属性が存在しない場合は、 |
ディレクトリ・サーバー構成内(cn=config
の下)に存在するパスワード・ポリシーは、レプリケートされません。構成情報全般はレプリケートされず、各ディレクトリ・サーバー・インスタンス固有のものです。デフォルト・パスワード・ポリシーを変更する場合は、レプリケート・トポロジ内の各ディレクトリ・サーバー・インスタンスで同じ変更を行う必要があります。同様に、cn=config
の下にある特殊パスワード・ポリシーも、他のディレクトリ・サーバーにはコピーされません。
サブエントリとして(つまり、データの一部として)作成されたパスワード・ポリシーは、レプリケートされます。サブエントリとしてのパスワード・ポリシーの作成の詳細は、第30.6.7項「LDAPサブエントリとしてのパスワード・ポリシーの定義」を参照してください。
レプリケート環境でのパスワード・ポリシーの使用に関するその他の考慮事項を次に示します:
ディレクトリ・サーバーは、ユーザー・エントリに格納されているすべてのパスワード情報(現在のパスワード、パスワード履歴、パスワード有効期限)をレプリケートします。
ユーザーが自分のパスワードを変更した場合、すべてのレプリカでパスワードが新しいパスワードに更新されるまでにしばらく時間がかかる場合があります。
1人のユーザーに対してパスワード有効期限の警告が複数(レプリケートされた各サーバーから1つずつ)表示されることがあります。
パスワード・ポリシーを最も容易に構成する方法は、dsconfig
コマンドを使用して、既存のパスワード・ポリシーの管理とパスワード・ポリシー・プロパティの変更を行うことです。
このセクションには次のトピックが含まれます:
次の例では、dsconfig
を使用して、デフォルト・パスワード・ポリシーの様々なプロパティを変更します。
例30-1 アカウント・ロックアウトの構成
次のアカウント・ロックアウト機能を構成できます。
ロックアウト対象の失敗数。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-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-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"
異なる構成オプションを使用して複数のパスワード・ポリシーを構成し、格納できます。ディレクトリ・サーバー・インスタンスを設定すると、そのインスタンスでデフォルト・パスワード・ポリシーが使用され、ルート・ユーザー(cn=Directory Manager
アカウントなど)を除くすべてのユーザー・エントリにそのポリシーが適用されます。
ディレクトリ内の特定のグループ用に、デフォルト・パスワード・ポリシーを変更したり、新しいパスワード・ポリシーを作成したりすることが可能です。特定のプロパティがパスワード・ポリシーに存在しない場合、サーバーはそのプロパティをデフォルト・パスワード・ポリシーから読み取ります。つまり、すべてのパスワード・ポリシーは、そのデフォルト値をデフォルト・パスワード・ポリシーから継承します。
次のコマンドでは、新しいパスワード・ポリシーが作成され、default-password-storage-scheme
、lockout-duration
、lockout-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.2項「デフォルト・パスワード・ポリシーのプロパティの使用」を参照してください。
初回ログイン・パスワード・ポリシーは、システムへの最初のログイン時にパスワードを変更するようにユーザーに要求する特殊パスワード・ポリシーです。通常、管理者が新規作成したアカウント用に新しい一時パスワードを設定し、この一時パスワードがユーザーの初回ログインに使用されます。初回ログイン後、ユーザーは自分のパスワードを作成するように要求されます。
初回ログイン・パスワード・ポリシーを作成するには、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.2項「デフォルト・パスワード・ポリシーのプロパティの使用」を参照してください。
パスワード・ポリシーを個別ユーザーに割り当てるには、対象のユーザーのエントリにds-pwp-password-policy-dn
属性を追加します。それにより、構成したパスワード・ポリシーが、そのユーザーに対してサーバーで使用されるようになります。
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
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
ユーザーが自分のパスワード・ポリシーを変更できないようにするには、ルート・エントリに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");)
パスワード・ポリシーをユーザーのグループに割り当てるには、特定の基準に一致するすべてのエントリに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"
LDAPサブエントリは、サーバーの操作データを保持する特殊エントリです。それらは、サブエントリ制御リクエスト制御を含めることで明示的にリクエストされない場合は、クライアントに返されない点で、操作属性に似ています。
パスワード・ポリシーをLDAPサブエントリとして定義すると、パスワード・ポリシーがユーザー・データとともに格納されるようになるため、レプリケート可能になります。
サブエントリ・パスワード・ポリシーは、構成で定義されているデフォルト・パスワード・ポリシーよりも優先されます。サブエントリ・パスワード・ポリシーに含まれていない設定は、デフォルト・パスワード・ポリシーから継承されます。
有効範囲が重なっている複数のパスワード・ポリシーが同じ親ノードに定義されている場合、その有効範囲内のエントリに適用するパスワード・ポリシー・サブエントリの選択は決定できません。そのため、パスワード・ポリシーの定義時には、他のポリシーとの間で競合が発生しないようにする必要があります。
サブエントリ・パスワード・ポリシーでは、パスワード・ポリシーの標準のプロパティのみを使用する必要があります。サブエントリ・パスワード・ポリシーに、Oracle Unified Directory固有のパスワード・ポリシー拡張を含めることはできません。
サブエントリ・パスワード・ポリシーの場合、パスワード・バリデータとパスワード・ジェネレータは常にデフォルトのサーバー・パスワード・ポリシーから継承します。個々のパスワード・ポリシー・サブエントリに対するパスワード・バリデータまたはパスワード・ジェネレータの定義は行えません。
サブエントリ・パスワード・ポリシーを定義するには、LDIFファイルにパスワード・ポリシーを作成し、ldapmodify
を使用してそのファイルをデータに追加します。パスワード・ポリシーの適用先エントリを指定するには、サブエントリ・サブツリーの指定でLDAPフィルタを追加します。
次の例では、管理者のグループにのみ適用するパスワード・ポリシーを作成します。このパスワード・ポリシーの指定内容は次のとおりです:
ユーザーがパスワード試行に3回連続して失敗したら、そのユーザーのアカウントをロックします。
失敗間隔は300秒とし、この経過後は、以前の失敗した認証試行についてはロックアウト対象の失敗として加算しません。
ロックアウト期間は300秒とし、この経過後は、ロックを自動的に解除します。
このパスワード・ポリシーの適用先ユーザーは、自分のパスワードを変更できます。
このパスワード・ポリシーを持つユーザーは、資格証明の公開を回避できる安全な方法を使用して自分のパスワードを変更する必要があります。
パスワード・ポリシーを指定するエントリを含む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)" }
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
不要になった任意のパスワード・ポリシーを配置場所のディレクトリから削除できます。ただし、デフォルト・パスワード・ポリシーとデフォルト・ルート・ユーザー・ポリシーは削除できません。
実際の操作では、まず、削除を計画しているパスワード・ポリシーを持つユーザーをチェックし、ユーザーを新しいパスワード・ディレクトリに移動します。その後、以前のパスワード・ポリシーを削除します。パスワード・ポリシーを削除したときに、削除したパスワード・ポリシーをまだ持っているユーザーがいる場合、そのユーザーは引き続き以前のパスワード・ポリシーを指す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"
ODSMを使用してパスワード・ポリシーを管理できます。この方法について次の各項で説明します。
ODSMを使用して、サーバーに構成されているすべてのパスワード・ポリシー・サブエントリを表示する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー・サブエントリ」要素を開きます。
すべてのパスワード・ポリシー・サブエントリのDNがリストされます。
パスワード・ポリシー・サブエントリの詳細を表示するには、そのDNを選択します。
右側のペインに、そのパスワード・ポリシー・サブエントリのプロパティが表示されます。
パスワード・ポリシー・サブエントリのいずれかの面を変更するには、必要な値を変更して「適用」をクリックします。
使用可能なすべてのプロパティとその値の詳細は、Oracle Unified Directory構成リファレンスのパスワード・ポリシーに関する項を参照してください。
ODSMを使用して新しいパスワード・ポリシー・サブエントリを作成する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー・サブエントリ」要素を開きます。
「追加」アイコンをクリックします。
右側のペインに、そのパスワード・ポリシー・サブエントリのプロパティが表示されます。
「新規パスワード・ポリシー・サブエントリの作成」画面で、必須フィールドを設定します。
使用可能なすべてのプロパティとその値の詳細は、Oracle Unified Directory構成リファレンスのパスワード・ポリシーに関する項を参照してください。
パスワード・ポリシー・サブエントリの構成が完了したら、「作成」をクリックします。
ODSMを使用して既存のパスワード・ポリシー・サブエントリに基づく新しいパスワード・ポリシー・サブエントリを作成する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー・サブエントリ」要素を開きます。
新しいサブエントリのベースとするパスワード・ポリシー・サブエントリを選択します。
「類似追加」アイコンをクリックします。
右側のペインに、元のパスワード・ポリシー・サブエントリのプロパティが表示されます。
必要な値を変更します。
使用可能なすべてのプロパティとその値の詳細は、Oracle Unified Directory構成リファレンスのパスワード・ポリシーに関する項を参照してください。
新しいパスワード・ポリシー・サブエントリの構成が完了したら、「作成」をクリックします。
ODSMを使用してパスワード・ポリシー・サブエントリを削除する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー・サブエントリ」要素を開きます。
削除するパスワード・ポリシー・サブエントリを選択します。
「削除」アイコンをクリックします。
削除の確認を求められます。「OK」をクリックします。
ODSMを使用してパスワード・ポリシーのリストを表示する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
構成済パスワード・ポリシーのリストが表示されます。
パスワード・ポリシーを選択すると、そのプロパティが右側のペインに表示されます。
使用可能なすべてのプロパティとその値の詳細は、Oracle Unified Directory構成リファレンスのパスワード・ポリシーに関する項を参照してください。
ODSMを使用して構成済パスワード・ポリシーを変更するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
構成済パスワード・ポリシーのリストが表示されます。
プロパティを変更するパスワード・ポリシーを選択します。
注意:
|
ODSMを使用して新規パスワード・ポリシーを作成するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
「追加」アイコンをクリックします。
「パスワード・ポリシーの新規作成」画面で、必須プロパティを構成します。
使用可能なすべてのプロパティとその値の詳細は、Oracle Unified Directory構成リファレンスのパスワード・ポリシーに関する項を参照してください。
新しいパスワード・ポリシーの構成が完了したら、「作成」をクリックします。
ODSMを使用して既存のパスワード・ポリシーに基づく新しいパスワード・ポリシーを作成できます。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
新しいポリシーのベースとするパスワード・ポリシーを選択します。
「類似追加」アイコンをクリックします。
「パスワード・ポリシーの新規作成」画面で、作成する新しいポリシー用にプロパティを編集します。
使用可能なすべてのプロパティとその値の詳細は、Oracle Unified Directory構成リファレンスのパスワード・ポリシーに関する項を参照してください。
新しいパスワード・ポリシーの構成が完了したら、「作成」をクリックします。
ODSMを使用してパスワード・ポリシーを削除するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
削除するパスワード・ポリシーを選択します。
「削除」アイコンをクリックします。
「OK」をクリックして、削除を確定します。
パスワード記憶スキームは、サーバーで保管されるユーザー・パスワードをエンコードするためのメカニズムを提供します。ユーザーが入力したパスワードが正しいかどうかをサーバーは判断できますが、多くの場合、パスワードは、クリアテキスト・パスワードの内容をユーザーに決定させない方法でエンコードされます。
Oracle Unified Directoryは複数のパスワード記憶スキームをサポートしています。詳細は、第D.15.9項「パスワード記憶スキーム」を参照してください。
ODSMを使用してパスワード記憶スキームのリストを表示する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード記憶」要素を開きます。
パスワード記憶スキームのリストが表示されます。
ODSMを使用してパスワード記憶スキームを有効化または無効化する手順は次のとおりです:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード記憶」要素を開きます。
有効化または無効化するパスワード記憶スキームを選択します。
右側のペインで、必要に応じて、「有効」ボックスを選択するか、このボックスの選択を解除します。
「適用」をクリックして、変更を保存します。
パスワード・バリデータは、入力されたプレーン・テキスト・パスワードの使用が許容されるかどうかを判定するメカニズムを提供します。この検証によって、脆弱で容易に推測される可能性がある単純なパスワードをユーザーが選択するのを防止できます。実行可能な検証のタイプには次のものがあります:
指定されている最小文字数以上の文字がパスワードに含まれていることの確認
指定されている最大文字数を超える文字数がパスワードに含まれていないことの確認
各種文字セット(小文字、大文字、数字、記号など)の指定された文字数以上の文字がパスワードに含まれていることの確認
ユーザーが以前に使用したパスワードを再利用することの確実な防止(つまり、そのパスワードが以前のパスワードの履歴に含まれていないことの確認)
ユーザーがそのユーザーのエントリの別の属性値に一致するパスワードを選択することの確実な防止
パスワードが指定されたディレクトリに含まれていないことの確認
ユーザーのパスワード・ポリシーでは、そのユーザーが新しいパスワードを入力するたびに使用されるパスワード・バリデータ・セットが指定されます。パスワード・バリデータをアクティブ化するには、対応する構成エントリを有効化し、そのバリデータをアクティブ化するパスワード・ポリシーのpassword-validator
属性にそのエントリのDNを含める必要があります。
サーバーで次のパスワード・バリデータをデフォルトで使用できます:
属性値パスワード・バリデータ
このバリデータは、提示されたパスワードの使用が許容されるかどうかを判定するために、そのパスワードがユーザーのエントリ内のいずれかの属性に含まれているかどうかを判定します。すべての属性または指定した属性サブセット内を検索するようにバリデータを構成できます。
文字セット・パスワード・バリデータ
このバリデータは、提示されたパスワードが許容されるかどうかを判定するために、1つ以上のユーザー定義文字セット内の文字が必要な数だけそのパスワードに含まれているかどうかをチェックします。たとえば、このバリデータでは、小文字、大文字、数字および記号がそれぞれ1つ以上パスワードに含まれているかどうかを確認できます。
このバリデータでは、提示されたパスワードに、すべての構成済文字セットの文字ではなく、(use-any-of
プロパティで設定された)最小数の文字セットの文字が含まれているかも確認します。たとえば、4つの文字セットが構成されており、use-any-of
プロパティが3に設定されている場合、提示されたパスワードには4つの文字セットの文字のうち3つ以上が含まれている必要があります。ユーザーの必要に応じて、4つの構成済文字セットすべての文字をパスワードに含めることもできます。
第30.8.1.4項「パスワード・バリデータの値の構成」の例を参照してください。
辞書パスワード・バリデータ
このバリデータは、提示されたパスワードが許容されるかどうかを、指定された辞書ファイルにそのパスワード値が含まれているかどうかに基づいて判定します。サーバーに大きな辞書ファイルが装備されていますが、代替辞書も指定できます。この場合、辞書は、1行に1つのワードが含まれるプレーン・テキスト・ファイルである必要があります。
長さに基づくパスワード・バリデータ
このバリデータは、提示されたパスワードが許容されるかどうかを、そのパスワードに含まれる文字数が値の許容範囲内に収まっているかどうかに基づいて判定します。上限と下限の両方を定義できます。
繰返し文字パスワード・バリデータ
このバリデータは、提示されたパスワードが許容されるかどうかを、パスワード値内での任意の文字の連続使用回数に基づいて判定します。「aaaaaa」や「aaabbb」のような、同じ文字の繰返しで構成されている文字列がユーザー・パスワードに含まれていないことを確認します。
類似に基づくパスワード・バリデータ
このバリデータは、提示されたパスワードが許容されるかどうかを判定するために、ユーザーの現在のパスワードへの類似度を測定します。特に、レーベンシュタイン距離アルゴリズムを使用して、文字列間の変換における変更(文字の挿入、削除または置換)の最小数を判定します。この使用により、ユーザーが新しいパスワードの設定時に現在のパスワードにわずかな変更しか行わないことを防止できます。
注意: このパスワード・バリデータを有効にするには、ユーザーの現在のパスワードにアクセスできるようにする必要があります。そのため、このパスワード・バリデータを有効化するには、この他に、パスワード・ポリシー構成内のpassword-change-requires-current-password プロパティをtrue に設定する必要があります。 |
一意文字パスワード・バリデータ
このバリデータは、提示されたパスワードが許容されるかどうかを、パスワード内に含まれる一意の文字数に基づいて判定します。この使用により、「aabbcc」や「abcabc」のような、少数の文字しか含まれない単純なパスワードを防止できます。
パスワード・バリデータは、dsconfig
コマンドを使用して管理できます。この方法について次の各項で説明します。
使用可能なパスワード・バリデータのリストを表示するには、次のようにします。
$ 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
パスワード・バリデータのプロパティを表示するには、次のようにします。
$ 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
デフォルトでは、辞書バリデータ以外のすべてのパスワード・バリデータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。
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
パスワード・バリデータのプロパティを構成するには、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つの構成済文字セットすべての文字をパスワードに含めることもできます。
パスワード・バリデータは、特定のパスワード・ポリシーに関連付けられているときにのみ考慮されます。
パスワード・バリデータをパスワード・ポリシーに関連付けるには、そのパスワード・ポリシーの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"
ODSMインタフェースを使用してパスワード・バリデータを管理できます。この方法について次の各項で説明します。
使用可能なパスワード・バリデータのリストを表示するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・バリデータ」要素を開きます。
使用可能なパスワード・バリデータが表示されます。
パスワード・バリデータのプロパティを表示するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・バリデータ」要素を開きます。
使用可能なパスワード・バリデータが表示されます。
パスワード・バリデータをクリックすると、右側のペインにそのプロパティが表示されます。
デフォルトでは、辞書バリデータ以外のすべてのパスワード・バリデータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。
パスワード・バリデータを有効化または無効化するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・バリデータ」要素を開きます。
使用可能なパスワード・バリデータが表示されます。
パスワード・バリデータをクリックすると、右側のペインにそのプロパティが表示されます。
バリデータを有効化する場合は「有効」チェック・ボックスを選択し、バリデータを無効化する場合はこのチェック・ボックスの選択を解除します。
「適用」をクリックして、構成変更を保存します。
ODSMを使用してパスワード・バリデータのプロパティを構成するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・バリデータ」要素を開きます。
使用可能なパスワード・バリデータが表示されます。
パスワード・バリデータをクリックすると、右側のペインにそのプロパティが表示されます。
必要なプロパティを構成し、「適用」をクリックして構成変更を保存します。
パスワード・バリデータは、特定のパスワード・ポリシーに関連付けられているときにのみ考慮されます。
パスワード・バリデータをパスワード・ポリシーに関連付けるには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「セキュリティ」タブを選択します。
「パスワード・ポリシー」要素を開きます。
使用可能なパスワード・ポリシーが表示されます。
パスワード・ポリシーをクリックすると、右側のペインにそのプロパティが表示されます。
右側のペインで「構文」要素を開きます。
「パスワード・バリデータ」リストから、このパスワード・ポリシーに関連付けるパスワード・バリデータを選択します。
「適用」をクリックして、構成変更を保存します。
パスワード・ジェネレータは、ユーザー・アカウントのパスワードを生成するために使用されます。パスワード・ジェネレータはパスワード変更拡張操作とともに使用され、このジェネレータによって、クライアントからのリクエストにパスワードが含まれていない場合に新しいパスワードが生成されます。有効なパスワード・ポリシーにパスワード・ジェネレータが関連付けられていない場合、パスワード変更拡張操作によるユーザーのパスワードの自動生成は行われません。
パスワード・ジェネレータによって作成されたパスワードには、検証は適用されません。関連付けられたパスワード・バリデータの要件と一致するパスワードを作成するように、パスワード・ジェネレータを構成してください。
ディレクトリ・サーバー・インスタンスには、デフォルトで1つのパスワード・ジェネレータが構成されます。これはランダム・パスワード・ジェネレータです。次の各項では、dsconfig
を使用したパスワード・ジェネレータの管理方法について説明します。
構成済パスワード・ジェネレータをリストするには、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
パスワード・バリデータのプロパティを表示するには、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文字のパスワードが生成されます。
デフォルトで、ランダム・パスワード・ジェネレータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。
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
パスワード・ジェネレータのプロパティを構成するには、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
パスワード・ジェネレータは、特定のパスワード・ポリシーに関連付けられているときにのみ考慮されます。
dsconfig
を使用してパスワード・ジェネレータをパスワード・ポリシーに関連付けるには、そのパスワード・ポリシーのpassword-generator
プロパティを設定します。
たとえば、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"