このドキュメントでは、Oracleモードにおけるパスワードローテーションの設定方法、動作、および例について説明します。パスワードローテーションの仕組みにより、パスワード変更後の設定された有効期間内は、古いパスワードと新しいパスワードを同時に認証に使用できるため、スムーズな移行とシームレスな切り替えを実現し、パスワード変更プロセス中の業務中断リスクを低減できます。
説明
この機能はV4.4.2 BP1バージョンからサポートされています。
パスワードローテーションの動作
設定する前に、パスワードローテーションの動作特性を理解しておいてください:
- 自動的にローテーションが開始される場合:ユーザーが属するProfileに
PASSWORD_ROLLOVER_TIMEが設定されている場合、パスワードの変更は自動的にパスワードローテーションをトリガーします。ローテーション期間内は、古いパスワードと新しいパスワードの両方を使用してログインできます。 - ローテーション期間中に複数回パスワードを変更した場合:ローテーションの有効期間内に複数回パスワードを変更した場合、通常は最初に保持された古いパスワードと最後に設定された新しいパスワードのみが有効となり、その間に生成された中間のパスワードは有効な古いパスワードとして扱われません。
- ローテーション期間を超えた場合:Profileで指定されたローテーション時間を超えると、古いパスワードは自動的に無効になり、新しいパスワードのみが使用可能になります。
- ローテーションを早期に終了することができる場合:自然に期限切れになるのを待たずに、現在のパスワードローテーション期間を早期に終了し、古いパスワードを即座に無効にすることができます(現在のパスワードのみ保持)。具体的なコマンドについては、後述の「ローテーションを手動で終了する」セクションを参照してください。
パスワードローテーションの設定
パスワードローテーションの有効期間を制御する
パスワードローテーションとは、二重パスワード状態で、ユーザーはいつでもパスワードを変更できますが、古いパスワードはローテーションの有効期間が過ぎるか、手動でローテーションを終了するまでログインに使用できることを指します。現在の機能では、ローテーションの有効期間を制御する構成パラメータと、ローテーションの有効期間を確認するビューを提供しています。
- 制御方法:Profileレベルの構成パラメータ PASSWORD_ROLLOVER_TIME を使用して、パスワードローテーションの期間をマイクロ秒単位で定義します。この期間内であれば、ユーザーはパスワードを変更した後、一定期間古いパスワードと新しいパスワードの両方を使用して認証を完了できます。期間を超えたり、手動でローテーションを終了したりすると、古いパスワードは無効になります。ユーザーがパスワードローテーション期間に入るには、
PASSWORD_ROLLOVER_TIMEが設定されたProfileに関連付けられている必要があります。 - ローテーションの有効期間を確認する:DBA_PROFILES リソース名の
PASSWORD_ROLLOVER_TIME対応行を確認することで、そのLIMIT列に表示されている値がテナント/Profileに設定されたローテーションポリシーです。 - Profileの説明:Profileは、ユーザーのパスワードとログイン制限のポリシーテンプレートです。ユーザーを特定のProfileに関連付けると、そのユーザーはその中のパスワードポリシーを継承します。例えば、
PASSWORD_ROLLOVER_TIMEはその一つのポリシーです。
ローテーションを手動で終了する
自然に期限切れになるのを待たずに、現在のパスワードローテーション期間を早期に終了し、古いパスワードを即座に無効にすることができます(現在のパスワードのみ保持):
ALTER USER user_name EXPIRE PASSWORD ROLLOVER PERIOD;
パラメータの説明は以下の通りです:
user_name:ターゲットのOracleユーザー名。実行権限は通常のALTER USERと同じであり、通常はALTER USERシステム権限が必要です。
例
DEFAULT Profileのパスワードローテーション有効期間を 86400000000 マイクロ秒に設定します(例値、実際の値は業務に応じて換算してください)。対応する管理権限が必要です:
obclient [SYS]> ALTER PROFILE "DEFAULT" LIMIT PASSWORD_ROLLOVER_TIME 86400000000;
ユーザー appuser のパスワードを NewSecret に更新し、プロファイルでローテーションが有効な場合はローテーション期間に入ります。
obclient [SYS]> ALTER USER appuser IDENTIFIED BY NewSecret;
ビジネス切り替え完了後、ローテーションを早期終了します。
obclient [SYS]> ALTER USER appuser EXPIRE PASSWORD ROLLOVER PERIOD;
機能のメンテナンス
パスワードローテーションの状態はシステムビューで確認できます。
- パスワードローテーション中であり、アカウントがまだ正常にログイン可能な場合、
DBA_USERSまたはUSER_USERSビューのACCOUNT_STATUSフィールドにはOPEN & IN ROLLOVERと表示されます。これはアカウントが正常でパスワードローテーション期間中であり、新旧のパスワードどちらも使用可能であることを示します。