15 スキーマ・パスワードの有効期限の警告およびウォレット・リフレッシュの構成
この章では、スキーマ・パスワードの有効期限およびウォレット・リフレッシュを管理して、構成スキーマと結果スキーマにOracleデータベースを使用するインストールをメンテナンスする方法について説明します。
この章のトピックは、次のとおりです:
15.1 スキーマ・パスワードの有効期限の警告の構成
EDQで構成スキーマと結果スキーマにOracleデータベースを使用する場合、タスクが定期的に実行されて、スキーマ・パスワードの有効期限がチェックされます。定義されたしきい値内に有効期限が見つかった場合、EDQは警告を生成できます。
構成
パスワードの有効期限チェックおよび通知を構成するには、EDQローカル・ホーム・ディレクトリ内のdirector.propertiesで次のプロパティを使用します:
プロパティ | 説明 | デフォルト値 |
---|---|---|
|
有効期限チェックの間隔。値は60秒より小さくすることはできません。 0に設定すると、有効期限チェックは無効になります。 |
1d 有効な接尾辞は、 接尾辞を指定しない場合、デフォルトの接尾辞は |
|
有効期限がこの間隔内にあるときに警告を生成します。 |
7d 有効な接尾辞は、 接尾辞を指定しない場合、デフォルトの接尾辞は |
|
警告を生成するまでの有効期限チェックの数を指定します。 このオプションを使用して、生成される警告の数を制限します。たとえば、有効期限チェックの頻度を上げるが、チェックごとに警告を生成しない場合は、次を設定します:
EDQは、パスワードの有効期限を12時間ごとにチェックしますが、警告は1日おきに生成します。 |
1 |
|
組込みトリガーで使用される電子メール・アドレスのスペースまたはカンマ区切りのリスト。 |
トリガー
有効期限の警告は、次のパスでトリガーを実行することによって生成されます:
/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