パスワードに関するご質問が増えている印象です。実際にパスワード長を11桁以上にする、というようなケースも複数見聞するようになってきました。
Q. IBM i のユーザープロフィールのパスワード長を12ケタ以上にしたい
ここでは仮にパスワード最小長を12ケタにしたい、としました。
類似例でパスワードは英大文字、小文字、数字を混在させたい、パスワード有効期間を設定したいなど各社ごとの要件で具体的な内容はバリエーションがあります。
今回の例での全体図は以下の通りです。
A. 設定はパスワード関連のシステム値で実施
上記から個々の要件に必要なパスワードの設定項目を探します。今回は最小長を設定したい、なので、システム値QPWDMINLEN Password Minimum Length を設定します。
手順① パスワード長を11桁以上にしたい場合は、システム値QPWDLVLも変更が必要
従来のデフォルトはパスワード長10桁でしたので、これを変更(拡張)するためにQPWDLVS パスワードレベル システム値をまず、変更します。
12桁のパスワード設定だけであれば、パスワードレベルは2,3,4のいずれかであればOKです。今回は4と2のシステムで試してみましたが、パスワード長12桁以上にする、だけについて言えばどちらも同様な結果になります。
CHGSYSVAL SYSVAL(QPWDLVL) VALUE(2)
手順② パスワード最小長 QPWDMINLEN を12に変更
CHGSYSVAL SYSVAL(QPWDMINLEN) VALUE(12)
以上でシステム全体の設定は終了です。
上記設定をユーザーIDに反映するにはユーザーのパスワード有効期間を満了する必要がある
以上の設定でシステム全般の設定は完了です。
が、このままだと従来の12桁より短いパスワードでサインオンが出来てしまいます。
パスワード関連のシステム値の設定変更を有効化するには、ユーザープロフィール毎に持っている、パスワード満了 *PWDEXP パラメーターを *YESに変更する必要があります。
一番手っ取り早いのはCHGUSRPRFコマンドで変更する方法です。
CHGUSRPRF USRPRF(GOMA2) PWDEXP(*YES)
これ以外の方法でも(たとえばパスワード有効期限QPWDEXPITV に指定した期間が経過した際などに)パスワード満了 *PWDEXP(*YES)になれば、上記のシステム設定変更が影響を及ぼします。
パスワード満了したユーザーがログインすると、パスワードの変更を求められる
そのようにしてパスワード満了したユーザーがサイン・オンすると(従来の短いパスワードでログインできます)、以下のようなパスワード変更の要求画面が表示されます。
新規パスワードに新しいパスワードルールに沿ったパスワードを入力するとパスワードが変更されます。
参考
上記システム値を変更した後で、パスワードが満了していないユーザーがログインするとCPF22C2メッセージ、続けてCPI22AE がQSYSOPRに出力され、古いパスワードルールのまま運用されていることが検知できます。(スクショ忘れました、すみません)


