15 スキーマ・パスワードの有効期限の警告およびウォレット・リフレッシュの構成

この章では、スキーマ・パスワードの有効期限およびウォレット・リフレッシュを管理して、構成スキーマと結果スキーマにOracleデータベースを使用するインストールをメンテナンスする方法について説明します。

この章のトピックは、次のとおりです:

15.1 スキーマ・パスワードの有効期限の警告の構成

EDQで構成スキーマと結果スキーマにOracleデータベースを使用する場合、タスクが定期的に実行されて、スキーマ・パスワードの有効期限がチェックされます。定義されたしきい値内に有効期限が見つかった場合、EDQは警告を生成できます。

このトピックでは次について説明します:

構成

パスワードの有効期限チェックおよび通知を構成するには、EDQローカル・ホーム・ディレクトリ内のdirector.propertiesで次のプロパティを使用します:

プロパティ 説明 デフォルト値

schema.password.expiry.check.interval

有効期限チェックの間隔。値は60秒より小さくすることはできません。

0に設定すると、有効期限チェックは無効になります。

1d

有効な接尾辞は、d (日)、h (時間)、m (分)、s (秒)です

接尾辞を指定しない場合、デフォルトの接尾辞はd (日)になります。

schema.password.expiry.warning.threshold

有効期限がこの間隔内にあるときに警告を生成します。

7d

有効な接尾辞は、d (日)、h (時間)、m (分)、s (秒)です

接尾辞を指定しない場合、デフォルトの接尾辞はd (日)になります。

schema.password.expiry.warning.frequency

警告を生成するまでの有効期限チェックの数を指定します。

このオプションを使用して、生成される警告の数を制限します。たとえば、有効期限チェックの頻度を上げるが、チェックごとに警告を生成しない場合は、次を設定します:

schema.password.expiry.check.interval = 12h

schema.password.expiry.warning.frequency = 4

EDQは、パスワードの有効期限を12時間ごとにチェックしますが、警告は1日おきに生成します。

1

schema.password.expiry.warning.emails

組込みトリガーで使用される電子メール・アドレスのスペースまたはカンマ区切りのリスト。

トリガー

有効期限の警告は、次のパスでトリガーを実行することによって生成されます:

/schema/config/expiring
/schema/results/expiring

schema.password.expiry.warning.emailsプロパティで構成されたアドレスにメールを送信する組込みトリガーがあります。カンマまたはスペースを使用して複数のアドレスを指定できます。送信する電子メールのSMTP詳細をenabled = trueとともにmail.propertiesに指定します。

また、柔軟性を高めるためにカスタム・トリガーを定義することもできます。トリガーの引数は次のとおりです:
  • label - スキーマ・ラベル - "config"または"results"
  • user - スキーマのデータベース・ユーザー名
  • date - 有効期限

次に、メッセージを記録し、プッシュ通知を生成して電子メールを送信する例を示します:

addLibrary("logging")
addLibrary("webpush")
addLibrary("mail")
 
function getPath() {
 return "/schema/(config|results)/expiring"
}
 
function run(path, id, env, label, user, date) {
  logger.log(Level.INFO, "{0} [{1}] expiring {2}", label, user, date);
 
  var p = WebPush.create(`${label} schema password will expire on ${date}`)
   
  p.title = "Database password expiry warning"
  p.push()
 
  var mh  = Mail.open({enabled : true});
  var msg = mh.newMessage("Database password expiry warning")
 
  msg.text = `${label} schema password will expire on ${date}`
  msg.addTo("admin@example.com")
  msg.type = "text/plain";
  msg.send()
}

15.2 スキーマ・パスワードのリセットの構成

ノート:

この情報は、Apache Tomcat環境で実行されているEDQインストールにのみ適用されます。

データベースURLおよび資格証明がdirector.propertiesで構成されているTomcatでEDQが実行されている場合、director.propertiesを編集してサーバーを再起動しなくても、データベース内のスキーマ・パスワードを変更できます。スキーマ・パスワードのリセットは、次のいずれかの方法でトリガーできます:

このトピックでは次についても説明します:

スキーマ・パスワードの自動リセットの構成

自動パスワード・リセットを構成するには、プロパティschema.password.auto.reset.afterを設定します。この値では、パスワードがデータベースでリセットされるまでに、パスワードの有効期限が検出される回数を指定します。自動リセットを無効にするには、値を-1に設定します。

自動チェックで有効期限が検出されたら即座にパスワードをリセットするには、次を設定します:

schema.password.auto.reset.after = 0

5回の警告後にパスワードをリセットするには、次を設定します。

schema.password.auto.reset.after = 5

schema.password.expiry.check.intervalが1日(デフォルト)に設定されている場合、この設定により、自動リセットが発生する前にパスワードを手動で更新するための5日間が管理者に与えられます。

REST APIを使用したスキーマ・パスワードのリセット

システム管理REST APIを使用してスキーマ・パスワードをリセットするには、次のインタフェースを使用します。このリクエストを実行するには、システム管理権限が必要です。

POST https://server/edq/admin/schemas/setpassword

リクエストのペイロードには、次の表に示す属性が含まれます:

属性 説明
label 必須。スキーマ・ラベル。値は"config"または"results"である必要があります。
password 必須。新しいパスワード。ランダム・パスワードを指定するには、""または"%"を使用します。

トリガーのスクリプト・ライブラリを使用したスキーマ・パスワードのリセット

トリガー・スクリプトは、スクリプト・ライブラリを使用してスキーマ・パスワードを更新できます。ライブラリを使用するには、スクリプトの先頭に次の行を追加します:

addLibrary("schemas")

ライブラリが公開するのは、次の定数フィールド:

名前 説明
Schemas.CONFIG 構成スキーマの内部ラベル。 config
Schemas.RESULTS 結果スキーマの内部ラベル。 results

および次のメソッドを持つオブジェクトschemasです:

schemas.updatePassword(label [, password])

これにより、いずれかのスキーマのパスワードが更新されます。labelはスキーマを識別するもので、"config"または"results"に設定する必要があります。passwordを省略すると、ランダム・パスワードが使用されます。

次に、有効期限の警告トリガーを使用する例を示します:

addLibrary("schemas")
 
function getPath() {
 return "/schema/(config|results)/expiring"
}
 
function run(path, id, env, label, user, date) {
  schemas.updatePassword(label);
}

トリガー

スキーマのパスワード・リセットでは、次のパスでトリガーが実行されます:

/schema/config/passwordreset
/schema/results/passwordreset

スキーマ・パスワードの有効期限の警告と同様に、schema.password.expiry.warning.emailsプロパティで構成されたアドレスにメールを送信する組込みトリガーがあります。カンマまたはスペースを使用して複数のアドレスを指定できます。送信する電子メールのSMTP詳細をenabled = trueとともにmail.propertiesに指定します。

また、柔軟性を高めるためにカスタム・トリガーを定義することもできます。トリガーの引数は次のとおりです:
  • label - スキーマ・ラベル - "config"または"results"
  • user - スキーマのデータベース・ユーザー名
  • password - 新しいパスワード

デフォルトのトリガーによって生成される電子メールには、新しいパスワードは含まれません。

クラスタ化の考慮事項

EDQがTomcatサーバーのクラスタで実行されている場合、デフォルトの更新プロセスでは、同じdirector.propertiesファイルがすべてのサーバー間で共有されているとみなされます。内部データ・ソース・パスワードはすべてのサーバーで更新されますが、プロパティは単一のサーバーでのみ書き込まれます。各サーバーに固有のdirector.propertiesがある場合は、次を設定する必要があります:

schema.password.shared.properties = false

パスワードの強度

Oracleのランダム・パスワードは、固定長で最小数の大文字と小文字、および固定数の数字と特殊文字(-_#)で構成されます。個数は、次のプロパティを使用してオーバーライドできます:

プロパティ 説明 デフォルト値
oracle.pw.length パスワードの長さ。 12
oracle.pw.lower 小文字の最小数。 2
oracle.pw.upper 小文字の最小数。 2
oracle.pw.numeric 数字の数。 2
oracle.pw.special 特殊文字の数。 2

15.3 自動ウォレット・リフレッシュの構成

ノート:

この情報は、Apache Tomcat環境で実行されているEDQインストールにのみ適用されます。

EDQがmTLSを有効にしたリポジトリ・データベースとしてAutonomous Databaseインスタンスを使用している場合、埋込み証明書の存続期間には制限があるため、ウォレット・ファイルを定期的にリフレッシュする必要があります。EDQは、定義された時間より古いウォレット・ファイルをリフレッシュするように構成できます。

自動ウォレット・リフレッシュを構成するための前提条件

自動ウォレット・リフレッシュをサポートするには、次のプロパティを使用してAutonomous DatabaseインスタンスのOCIDを構成する必要があります:

プロパティ 説明
dataSource.adb.ocid 構成スキーマ・データベースのOCID。
resultsDataSource.adb.ocid 結果スキーマ・データベースのOCID。

また、JDBC URLは次のようにする必要があります:

jdbc:oracle:thin:@service?TNS_ADMIN=/pathtowalletdirectory

両方のスキーマで同じデータベース・インスタンスと同じウォレット・ディレクトリを使用する場合は、dataSource.adb.ocidのみを設定します。resultsDataSource.adb.ocidは設定しないでください。

自動ウォレット・リフレッシュの構成

自動ウォレット・リフレッシュを有効にするには、プロパティschema.wallet.refresh.intervalを設定します。これは、リフレッシュが実行されるまでのウォレットの最小経過時間です。ウォレットの経過時間は、cwallet.ssoファイルの変更時間によって決まります。プロパティ値は、d/h/m/s接尾辞付きの期間です。接尾辞がない場合、値は日数として処理されます。

schema.wallet.refresh.interval = 30d
schema.wallet.refresh.interval = 60