パスワード・ポリシーとは、パスワードの使用方法を管理する規則のセットです。この章の項目は次のとおりです。
注意: この章で言及するOracle Delegated Administration Servicesはすべて、Oracle Delegated Administration Services 10g(10.1.4.3.0)以上のことです。 |
パスワード・ポリシーとは、パスワードの使用方法を定めた一連の規則のことです。ユーザーがディレクトリへのバインドを試みると、ディレクトリ・サーバーは、ユーザーのパスワードがパスワード・ポリシーの様々な要件に適合するかを確認します。
パスワード・ポリシーを確立する際は、次のような規則を設定します。なお、この規則はほんの一部です。
指定されたパスワードの有効期限
パスワードの最小必須文字数
パスワードに必要な数字の文字数
この項の項目は次のとおりです。
パスワード・ポリシーとは、パスワードの構文および使用方法を管理する規則のセットです。Oracle Internet Directoryによって適用されるパスワード・ポリシーには、次のようなものがあります。
指定されたパスワードの有効期限
パスワードの最小必須文字数
パスワードに必要な数字の最小数
アルファベット文字の最小数
繰返し文字の最小数
大文字および小文字の使用
英数字以外の文字(特殊文字)の最小数
ユーザーによる定期的なパスワードの変更
パスワード変更の最小および最大間隔
パスワードの期限切れ(時間またはログイン回数による)後のログインの猶予期間
以前使用したパスワードのユーザーによる再利用禁止
該当するコンテナにパスワード・ポリシー・エントリを作成し、それをpwdpolicy
オブジェクトと関連付けます。(Oracle Internet Directoryを初めてインストールする場合、デフォルトのエントリが存在します。)
手順1で作成したエントリのpwdpolicy
オブジェクト・クラスの下で定義された属性の値を設定して、希望するポリシーを作成します。
orclepwdpolicynable
属性を1に設定することにより、ポリシーを有効にします。これが1に設定されていない場合、Oracle Internet Directoryはポリシーを無視します。
ポリシーによって管理されるサブツリーを決定します。ポリシーの識別名を指定したpwdpolicysubentry
属性をサブツリーのルートに追加および移入します。
関連項目: pwdPolicy オブジェクト・クラス、およびパスワード・ポリシーに関連するtop オブジェクト・クラスの属性のリストおよび説明は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のオブジェクト・クラスのリファレンスを参照してください。 |
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
コンテナの下に作成できます。図28-1に、このシナリオを示します。
実行時に、Oracle Internet Directoryは、エントリの移入されているpwdpolicysubentry
属性を探し、その値で示されたポリシーを適用して、エントリで適用可能なパスワード・ポリシーを解決します。移入されたpwdPolicysubentry
属性が存在しない場合、Oracle Internet Directoryは、pwdPolicysubentry
が移入されている一番近い上位エントリが見つかるまで、ディレクトリ・ツリーを遡っていきます。Oracle Internet Directoryは、そのエントリの値で示されたパスワード・ポリシーを適用します。
注意:
|
Oracle Internet Directoryのデフォルトのパスワード・ポリシーは次のとおりです。
10回ログインに失敗すると、アカウントがロックアウトされます。スーパーユーザー・アカウントを除き、すべてのアカウントは、ディレクトリ管理者がパスワードを再設定するまで、24時間ロックされたままになります。アカウント・ロックアウト継続時間が経過しても、正しいパスワードでバインドするまでユーザー・アカウントはロックされたままになります。
スーパーユーザー・アカウントであるcn=orcladmin
がロックされると、OIDデータベース・パスワード・ユーティリティを使用してロックを解除するまで、ロックされたままになります。このユーティリティでは、ODSユーザー・パスワードの入力が要求されます。ODSパスワードを入力すると、アカウントのロックが解除されます。
関連項目:
|
Oracle Internet Directoryリリース9.0.4からは、ルートOracleコンテキストのパスワード・ポリシー・エントリがスーパーユーザーに適用されますが、アカウントのロックアウトを管理するパスワード・ポリシーのみがそのアカウントに適用されます。
Oracle Internet Directoryのパスワード・ポリシーは、シンプルなバインド(userpassword
属性に基づく)、userpassword
属性に対する比較操作およびSASLバインドに適用されます。SSLバインドおよびプロキシ・バインドには適用されません。
表28-1 パスワード・ポリシーの属性
Oracle Internet Directoryサーバーでは、ユーザー固有のパスワード・ポリシー関連情報がユーザー・エントリの操作属性に格納されます。このサーバーのみがこれらの属性を変更できます。表28-2を参照してください。
表28-2 パスワード・ポリシー関連の操作属性
属性 | 説明 |
---|---|
最後に成功したログインのタイムスタンプ。パスワード・ポリシー属性 |
|
ログインの成功時にクリアされる、特定のIPアドレスからの失敗したログイン試行の一連のスペース区切りのタイムスタンプ。これは、複数値の属性にすることができます。 |
|
アカウントがロックされた時間。 |
|
最後のログイン試行を確認するには、orcllastlogintime
をpwdfailuretime
の最後のタイプスタンプを比較します。最新のものが最後のログイン試行時間です。
第28.1.3項「細かなパスワード・ポリシー」で説明しているように、Oracle Internet Directoryは、移入された適切なpwdPolicysubentry
を見つけることで、エントリに適用可能なポリシーを判断します。ユーザー・パスワードが指定のポリシーの要件を満たしていることを確認する場合、ディレクトリ・サーバーは、次のことを検証します。
パスワード・ポリシーが有効であること。これには、パスワード・ポリシー・エントリの属性orclpwdpolicyenable
の値を確認します。値1は、パスワード・ポリシーが有効であることを示します。値0は、無効であることを示します。
パスワード・ポリシー構文情報(英数字の数、パスワード長など)の正確さ。ディレクトリ・サーバーは、ldapadd
およびldapmodify
がuserpassword属性上で実行中に構文チェックを行います。
パスワード・ポリシー状態情報。次に、その例を示します。
ユーザー・パスワードが作成または変更されたときのタイムスタンプ。
最小パスワード有効期限は、現在の時刻からパスワード作成時刻を引いた値より大きくなります。
ユーザーが連続してログインに失敗したときのタイムスタンプ。
ユーザーのアカウントがロックされた日時。
パスワードが再設定されたため、最初の認証でユーザーがパスワードを変更する必要があることを示すインジケータ。
ユーザーが以前に使用したパスワードの履歴。
猶予期間ログインのタイムスタンプ。
猶予期間ログインが時間で設定されている場合、サーバーは現在の時刻と期限切れ時刻の差異をチェックします。
ディレクトリ・サーバーは、ldapbind
およびldapcompare
の実行中に、状態情報をチェックしますが、このチェックは、orclpwdpolicyenable
属性が1に設定されている場合にのみ実行されます。
パスワード値の構文チェックを使用可能にするには、パスワード・ポリシー・エントリのorclpwdpolicyenable
およびpwdchecksyntax
属性をTRUE
に設定します。
パスワード・ポリシー違反が発生すると、ディレクトリ・サーバーはクライアントに様々なエラーおよび警告メッセージを送信します。Oracle Internet Directoryでは、10g(10.1.4.0.1)以降、クライアントがLDAPバインドまたは比較操作の一環としてパスワード・ポリシー・リクエスト制御を送信する場合にのみ、ディレクトリ・サーバーはこれらのメッセージをLDAP制御として送信できます。クライアントがリクエスト制御を送信しない場合、ディレクトリ・サーバーは、レスポンス制御を送信しません。かわりに、追加情報の一部としてエラーおよび警告を送信します。
10g(10.1.4.0.1)以前のリリースでは、パスワード・ポリシーは、レルム固有の共通エントリにあるorclcommonusersearchbase
属性によって制御されていました。旧リリースからアップグレードした場合、アップグレード時に既存のパスワード・ポリシーが新規アーキテクチャに移行されています。新しいアーキテクチャでは、識別名を単純にorclcommonusersearchbase
に追加すると、レルムのデフォルトのパスワード・ポリシーが、その識別名をルートとするサブツリーに適用されることが保証されなくなります。
Oracle Internet Directory 10g(10.1.4.0.1)以降では、パスワード・ポリシーを定義すると、そのパスワード・ポリシーをそのディレクトリのサブツリーに適用するために、もう1つの手順を実行する必要があります。pwdPolicysubentry
属性に希望するパスワード・ポリシーの識別名を指定して、そのポリシーの適用対象にしようと考えているサブツリーのルートであるエントリに移入します。図28-2では、これを説明しています。l=us
にあるpwdPolicy
には、デフォルト・ポリシーの識別名"cn=default,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContext"
が含まれているため、デフォルト・ポリシーが米国内のユーザーに適用されます。l=uk
にあるpwdPolicysubentry
には、ポリシー"cn=policy2,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContext"
の識別名が含まれているため、policy2
が英国のユーザーに適用されます。
注意: サブツリーのパスワード・ポリシー・エントリおよびユーザーはレプリケートされます。11g リリース1(11.1.1)または10g(10.1.4.0.1)のポリシーを10g(10.1.4.0.1)より前のノードにレプリケートしても、このノードの機能に悪影響を及ぼすことはありません。ただし、10g(10.1.4.0.1)より前のノードは、新しいパスワード・ポリシーを適切に解釈できません。レルムのOracleコンテキストでパスワード・ポリシーを適用し続けます。 |
Oracle Directory Services Managerを使用して、パスワード・ポリシーを作成、割当ておよび変更できます。
この項の項目は次のとおりです。
第28.2.1項「Oracle Directory Services Managerを使用したパスワード・ポリシーの表示」
第28.2.2項「Oracle Directory Services Managerを使用したパスワード・ポリシーの変更」
第7.4.5項「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「セキュリティ」を選択します。
左側のペインで「パスワード・ポリシー」を展開します。すべてのパスワード・ポリシーが左側のペインに相対識別名順に表示されます。完全識別名を表示するには、エントリ上にマウスを移動します。
パスワード・ポリシーを選択してその情報を右側のペインに表示します。
パスワード・ポリシーを変更する手順は、次のとおりです。
第7.4.5項「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「セキュリティ」を選択します。
左側のペインで「パスワード・ポリシー」を展開します。すべてのパスワード・ポリシーが左側のペインに表示されます。
変更するパスワード・ポリシーを選択します。5つのタブ・ページが、右側のペインに表示されます。
必要に応じて、「一般」タブ・ページの編集可能な属性フィールドを変更します。
「アカウントのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「グローバル・ロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
「IPのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「IPのロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
「パスワード構文」タブ・ページを選択した後、フィールドを変更する場合は「パスワード構文のチェック」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
ポリシーを適用するサブツリーを変更するには、「有効サブツリー」タブ・ページを選択します。サブツリーを追加するには、「追加」を選択します。識別名を入力するか、「参照」を選択し、識別名(DN)パスの選択ウィンドウを使用して、ポリシーを適用するサブツリーにナビゲートします。
変更終了後、「適用」を選択します。
新規のパスワード・ポリシーを作成する手順は、次のとおりです。
第7.4.5項「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
タスク選択バーで、「セキュリティ」を選択します。
左側のペインで「パスワード・ポリシー」を展開します。すべてのパスワード・ポリシーが左側のペインに表示されます。
新規ポリシーを作成するには、「作成」を選択します。また、左側のペインで既存のパスワード・ポリシーを選択し、「類似作成」を選択します。
必要に応じて、「一般」タブ・ページの編集可能な属性フィールドを設定または変更します。
「アカウントのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「グローバル・ロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
「IPのロックアウト」タブ・ページを選択した後、フィールドを変更する場合は「IPのロックアウト」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
「パスワード構文」タブ・ページを選択した後、フィールドを変更する場合は「パスワード構文のチェック」を選択します。必要に応じて、編集可能な属性フィールドを変更します。
パスワード・ポリシーをサブツリーに割り当てるには、「有効サブツリー」タブ・ページを選択して、「追加」を選択します。識別名を入力するか、「参照」を選択し、識別名(DN)パスの選択ウィンドウを使用して、ポリシーを適用するサブツリーにナビゲートします。
変更終了後、「適用」を選択します。
この項の項目は次のとおりです。
次の例では、特定のパスワード・ポリシー・コンテナの下にあるパスワード・ポリシーを取得します。
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)"
新規パスワード・ポリシーを作成するには、ポリシー・エントリを適切なコンテナに追加します。これを実行するために最適な方法は、次のとおりです。
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
を使用できます。ORACLE_INSTANCE
が設定されていることを確認してから、次を入力します。
ldifwrite connect="conn_str" \ baseDN="cn=default,cn=pwdPolicies,cn=Common,cn=Products, cn=OracleContext" \ ldiffile="pwpolicy.ldif"
新規ポリシーに対して一般名および目的の値が使用されるようLDIFファイルを変更します。たとえば、cn=default
をcn=policy1
に変更し、pwdMaxFailure
を10
から5
に変更します。
ldapadd
を使用して新規エントリを追加します。次の形式のコマンドラインを使用します。
ldapadd -p port_number -h host -D cn=orcladmin -q -f pwdpolicy.ldif
新規パスワード・ポリシーをサブツリー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
次の例では、デフォルトのパスワード・ポリシーの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
dn: cn=default,cn=pwdPolicies,cn=common,cn=products,cn=OracleContext, o=my_company,dc=com changetype: modify replace: pwdMaxAge pwdMaxAge: 10000