Microsoft Entra ID のパスワード有効期限のデフォルト値は 90 日です。Azure Portalにログインする為のアカウントもこの制約を受けますが、これを無期限にすることが可能です。
以下公式ドキュメントを参照することで可能ですが、いろいろと躓くことが多いと思われるので、手順として残しておこうと思います。
PowerShell を使用したパスワード ポリシーの設定または確認
1.事前準備
Microsoft Graph PowerShell SDK をインストールする
を参考に、「Microsoft Graph PowerShell」をインストールしてください。
インストールが出来た場合、
Get-InstalledModule Microsoft.Graph
コマンドでインストールされたことを確認してください。以下のようにモジュール詳細が表示されれば正常にインストールされています。似たようなモジュールがあるので、もし、上記コマンドの結果がエラーになるようであれば、正常にインストールされていませんのでご注意ください。
2.テナントへの接続
Microsoft 認証ライブラリを使用してMicrosoft Entra テナントに接続します。
パスワードポリシーを変更する場合、以下のような権限を指定してコマンドします。
Connect-MgGraph -Scopes “User.ReadWrite.All”,”Group.ReadWrite.All”
コマンド実行後、ブラウザが起動する為、ユーザ管理者 と同等以上のアカウントでログインしてください。
ログイン後、初回接続時には以下画面が表示されます。「組織の代理として同意する」にチェックを入れ、「承諾」をクリックします。
なお、接続する際のアカウントの権限が不足していると、以下のような画面となり、以降の操作が実施できません。
無事接続できると、以下のように「Welcome to Microsoft Graph!」の文字が表示されます。
参考
Connect-MgGraph コマンドでのScopesについて
3.パスワード無期限化と結果確認
まず、全ユーザのパスワード有効期限がどのようなステータスか確認します。
Get-MGuser -All -Property UserPrincipalName, PasswordPolicies | Select-Object UserprincipalName,@{N=”PasswordNeverExpires”;E={$_.PasswordPolicies -contains “DisablePasswordExpiration”}}
上記コマンドにより、各ユーザ毎のパスワード有効期限ポリシーが有効化どうか確認できます。
出力例:
「PasswordNeverExpires」というカラムに「True」と表示されていれば、そのユーザのパスワードは無期限に設定されています。デフォルトは「False」(パスワード有効期限あり)です。
このあたりのこともマニュアルに記載されています。
しかしながら、上記マニュアルですが、
「すべてのユーザーについてパスワードを無期限にする設定を表示するには、次のコマンドレットを実行します。」というコマンド部分には誤りがあるようなのでご注意ください。
Get-MgUser コマンドは、すべてのプロパティをデフォルトで返すわけではなく、一部のプロパティは明示的に指定しないと取得されないようです。
その為、マニュアルの以下部分、「Get-MgUser -All | Select-Object 」では正しく表示されません。先ほど紹介したコマンドのように、「Get-MGuser -All -Property UserPrincipalName,・・・」という形で、必ず「Property」をご指定ください。
※この部分で躓いたので記載しました。
以下マニュアルの画像のコマンドだと正しく表示されない為注意—–
——————————————————————————–
パスワードを無期限化するには以下コマンドをユーザ単位で実施します。
Update-MgUser -UserId <ユーザID> -PasswordPolicies DisablePasswordExpiration
サンプルで示すと以下のような形です。
Update-MgUser -UserId pxt-test-user001@testXXXXXX.onmicrosoft.com -PasswordPolicies DisablePasswordExpiration
コマンドにエラー出力が無ければ正常終了です。再度全ユーザのパスワード有効期限ポリシーを表示させてみれば変更が確認できるはずです。
再度以下コマンドを実施します。
Get-MGuser -All -Property UserPrincipalName, PasswordPolicies | Select-Object UserprincipalName,@{N=”PasswordNeverExpires”;E={$_.PasswordPolicies -contains “DisablePasswordExpiration”}}
指定したユーザの「PasswordNeverExpires」というカラムが「True」に変わったことが確認できたでしょうか?
上記は、以下2つのユーザIDのパスワードが無期限となっている状態です。
admintestuser@testXXXXXX.onmicrosoft.com
pxt-test-user001@testXXXXXX.onmicrosoft.com
以上が、パスワード無期限化の手順です。
作業完了後、
Disconnect-MgGraph
にてテナントへの接続を解除してください。お疲れ様でした。