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 デフォルト・パスワード・ポリシーのプロパティ
プロパティ | 説明 |
---|---|
|
パスワード・ポリシーの処理中にイベントが発生した場合、メッセージを送信します。このプロパティを使用して、このパスワード・ポリシーに使用するアカウント・ステータス通知ハンドラのDNを指定します。 |
|
非推奨。ユーザーのパスワードの有効期限が切れた後に、そのユーザーにパスワードの変更を許可するかどうかを示します。ユーザーはリクエストを匿名で発行し、現在のパスワードをリクエストに含める必要があります。有効な場合、この機能によってパスワード変更拡張操作が使用されます。この操作はデフォルトで初期構成時に有効化されます。 |
|
ユーザーが自分のパスワードを変更するためのアクセス制御権を保有している場合に、そのユーザーにこの変更を許可するかどうかを示します。 |
|
このパスワード・ポリシーでクリア・テキスト・パスワードのエンコードに使用するパスワード記憶スキームを指定します。 「パスワード・ストレージ・スキーム」を参照してください。 |
|
このパスワード・ポリシーで非推奨と見なすパスワード記憶スキームのDNを指定します。このパスワード・ポリシーを持つユーザーがサーバーに対する認証を行ったときに、そのユーザーのパスワードが非推奨のスキームでエンコードされている場合、その値は削除され、デフォルトのパスワード記憶スキームを使用してエンコードされた値に置き換えられます。 |
|
パスワード有効期限切れ警告がユーザーにまだ表示されていない場合でも、そのユーザーのパスワードを有効期限切れにすることが可能かどうかを示します。これを |
|
アカウントの初回使用時にパスワードの変更をユーザーに要求し、その他の操作はいずれもパスワードを変更しないと実行できないようにするかどうかを示します。 |
|
管理パスワードのリセット後にパスワードを変更するようにユーザーに要求し、他の操作はいずれもパスワードを変更しないと実行できないようにするかどうかを示します。 |
|
ユーザーに許可する最大猶予ログイン数を指定します。猶予ログインによって、ユーザーは、パスワードの有効期限が切れた後でもサーバーに対して認証を行うことができますが、パスワードを変更するまでは他の操作はいずれも実行できません。 |
|
ユーザー・アカウントがアイドル状態を維持できる(つまり、ディレクトリに対する認証を行わないでいられる)最大時間を指定します。この時間が経過すると、アカウントはサーバーによってロックされます。このアクションは、 |
|
ユーザーの最終ログイン時刻の保持に使用する、ユーザーのエントリ内の属性名を指定します。これを指定する場合、指定する属性は、サーバー・スキーマに操作属性として定義されているか、ユーザーのエントリの少なくとも1つのオブジェクト・クラスで許可されている必要があります。この目的で、 |
|
最終ログイン時刻値の生成に使用する書式文字列を指定します。 |
|
最終ログイン時刻値の生成に使用するタイムゾーン文字列を指定します。任意の有効なタイムゾーン文字列を指定できます。指定した |
|
認証に失敗したユーザー・アカウントをロック状態にする時間を指定します。この時間が経過すると、アカウントのロックは自動的に解除されます。値 |
|
認証に何回失敗したら、ユーザー・アカウントを一時的または永久的にロックするかを指定します。値ゼロは、自動ロックアウトを有効化しないことを表します。 |
|
ロックアウト対象の失敗として前回の認証試行の失敗を加算する場合の最大時間を指定します。ノート: 認証に成功すると、以前に失敗したすべての試行のレコードが常にクリアされます。値 |
|
多数の認証失敗が発生した後に、ユーザー・アカウントを一時的にロックする時間の長さを指定します。この属性の値は、秒、分、時間、日または週の単位の後に続く整数です。0秒の値は、アカウントが一時的にロックされることはないことを示します。 |
|
ユーザー・アカウントを一時的にロックするまでに、ユーザーが認証に何回まで失敗が許されるかを指定します。0の値は、失敗によってアカウントが一時的にロックされることはないことを示します。 |
|
ユーザーが同じパスワードを維持できる最大時間を指定します。この時間が経過すると、ユーザーは新しいパスワードを選択する必要があります。これは、多くの場合パスワードが有効期限切れになるまでの間隔と呼ばれます。値 |
|
ユーザーのパスワードが管理者によってリセットされた後に、そのユーザーによるパスワードの変更が可能な最大時間を指定します。この時間が経過すると、そのユーザーはロックアウトされます。これは、 |
|
ユーザーがパスワード値を維持する必要がある最小時間を指定します。この時間が経過すると、ユーザーはパスワード値を再び変更できるようになります。ゼロ以外の値を指定することによって、ユーザーが、前のパスワードを履歴からフラッシュして再利用可能にするために、パスワードの変更を繰り返すことを確実に防止できます。 |
|
ユーザーのエンコードされたパスワードを保持する、ユーザーのエントリ内の属性を指定します。指定する属性は、サーバーのスキーマで定義されている必要があり、またユーザー・パスワード構文または認証パスワード構文のどちらかを持っている必要があります。通常、ユーザー・パスワード構文(OID: |
|
ユーザーが新しいパスワードを設定するときに、現在のパスワードを入力する必要があるかどうかを示します。これを |
|
パスワードの有効期限が間もなく切れることを示すユーザーへの通知を開始する、パスワード有効期限前の時間を指定します。 |
|
このパスワード・ポリシーとともに使用するパスワード・ジェネレータのDNを指定します。パスワード・ジェネレータはパスワード変更拡張操作とともに使用され、このジェネレータによって、クライアントからのリクエストに新しいパスワードが含まれていない場合に新しいパスワードが生成されます。パスワード・ジェネレータのDNを指定しないと、パスワード変更拡張操作でユーザーのパスワードの自動生成は行われません。 |
|
パスワード履歴に保持するパスワード値の最大数を指定します。ユーザーのパスワードが変更されるたびに、サーバーは、提示された新しいパスワードを、現在のパスワードおよび履歴に格納されているすべてのパスワードと突き合せてチェックします。一致が検出された場合、ユーザーは新しいパスワードを使用できません。値ゼロは、パスワード履歴を保持しないことを表すか(パスワード履歴期間の値が |
|
以前に使用されたパスワードをユーザーのパスワード履歴内に有効として保持する最大時間を指定します。ユーザーのパスワードが変更されるたびに、サーバーは、提示された新しいパスワードを、現在のパスワードおよび履歴に格納されているすべてのパスワードと突き合せてチェックします。一致が検出された場合、ユーザーは新しいパスワードを使用できません。値 |
|
このパスワード・ポリシーとともに使用するパスワード・バリデータのDNを指定します。パスワード・バリデータはユーザーが新しいパスワードを指定しようとするたびに起動され、新しいパスワードが許容範囲内かどうかがこのバリデータによって判定されます。 |
|
ユーザーが |
|
古い最終ログイン時刻値に対して過去に使用された書式文字列を指定します。この値は、 |
|
このパスワード・ポリシーを持つすべてのユーザーがパスワードを変更する必要がある時点を指定します。このオプションは、パスワード有効期限とは別に作用します(つまり、パスワード有効期限が無効化されている場合でも、いずれかの時点ですべてのユーザーにパスワードの変更を強制します)。 |
|
このパスワード・ポリシーを持つユーザーが、SSLのようなセキュア通信メカニズム、またはパスワードをプクリア・テキストで公開しないDIGEST-MD5、EXTERNAL、GSSAPIなどのセキュアSASLメカニズムを使用して、安全に認証を行う必要があるかどうかを示します。 |
|
このパスワード・ポリシーを持つユーザーが、安全な方法で(SSLのようなセキュア通信チャネルを使用するなど)パスワード変更を行う必要があるかどうか示します。 |
30.2.2 デフォルト・パスワード・ポリシーのプロパティの表示
Oracle Unified Directory Services Managerまたはdsconfig
コマンドを使用して、デフォルト・パスワード・ポリシーのプロパティを表示できます。
-
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 : - last-login-time-zone : UTC 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を使用してプロパティを表示するには:
- 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
- 「セキュリティ」タブを選択します。
- 「パスワード・ポリシー」要素を開きます。
- 「デフォルト・パスワード・ポリシー」を選択します。
パスワード・ポリシーのプロパティとその値が右側のペインに表示されます。
30.2.3 デフォルト・パスワード・ポリシーの変更
Oracle Unified Directory Services Managerまたはdsconfig
コマンドを使用して、デフォルト・パスワード・ポリシーの様々なプロパティを変更できます。
-
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.3 パスワード・ポリシー状態情報の属性
パスワード・ポリシー状態情報は、ユーザーごとに維持する必要があります。この情報は各ユーザー・エントリに操作属性のセットとして格納されます。これらの属性は、エンド・ユーザーや管理者によって直接変更されることを避けるため、NO-USER-MODIFICATION
フラグ付きで宣言されます。
次の表で説明するように、パスワード・ポリシーには、状態情報を保持する多くの操作属性が含まれます。
表30-2 パスワード・ポリシーの操作属性
属性 | 説明 |
---|---|
|
この属性は、ユーザーまたは管理者によってユーザーのパスワードが最後に変更された時間のタイムスタンプ(汎用時間形式)を保持します。これは、ユーザーのパスワードを設定または変更する追加、変更またはパスワード変更操作で自動的に設定され、クリアや設定解除はされません。これは、最小または最大パスワード経過時間を施行する目的で、ユーザーのパスワードが最後に変更された時間の判定や、有効期限切れ警告通知を生成するかどうかの決定に使用されます。また、パスワード・リセット最大期間を施行するために |
|
この属性は、ユーザーのパスワードが期限切れになった後に、猶予ログインの最大回数を施行するために、そのユーザーが猶予期間ログインで認証された時間のタイムスタンプ(汎用時間形式)を保持します。これは、ユーザーが猶予期間ログインを使用して認証されたときは常に自動的に設定され、ユーザーのパスワードがユーザー自身によって変更されたり管理者によってリセットされたときは常に消去されます。 |
|
この属性は、パスワードが正しくないためにユーザーの認証試行が失敗した時間のタイムスタンプ(汎用時間形式)を保持します。これは、試行に何度も失敗するとその結果アカウントがロックされるよう、アカウントの最大失敗数の施行に使用されます。これは、認証失敗が発生ときは常に自動的に設定され、ユーザー認証が成功したとき(ロックアウトの発生前またはアカウントがロックされてロックアウト期間が経過した後)や、ユーザーのパスワードがユーザー自身によって変更されたり管理者によってリセットされたときは常にクリアされます。 |
|
この属性は、以前のパスワードをタイムスタンプ(汎用時間形式)とともに保持します。 |
|
この属性は、認証試行に何度も失敗した後、ユーザーのアカウントがロックされた時間のタイムスタンプ(汎用時間形式)を保持します。アカウントがロックされていることを示すため、またパスワード・ロックアウト継続時間を経て、自動的にロックが解除される時期についての情報を提供するために使用されます。これは、ユーザーのパスワードが管理者によってリセットされたり、ロックアウト継続時間が経過した後に(認証の成功や失敗にかかわらず)認証が試行されたときに自動的にクリアされます。 ノート: Oracle Unified Directoryパスワード・ポリシーの実装は、パスワード・ポリシーのドラフトで指定された動作とは大きく異なります。Oracle Unified Directoryの実装では、アカウント・ロックアウトが一時的なものか永続的なものかにかかわらず、この属性は常にアカウントがロックされた時間を保持します。パスワード・ポリシーのドラフトでは、一定期間後にアカウントを自動的にロック解除しない場合は、 |
|
この属性は、指定されたエントリのパスワード・ポリシーを保持します。パスワード・ポリシーによって制御される各オブジェクトは、 |
|
この属性は、関連付けられているユーザーに対して適用されるパスワード・ポリシーの構成エントリのDNを保持します。定義済の場合、有効な既存のパスワード・ポリシーの定義構成エントリまたはサブエントリを参照している必要があります。この属性がユーザーのエントリ内に存在するが、有効な構成エントリまたはサブエントリを参照していない場合、ユーザーは認証が許可されません。
|
|
この属性は、ユーザーのパスワードが管理者によってリセットされ、ユーザーが他の操作を実行できるようにするには、このパスワードを変更する必要がある場合に、ブール値の |
|
この属性は、ユーザーのアカウントが管理者によって手動で無効化されているために、そのユーザーのディレクトリ・サーバーに対する認証が許可されない場合に、ブール値の |
|
この属性は、最終ログイン時間の情報を保持するためのデフォルト属性として使用されます(この機能が有効化されている場合)。機能が有効になっている場合、この属性を使用するための要件はありません。管理者の選択によって、代替属性を構成できます。 |
|
この属性は、パスワード・ポリシー構成エントリの |
|
この属性は、ユーザーが今後のパスワード有効期限について最初に警告された時間のタイム・スタンプ(汎用時間形式)を保持します。これは、ユーザーに有効期限の警告が表示されたかどうかを判定し、表示された場合は新しく調整された有効期限を判定するために、 |
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オブジェクト・クラスでサポートされている属性
属性 | 説明 |
---|---|
|
パスワード・ポリシーが適用される属性の名前を保持します。たとえば、パスワード・ポリシーは |
|
この属性は、次にパスワードを修正するまでの秒数を保持します。 この属性が存在しない場合は、 |
|
この属性は、変更されたパスワードが有効期限切れになるまでの秒数を保持します。 この属性が存在しない場合、または値が |
|
この属性は、 この属性が存在しない場合、または値が |
|
この属性は、変更または追加中に、パスワードの品質が検証される方法を示します。この属性が存在しない場合、または値が |
|
品質チェックが有効な場合、この属性はパスワードで使用しなくてはいけない最小文字数を保持します。属性が存在しない場合、パスワード最小文字数は適用されません。ハッシュ・パスワードやその他の理由によりサーバーが長さをチェックできない場合は、サーバーは |
|
この属性は、パスワードの有効期限切れ警告メッセージが認証中のユーザーに戻されるまでの最大秒数を指定します。 この属性が存在しない場合、または値が |
|
この属性は、期限切れのパスワードを認証に使用できる回数を指定します。この属性が存在しない場合、または値が |
|
この属性は、値が この属性が存在しない場合、または値が |
|
この属性は、バインド試行何度もに失敗したためにそのパスワードを認証に使用できなくなるまでの秒数を保持します。この属性が存在しない場合、または値が |
|
この属性は、認証にパスワードを使用できなくなるまでのバインド試行の連続失敗回数を指定します。この属性が存在しない場合、または値が |
|
この属性は、認証に成功しなくても、失敗カウンタからパスワードの失敗がパージされるまでの秒数を保持します。 この属性が存在しない場合、または値が |
|
この属性の値が |
|
この属性は、変更操作は引き続きアクセス制御の対象ですが、ユーザーが自分のパスワードを変更できるかどうかを示します。この属性が存在しない場合は、 |
|
この属性は、パスワードの変更時に新しいパスワードとともに現在のパスワードを送信する必要があるかを指定します。この属性が存在しない場合は、 |
30.5 レプリケート環境でのパスワード・ポリシー、パスワード・バリデータおよびパスワード・ジェネレータの理解
レプリケート環境でパスワードを制御するポリシーについて理解できます。ディレクトリ・サーバー構成内(cn=config
の下)に存在するパスワード・ポリシー、パスワード・バリデータまたはパスワード・ジェネレータは、レプリケートされません。構成情報全般はレプリケートされず、各ディレクトリ・サーバー・インスタンス固有のものです。
デフォルト・パスワード・ポリシー、パスワード・バリデータまたはパスワード・ジェネレータを変更する場合は、レプリケート・トポロジ内の各ディレクトリ・サーバー・インスタンスで同じ変更を行う必要があります。同様に、cn=config
の下にある特殊パスワード・ポリシー、パスワード・バリデータまたはパスワード・ジェネレータは、他のディレクトリ・サーバーにレプリケートされません。
サブエントリとして(つまり、データの一部として)作成されたパスワード・ポリシー、パスワード・バリデータおよびパスワード・ジェネレータは、レプリケートされます。
サブエントリとしてのパスワード・ポリシーの作成の詳細は、「LDAPサブエントリとしてのパスワード・ポリシーの定義」を参照してください
サブエントリとしてのパスワード・バリデータの作成の詳細は、「LDAPサブエントリとしてのパスワード・バリデータの定義」を参照してください
サブエントリとしてのパスワード・ジェネレータの作成の詳細は、「LDAPサブエントリとしてのパスワード・ジェネレータの定義」を参照してください
レプリケート環境でのパスワード・ポリシーの使用に関するその他の考慮事項を次に示します:
-
ディレクトリ・サーバーは、ユーザー・エントリに格納されているすべてのパスワード情報(現在のパスワード、パスワード履歴、パスワード有効期限)をレプリケートします。
-
ユーザーが自分のパスワードを変更した場合、すべてのレプリカでパスワードが新しいパスワードに更新されるまでにしばらく時間がかかる場合があります。
-
1人のユーザーに対してパスワード有効期限の警告が複数(レプリケートされた各サーバーから1つずつ)表示されることがあります。
30.6 コマンド行を使用したパスワード・ポリシーの管理
パスワード・ポリシーを構成する最も簡単な方法は、コマンド行を使用することです。dsconfig
コマンドを使用して、既存のパスワード・ポリシーを管理し、パスワード・ポリシーのプロパティを変更します。
この項では、次の項目について説明します。
30.6.1 デフォルト・パスワード・ポリシーの構成
dsconfig
コマンドを使用して、デフォルト・パスワード・ポリシーの様々なプロパティを変更します。
30.6.1.1 アカウント・ロックアウト機能
次の表に、アカウント・ロックアウト機能を示します。
表30-4 アカウント・ロックアウト機能
機能 | 説明 |
---|---|
ロックアウト対象の失敗数。 |
|
ロックアウト・ソフト失敗回数。 |
|
ロックアウト期間。 |
|
ソフト・ロックアウト継続時間 |
|
ロックアウト対象の失敗が有効期限切れになるまでの間隔。 |
|
アイドル・ロックアウト間隔。 |
|
次のコマンドでは、デフォルト・パスワード・ポリシーのアカウント・ロックアウト・プロパティが設定されます。
$ 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
プロパティを使用してユーザーのログイン時刻がデコードされることがあります。
このコンテンツは、OUDバンドル・パッチ12.2.1.4.211008以降のリリースにのみ適用されます。
last-login-time-zone
プロパティでは、ESTのようなタイムゾーンが決定されます。指定したlast-login-time-zone
に基づいて、同じタイムゾーンでlast-login-time
が生成されます。たとえば、last-login-time-zone
プロパティがEST
に設定されている場合、last-login-time
の値がEST
に生成されます。
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 "last-login-time-zone:EST"\ --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-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.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
属性を追加します。それにより、構成したパスワード・ポリシーが、そのユーザーに対してサーバーで使用されるようになります。
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秒とし、この経過後は、ロックを自動的に解除します。
-
このパスワード・ポリシーの適用先ユーザーは、自分のパスワードを変更できます。
-
このパスワード・ポリシーを持つユーザーは、資格証明の公開を回避できる安全な方法を使用して自分のパスワードを変更する必要があります。
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)を使用して、サーバーで構成されているすべてのパスワード・ポリシー・サブエントリを表示します。
使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。
30.7.2 パスワード・ポリシー・サブエントリの作成
Oracle Unified Directory Services Manager (OUDSM)を使用して、新しいパスワード・ポリシー・サブエントリを作成します。
30.7.3 既存のパスワード・ポリシー・サブエントリに基づくパスワード・ポリシー・サブエントリの作成
Oracle Unified Directory Services Manager (OUDSM)を使用して、既存のパスワード・ポリシー・サブエントリに基づく新しいパスワード・ポリシー・サブエントリを作成します。
30.7.4 パスワード・ポリシー・サブエントリの削除
Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・ポリシー・サブエントリを削除します。
30.7.5 構成済パスワード・ポリシーの表示
Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・ポリシーのリストを表示します。
使用可能なすべてのプロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。
30.7.6 パスワード・ポリシーの変更
Oracle Unified Directory Services Manager (OUDSM)を使用して、構成済パスワード・ポリシーを変更します。
ノート:
-
OUDSMを使用してデフォルト・パスワード・ポリシーを変更することもできます。詳細は、「デフォルト・パスワード・ポリシーの変更」を参照してください。
-
使用可能なすべてのパスワード・ポリシー・プロパティとその値の詳細は、『Oracle Unified Directory構成リファレンス』のパスワード・ポリシーに関する項を参照してください。
30.7.8 既存のパスワード・ポリシーに基づくパスワード・ポリシーの作成
Oracle Unified Directory Services Manager (OUDSM)を使用して、既存のパスワード・ポリシーに基づく新しいパスワード・ポリシーを作成します。
30.7.9 パスワード・ポリシーの削除
Oracle Unified Directory Services Manager (OUDSM)を使用して、パスワード・ポリシーを削除します。
- 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
- 「セキュリティ」タブを選択します。
- 「パスワード・ポリシー」要素を開きます。
- 削除するパスワード・ポリシーを選択します。
- 「削除」アイコンをクリックします。
- 「OK」をクリックして、削除を確定します。
30.7.10 サポートされているパスワード記憶スキームの表示
パスワード記憶スキームは、サーバーで保管されるユーザー・パスワードをエンコードするためのメカニズムを提供します。ユーザーが入力したパスワードが正しいかどうかをサーバーは判断できますが、多くの場合、パスワードは、クリアテキスト・パスワードの内容をユーザーに決定させない方法でエンコードされます。
Oracle Unified Directoryは複数のパスワード記憶スキームをサポートしています。「パスワード・ストレージ・スキーム」を参照してください。
OUDSMを使用してパスワード記憶スキームのリストを表示するには:
- 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
- 「セキュリティ」タブを選択します。
- 「パスワード記憶」要素を開きます。
- パスワード記憶スキームのリストが表示されます。
30.7.11 パスワード記憶スキームの有効化または無効化
Oracle Unified Directory Services Managerを使用して、パスワード記憶スキームを有効化または無効化できます。
- 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからディレクトリ・サーバーに接続します。
- 「セキュリティ」タブを選択します。
- 「パスワード記憶」要素を開きます。
- 有効化または無効化するパスワード記憶スキームを選択します。
- 右側のペインで、必要に応じて、「有効」ボックスを選択するか、このボックスの選択を解除します。
- 「適用」をクリックして、変更を保存します。
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文字です。
- 次のコマンドを実行します:
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を空のままにします。この属性値はパスワード・バリデータでは考慮されません。 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
- 次の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
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.3 パスワード・バリデータの有効化または無効化
デフォルトでは、辞書バリデータ以外のすべてのパスワード・バリデータが有効化されます。バリデータを特定のパスワード・ポリシーに関連付けるには、事前にそのバリデータを有効化する必要があります。
パスワード・バリデータを有効化または無効化するには:
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を使用してデータに追加します。
- 次の例では、ランダム・パスワード・ジェネレータを作成します:
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を空のままにします。この属性値はパスワード・バリデータでは考慮されません。 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
- 次の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
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では、サブエントリ・パスワード・バリデータおよびサブエントリ・パスワード・ジェネレータはサポートされません。