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

この章では、パスワードの使用方法を制御するルールのセットであるパスワード・ポリシーをOracle Internet Directoryで管理する方法について説明します。具体的には、デフォルト・ポリシーと細かなポリシーを含むパスワード・ポリシーについて説明し、Oracle Directory Services Manager (ODSM)およびLDAPコマンド行ユーティリティを使用してパスワード・ポリシーを管理する方法について説明します。次の各項では、パスワード・ポリシーの管理について説明します。

ノート:

このガイドで言及するOracle Delegated Administration Servicesはすべて、Oracle Delegated Administration Services 10g (10.1.4.3.0)以上のことです。

29.1 パスワード・ポリシーの管理の概要

パスワード・ポリシーとは、パスワードの使用方法を定めた一連の規則のことです。ユーザーがディレクトリへのバインドを試みると、ディレクトリ・サーバーは、ユーザーのパスワードがパスワード・ポリシーの様々な要件に適合するかを確認します。

パスワード・ポリシーを設定するときに、次のようなタイプの規則を設定します。

  • 指定されたパスワードの最長有効期間

  • パスワードの最少文字数

  • パスワードに必要な数字の文字数

この項の内容は次のとおりです。

29.1.1 パスワード・ポリシー・ルールの概要

パスワード・ポリシーとは、パスワードの構文および使用方法を管理する規則のセットです。

Oracle Internet Directoryによって施行されるパスワード・ポリシーには、次のものがあります。

  • 指定されたパスワードの最長有効期間

  • パスワードの最少文字数

  • パスワードに必要な数字の最小数

  • アルファベット文字の最小数

  • 繰返し文字の最小数

  • 大文字および小文字の使用

  • 英数字以外の文字(特殊文字)の最小数

  • ユーザーによる定期的なパスワードの変更

  • パスワード変更の最小および最大間隔

  • パスワードの期限切れ(時間またはログイン回数による)後のログインの猶予期間

  • 以前使用したパスワードのユーザーによる再利用禁止

29.1.2 パスワード・ポリシーの作成および適用

パスワード・ポリシーを設定するステップは、次のとおりです。

  1. 該当するコンテナにパスワード・ポリシー・エントリを作成し、それをpwdpolicyオブジェクトと関連付けます。(Oracle Internet Directoryを初めてインストールする場合、デフォルトのエントリが存在します。)
  2. ステップ1で作成したエントリのpwdpolicyオブジェクト・クラスの下で定義された属性の値を設定して、希望するポリシーを作成します。
  3. orclepwdpolicynable属性を1に設定することにより、ポリシーを有効にします。これが1に設定されていない場合、Oracle Internet Directoryはポリシーを無視します。
  4. ポリシーによって管理されるサブツリーを決定します。ポリシーの識別名を指定したpwdpolicysubentry属性をサブツリーのルートに追加および移入します。

    関連項目:

    pwdPolicyオブジェクト・クラス、およびパスワード・ポリシーに関連するtopオブジェクト・クラスの属性のリストおよび説明は、『Oracle Identity Managementリファレンス』LDAPオブジェクト・クラス・リファレンスに関する項を参照してください

29.1.3 細かなパスワード・ポリシーについて

10g (10.1.4.0.1)以降のOracle Internet Directoryでは、各レルムでの複数のパスワード・ポリシーをサポートします。これらのポリシーは、そのレルム内のどのサブツリーにも適用できます。つまり、エントリ固有のパスワード・ポリシーを使用できます。パスワード・ポリシーは、レルム固有または有効範囲がディレクトリ全体のものとして指定できます。

目的の範囲を得るには、該当するコンテナにパスワード・ポリシー・エントリを作成する必要があります。パスワード・ポリシーは、各レルムのcn=commonエントリの下に作成されたcn=pwdPoliciesコンテナの下に移入されます。デフォルトでは、これらのコンテナに、相対識別名cn=defaultのパスワード・ポリシーが入っています。たとえば、ディレクトリ固有のデフォルトのパスワード・ポリシーの識別名は、cn=default,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContextになります。

その他のポリシーは、別の相対識別名を持つpwdPoliciesコンテナの下に作成できます。図29-1に、このシナリオを示します。

図29-1 パスワード・ポリシー・エントリの位置

この図については本文で説明しています。

図29-2 パスワード・ポリシーの識別名が移入されたpwdPolicyサブエントリ属性

この図はテキストで説明します。

実行時に、Oracle Internet Directoryは、エントリの移入されているpwdpolicysubentry属性を探し、その値で示されたポリシーを適用して、エントリで適用可能なパスワード・ポリシーを解決します。移入されたpwdPolicysubentry属性が存在しない場合、Oracle Internet Directoryは、pwdPolicysubentryが移入されている最も近い上位エントリが見つかるまで、ディレクトリ・ツリーを遡っていきます。Oracle Internet Directoryは、そのエントリの値で示されたパスワード・ポリシーを適用します。

ノート:

  • グループに適用したパスワード・ポリシーが、グループ・メンバーに自動的に適用されることはありません。ポリシーを個々のエントリまたは祖先エントリに適用する必要があります。

  • パスワード・ポリシーは、orclpwdpolicyenableを0に設定することで無効にできます。無効にすると、ディレクトリのその部分は適用できるパスワード・ポリシーのない状態のままになります。Oracle Internet Directoryは、適用できる有効なポリシーを見つけるためにDITを遡らなくなります。この属性を0に設定すると、ディレクトリの一部を必要に応じてパスワード・ポリシーなしにしておくことができます。ただし、このような変更を行う意味について実行する前に考慮する必要があります。

  • パスワード・ポリシー・エントリは、「ディレクトリ・アクセス制御の管理」で説明しているOracle Internet DirectoryのACIインフラストラクチャを使用して、匿名アクセスから保護する必要があります。これは、パスワード・ポリシーが脆弱な場合、その情報が攻撃する者の助けとなって、ディレクトリを危険にさらす恐れがあるため、特に重要です。

29.1.4 デフォルトのパスワード・ポリシーについて

Oracle Internet Directoryのデフォルトのパスワード・ポリシーは次のとおりです。

  • パスワードの有効期限は120日です。

  • 10回ログインに失敗すると、アカウントがロックアウトされます。スーパーユーザー・アカウントを除き、すべてのアカウントは、ディレクトリ管理者がパスワードを再設定するまで、24時間ロックされたままになります。アカウント・ロックアウト継続時間が経過しても、正しいパスワードでバインドするまでユーザー・アカウントはロックされたままになります。

    スーパーユーザー・アカウントであるcn=orcladminがロックされると、OIDデータベース・パスワード・ユーティリティを使用してロックを解除するまで、ロックされたままになります。このユーティリティでは、ODSユーザー・パスワードの入力が要求されます。ODSパスワードを入力すると、アカウントのロックが解除されます。

    関連項目:

  • パスワードの最小文字数は5で、1つ以上の数字を含める必要があります。

  • パスワードの期限切れの警告は、期限終了前7日に出ます。

  • パスワードの期限切れ後、5回の猶予期間ログインが許されます

Oracle Internet Directoryリリース9.0.4からは、ルートOracleコンテキストのパスワード・ポリシー・エントリがスーパーユーザーに適用されますが、アカウントのロックアウトを管理するパスワード・ポリシーのみがそのアカウントに適用されます。

ノート:

Oracle Identity Managementには、2つのタイプの特権ユーザーが存在します。どちらの特権ユーザー・アカウントも、特定のパスワード・ポリシーがアクティブになるとロックできます。

最初のタイプの特権ユーザーは、識別名cn=orcladminのスーパーユーザーで、デフォルトのアイデンティティ管理レルム内の特別なユーザー・エントリとして表されます。これによって、ディレクトリ管理者はDITを任意に変更し、Oracle Internet Directoryサーバーの構成を任意に変更できます。このスーパーユーザー(orcladmin)アカウントが、誤ったパスワードでのバインドを何度も試行したなどの理由でロックされた場合、Oracle Internet Directoryリポジトリに対するDBA権限を持つ管理者は、oidpasswdツールを使用してロックを解除できます。orcladminアカウントのロックを解除するには:

oidpasswd connect="connt_String" unlock_su_acct=TRUE

2番目の特権ユーザーは、レルム固有の特権ユーザーで、レルム内のユーザーやグループの作成と削除などの機能を制御します。このアカウントは、識別名cn=orcladmin,cn=users,realm DNのエントリにより表されます。単一のスーパーユーザー・アカウントの場合と比較すると、各レルムにレルム固有の独自の特権ユーザーが存在することになります。レルム固有の特権アカウントのロックを解除する場合は、もう一方のタイプの特権ユーザーであるcn=orcladminが、Oracle Directory Services Managerを使用して該当するアカウントのパスワードを変更します。

Oracle Internet Directoryのパスワード・ポリシーは、シンプルなバインド(userpassword属性に基づく)、userpassword属性に対する比較操作およびSASLバインドに適用されます。SSLバインドおよびプロキシ・バインドには適用されません。

29.1.5 パスワード・ポリシーの属性

パスワード・ポリシーに影響を与える属性を、次に示します。

次の属性は、パスワード・ポリシーに影響を与えます。

表29-1 パスワード・ポリシーの属性

名前 機能

pwdMinAge

ユーザーによるパスワードへの変更から変更までに必要な経過時間(秒)。デフォルトは0です。

pwdMaxAge

パスワードが有効である最大時間(秒)。この時間に達すると同時に、パスワードは期限切れになったとみなされます。デフォルトは10368000秒(120日)です。

pwdLockout

これに該当する場合、サーバーでは、無効なログインを何回か連続して試行したユーザーをロックアウトします。この回数はpwdMaxFailureで指定します。pwdLockoutのデフォルト値は1(TRUE)です。

orclpwdIPLockout

これがTRUEの場合、サーバーは、同じIPアドレスから無効なログインを何回か連続して試行したユーザーをロックアウトします。この回数はorclpwdIPMaxFailureで指定されます。デフォルトはFALSEです。

pwdLockoutDuration

無効なログイン試行回数がしきい値に達したユーザー・アカウントをロックアウトする期間(秒)。デフォルトは86400秒(24時間)です。

orclpwdIPLockoutDuration

同じIPアドレスからの無効なログイン試行回数がしきい値に達したユーザー・アカウントをロックアウトする期間(秒)。デフォルトは0です。

pwdMaxFailure

ユーザー・アカウントをロックアウトする前に、サーバーが許可する無効なログインの最大試行回数。デフォルト値は10です。

orclpwdIPMaxFailure

ユーザー・アカウントをロックアウトする前に、サーバーが許可する特定のIPアドレスからの無効なログインの最大試行回数。デフォルトは0です。

pwdFailureCountInterval

認証に成功しなくても、失敗カウンタからパスワードの失敗がパージされるまでの時間(秒)。この値が0である場合、失敗回数はパージされません。デフォルトは0です。

pwdExpireWarning

パスワードが期限切れになるまでの最大時間(秒)で、期限切れ警告メッセージが認証ユーザーに返されます。デフォルトは604800秒(7日)です。

pwdCheckSyntax

パスワードの構文チェックを有効または無効にします

0–すべての構文チェックを無効にします。

1–パスワード構文値チェックを暗号化されたパスワードを除き有効にします(デフォルト)。

pwdMinLength

このポリシーで管理されるパスワードの最小文字数。デフォルトは5文字です。

pwdGraceLoginLimit

パスワードの期限切れ後に許可する猶予期間ログインの最大数。デフォルトは5です。最大数は250です。

orclpwdGraceLoginTimeLimit

パスワードの期限切れ後に猶予期間ログインを許可する最大時間(秒)。orclpwdGraceLoginTimeLimitが0以外の場合、pwdGraceloginLimitは0にします。pwdGraceloginLimitが0以外の場合、orclpwdGraceLoginTimeLimitは0にします。

pwdMustChange

ユーザーは、アカウント作成後、または管理者によるパスワードの再設定後の最初のログイン時に、パスワードを再設定する必要があります。デフォルトは0(FALSE)です。

orclpwdIllegalValues

パスワードとして許可されない値のリストです。

orclpwdAlphaNumeric

パスワードに必要な数字の最小数。デフォルトは1です。

orclpwdMinAlphaChars

パスワードに必要なアルファベット文字の最小数。デフォルトは0です。

orclpwdMinSpecialChars

パスワードに必要な英数字以外の文字(特殊文字)の最小数。デフォルトは0です。

orclpwdMinUppercase

パスワードに必要な大文字の最小数。デフォルトは0です。

orclpwdMinLowercase

パスワードに必要な小文字の最小数。デフォルトは0です。

orclpwdMaxRptChars

パスワードで許可される繰返し文字の最大数。デフォルトは0です。

pwdInHistory

指定エントリのpwdHistory属性に格納される使用済パスワードの最大数。pwdHistoryに格納されたパスワードは、そこからパージされるまで、新規パスワードとして使用できません。デフォルトは0です。

pwdAllowUserChange

現在は使用されていません。

orclpwdPolicyEnable

これがTRUEの場合、サーバーはこのポリシーを評価します。そうでない場合、ポリシーは無視され、適用されません。デフォルトは1 (TRUE)です。

orclpwdEncryptionEnable

TRUEに設定すると、パスワードの暗号化が有効になります。デフォルトは0(FALSE)です。

orclpwdAllowHashCompare

ハッシュ・パスワード値を使用するログインを有効または無効にします。0 = 無効(デフォルト)。1 = 有効。

orclPwdTrackLogin

ユーザーの最終ログイン時間の追跡を有効または無効にします。0=無効(デフォルト)。1=有効。

orclpwdmaxinactivitytime

アカウントが自動的に期限切れになるまでの非アクティブな時間(秒単位)。0=無効(デフォルト)。orclpwdmaxinactivitytimeがゼロ以外の場合は、属性orclPwdTrackLoginを有効にする必要があります。

「コマンド行ツールを使用したOracle Internet Directoryの期限切れユーザーの判別」を参照してください。

29.1.6 ユーザー・エントリの操作属性

Oracle Internet Directoryサーバーでは、ユーザー固有のパスワード・ポリシー関連情報がユーザー・エントリの操作属性に格納されます。このサーバーのみがこれらの属性を変更できます。

表29-2を参照してください。

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

属性 説明

orcllastlogintime

最後に成功したログインのタイムスタンプ。パスワード・ポリシー属性orclPwdTrackLoginが有効な場合にのみ、追跡されます。

pwdfailuretime

ログインの成功時にクリアされる、失敗したログイン試行の一連のスペース区切りのタイムスタンプ。

orclpwdipaccountlockedtime

このIPアドレスからのログインについて、アカウントがロックされた時間。これは、複数値の属性にすることができます。

orclpwdipfailuretime

ログインの成功時にクリアされる、特定のIPアドレスからの失敗したログイン試行の一連のスペース区切りのタイムスタンプ。これは、複数値の属性にすることができます。

pwdaccountlockedtime

アカウントがロックされた時間。

pwdchangedtime

最後にパスワードを変更した時間。

pwdexpirationwarned

ユーザーがパスワードの期限切れを警告された時間。

pwdgraceusetime

猶予期間中のログインのスペース区切りの一連のタイムスタンプ。

pwdreset

値が1の場合、ユーザーは次回ログイン時にパスワードをリセットする必要があります。

pwdhistory

以前に使用されたパスワードのリスト。

ユーザーが最後に成功したログイン・タイムスタンプを確認するには、ユーザーの最終ログイン時間の追跡を有効にする必要があります。つまり、関連するパスワード・ポリシーについて、PwdTrackLogin属性を1に設定する必要があります。この値は、デフォルトでは設定されません。その後、ユーザー・エントリのorcllastlogintime属性で最終ログインのタイムスタンプを確認します。

ユーザーの最後のログイン試行の時間を確認するには、ユーザーのorcllastlogintime属性とpwdfailuretimeの最後のタイムスタンプを比較します。これらの値の最新のものが、ユーザーの最後のログイン試行時間です。

29.1.7 パスワード・ポリシー情報のディレクトリ・サーバー検証について

Oracle Internet Directoryは、移入された適切なpwdPolicysubentryを見つけることで、エントリに適用可能なポリシーを判断します。

「細かなパスワード・ポリシーについて」で説明しているように、Oracle Internet Directoryは、移入された適切なpwdPolicysubentryを見つけることで、エントリに適用可能なポリシーを判断します。ユーザー・パスワードが指定のポリシーの要件を満たしていることを確認する場合、ディレクトリ・サーバーは、次のことを検証します。

  • パスワード・ポリシーが有効であること。これには、パスワード・ポリシー・エントリの属性orclpwdpolicyenableの値を確認します。値1は、パスワード・ポリシーが有効であることを示します。値0は、無効であることを示します。

  • パスワード・ポリシー構文情報(英数字の数、パスワード長など)の正確さ。ディレクトリ・サーバーは、ldapaddおよびldapmodifyがuserpassword属性上で実行中に構文チェックを行います。

  • パスワード・ポリシー状態情報。たとえば、次を含みます:

    • ユーザー・パスワードが作成または変更されたときのタイムスタンプ。

    • 最小パスワード有効期限は、現在の時刻からパスワード作成時刻を引いた値より大きくなります。

    • ユーザーが連続してログインに失敗したときのタイムスタンプ。

    • ユーザーのアカウントがロックされた日時。

    • パスワードが再設定されたため、最初の認証でユーザーがパスワードを変更する必要があることを示すインジケータ。

    • ユーザーが以前に使用したパスワードの履歴。

    • 猶予期間ログインのタイムスタンプ。

    猶予期間ログインが時間で設定されている場合、サーバーは現在の時刻と期限切れ時刻の差異をチェックします。

    ディレクトリ・サーバーは、ldapbindおよびldapcompareの実行中に、状態情報をチェックしますが、このチェックは、orclpwdpolicyenable属性が1に設定されている場合にのみ実行されます。

    パスワード値の構文チェックを使用可能にするには、パスワード・ポリシー・エントリのorclpwdpolicyenableおよびpwdchecksyntax属性をTRUEに設定します。

29.1.8 パスワード・ポリシーのエラー・メッセージについて

パスワード・ポリシー違反が発生すると、ディレクトリ・サーバーはクライアントに様々なエラーおよび警告メッセージを送信します。

Oracle Internet Directoryでは、10g (10.1.4.0.1)以降、クライアントがLDAPバインドまたは比較操作の一環としてパスワード・ポリシー・リクエスト制御を送信する場合にのみ、ディレクトリ・サーバーはこれらのメッセージをLDAP制御として送信できます。クライアントがリクエスト制御を送信しない場合、ディレクトリ・サーバーは、レスポンス制御を送信しません。かわりに、追加情報の一部としてエラーおよび警告を送信します。

関連項目:

エラー・メッセージのリストおよびそれらのエラーを解決する方法は、「パスワード・ポリシーに関するトラブルシューティング」を参照してください

29.2 Oracle Directory Services Managerを使用したパスワード・ポリシーの管理

Oracle Directory Services Managerを使用して、パスワード・ポリシーを作成、割当ておよび変更できます。

この項では、パスワード・ポリシーの管理について説明します。

29.2.1 Oracle Directory Services Managerを使用したパスワード・ポリシーの表示

Oracle Directory Services Managerを使用してパスワード・ポリシーを表示するには、次のステップを実行します。

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「セキュリティ」を選択します。
  3. 左側のペインで「パスワード・ポリシー」を展開します。すべてのパスワード・ポリシーが左側のペインに相対識別名順に表示されます。完全識別名を表示するには、エントリ上にマウスを移動します。
  4. パスワード・ポリシーを選択してその情報を右側のペインに表示します。

29.2.2 Oracle Directory Services Managerを使用したパスワード・ポリシーの変更

パスワード・ポリシーを変更するには、次のステップを実行します。

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「セキュリティ」を選択します。
  3. 左側のペインで「パスワード・ポリシー」を展開します。すべてのパスワード・ポリシーが左側のペインに表示されます。
  4. 変更するパスワード・ポリシーを選択します。5つのタブ・ページが、右側のペインに表示されます。
  5. 必要に応じて、「一般」タブ・ページの編集可能な属性フィールドを変更します。
  6. 「アカウントのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「グローバル・ロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
  7. 「IPのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「IPのロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
  8. 「パスワード構文」タブ・ページを選択した後、フィールドを変更する場合は「パスワード構文のチェック」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
  9. ポリシーを適用するサブツリーを変更するには、「有効サブツリー」タブ・ページを選択します。サブツリーを追加するには、「追加」を選択します。識別名を入力するか、「参照」を選択し、識別名(DN)パスの選択ウィンドウを使用して、ポリシーを適用するサブツリーにナビゲートします。
  10. 変更終了後、「適用」を選択します。

29.2.3 ODSMを使用したパスワード・ポリシーの作成およびサブツリーへの割当て

新規パスワード・ポリシーを作成するには、次のステップを実行します。

  1. 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
  2. タスク選択バーで、「セキュリティ」を選択します。
  3. 左側のペインで「パスワード・ポリシー」を展開します。すべてのパスワード・ポリシーが左側のペインに表示されます。
  4. 新規ポリシーを作成するには、「作成」を選択します。また、左側のペインで既存のパスワード・ポリシーを選択し、「類似作成」を選択します。
  5. 必要に応じて、「一般」タブ・ページの編集可能な属性フィールドを設定または変更します。
  6. 「アカウントのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「グローバル・ロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
  7. 「IPのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「IPのロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
  8. 「パスワード構文」タブ・ページを選択した後、フィールドを変更する場合は「パスワード構文のチェック」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
  9. パスワード・ポリシーをサブツリーに割り当てるには、「有効サブツリー」タブ・ページを選択して、「追加」を選択します。識別名を入力するか、「参照」を選択し、識別名(DN)パスの選択ウィンドウを使用して、ポリシーを適用するサブツリーにナビゲートします。
  10. 変更終了後、「適用」を選択します。

29.3 コマンドライン・ツールを使用したパスワード・ポリシーの管理

この項では、コマンド行ツールを使用したパスワード・ポリシーの管理について詳しく説明します。

29.3.1 コマンドライン・ツールを使用したパスワード・ポリシーの表示

次の例では、特定のパスワード・ポリシー・コンテナの下にあるパスワード・ポリシーを取得します。

ldapsearch -p port -h host \
           -b "cn=pwdPolicies,cn=common,cn=products,cn=OracleContext, \
               o=my_company,dc=com" \
           -s sub "(objectclass=pwdpolicy)"

次の例では、すべてのパスワード・ポリシー・エントリを取得します。

ldapsearch -p port -h host -b " " -s sub "(objectclass=pwdpolicy)"

29.3.2 コマンドライン・ツールを使用した新規パスワード・ポリシーの作成

新規パスワード・ポリシーを作成するには、ポリシー・エントリを適切なコンテナに追加します。

これを実行するために最適な方法は、次のとおりです。

  1. ldapmodifyを使用して、デフォルト・エントリcn=default,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContextの内容をLDIFファイルにダンプします。たとえば:
    ldapsearch -p port -h host -D cn=orcladmin -q -L \
       -b 'cn=default,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContext' \
       -s base '(objectclass=pwdpolicy)' >> pwdpolicy.ldif 
    

    ldapsearchに代わる方法として、ldifwriteを使用できます。DOMAIN_HOMEが設定されていることを確認してから、次を入力します。

    ldifwrite connect="conn_str" \
      baseDN="cn=default,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContext" \
      ldiffile="pwpolicy.ldif"
  2. 新規ポリシーに対して一般名および目的の値が使用されるようLDIFファイルを変更します。たとえば、cn=defaultcn=policy1に変更し、pwdMaxFailure10から5に変更します。
  3. ldapaddを使用して新規エントリを追加します。次の形式のコマンド行を使用します。
    ldapadd -p port_number -h host -D cn=orcladmin -q -f pwdpolicy.ldif

29.3.3 コマンド行ツールを使用したサブツリーへのパスワード・ポリシーの適用

コマンド行ツールを使用して、パスワード・ポリシーをサブツリーに適用できます。

新規パスワード・ポリシーをサブツリーdn: cn=accounting,c=usに適用するには、次のようなコマンド行とともに

ldapmodify -D "cn=orcladmin" -q -p port -h host -f my_file.ldif

次のようなLDIFファイルを使用します。

dn: cn=accounting,c=us
changetype: modify
replace: pwdPolicysubentry
pwdPolicysubentry:cn=policy1,cn=pwdPolicies,cn=common,cn=products,
 cn=OracleContext,o=my_company,dc=com

29.3.4 コマンドライン・ツールを使用したパスワード・ポリシーの設定

次の例では、デフォルトのパスワード・ポリシーのpwdLockout属性を無効にします。

次の例では、デフォルトのパスワード・ポリシーのpwdLockout属性を無効にします。これによって、属性はデフォルト設定の1から0に変更されます。

ファイルmy_file.ldifの内容は、次のとおりです。

dn: cn=default,cn=pwdPolicies,cn=common,cn=products,cn=OracleContext,
 o=my_company,dc=com
changetype:modify
replace: pwdlockout
pwdlockout: 0

次のコマンドでこのファイルをディレクトリにロードします。

ldapmodify -D "cn=orcladmin" -q -p port -h host -f my_file.ldif

次の例では、デフォルトのパスワード・ポリシー・エントリのpwdMaxAgeを変更します。

ldapmodify -D "cn=orcladmin" -q -p port -h host -q -f file

fileには、次のものが含まれます。

dn: cn=default,cn=pwdPolicies,cn=common,cn=products,cn=OracleContext,
 o=my_company,dc=com
changetype: modify
replace: pwdMaxAge
pwdMaxAge: 10000

29.3.5 コマンド行ツールを使用したパスワード・ポリシー・エントリの限定

多数のユーザーについてパスワード・ポリシーがリセットされる場合、Oracle Internet DirectoryサーバーではそのpasswordPolicySubentryキャッシュをリフレッシュする必要があり、これによってOracle Databaseに多数のSQL問合せのリクエストが発生し、パフォーマンスに影響する可能性があります。

Oracle Internet Directory 11g リリース1(11.1.1.7.0)以降では、entrylevelのサブタイプを指定することにより、パスワード・ポリシー・エントリを限定できます。たとえば、次のコマンドでは、A_userにパスワード・ポリシーが追加されます。

ldapmodify -D "cn=orcladmin" -q -p port -h host -q -f pwdpolicy.ldif

pwdpolicy.ldifの内容は次のとおりです。

dn: A_user,cn=users,dc=us,dc=mycompany,dc=com
changetype: modify
add: pwdpolicysubentry;entrylevel
pwdpolicysubentry;entrylevel: cn=pwdpolicies,dc=us,dc=mycompany,dc=com

パスワード・ポリシーはA_userにのみ適用されます。pwdpolicysubentry属性のエントリにentrylevelサブタイプがない場合、パスワード・ポリシーはサブツリー全体に適用されます。

29.3.6 コマンド行ツールを使用したOracle Internet Directoryの期限切れユーザーの判別

期限切れユーザーを判別し、そのユーザーをディレクトリから削除するなど特定のアクションを実行したい状況があります。

ノート:

Oracle Internet Directoryの期限切れユーザーは、特定の属性で示されることはありません。期限切れユーザーは、システム時間、許可される最大非アクティブ時間、およびユーザーの最後の正常なログイン時間に応じて一時的な状態に置かれます。期限切れ状態は、ユーザーのバインドまたはパスワード比較操作中に判別されます。

期限切れユーザーを判別するには、Oracle Internet Directoryデプロイメントが次のように構成されている必要があります。

  • 各ユーザーの最後の正常なログイン時間のトラッキングは、orclPwdTrackLogin属性を1に設定することによって有効にする必要があります。

  • orclpwdmaxinactivitytime属性は0 (デフォルト)以外の値に設定する必要があります。この属性によって、ユーザーのアカウントが自動的に期限切れになるとみなされる非アクティブ時間が秒数で指定されます。

ユーザーのアカウントが期限切れであるとみなされるかどうかを判別するには:

  1. ユーザーの最後の正常なログインのタイムスタンプをorcllastlogintime属性から判別します。たとえば:
    ldapsearch -h oid_host p oid_port -D "cn=orcladmin" -q -s base \
    -b "cn=jdoe,cn=users,o=oracle" "(objectclass=*)" orcllastlogintime
    
  2. ユーザーのorcllastlogintime値を現在のシステム時間から減算します。結果がorclpwdmaxinactivitytime値よりも大きい場合、ユーザーは期限切れ状態であるとみなされます。
  3. 必要な場合は、期限切れユーザーをディレクトリから削除します。