Windows LAPS for Entra ID:管理者パスワード複雑化や権限剥奪運用の足がかりに

Toshiki Tsuji
Toshiki Tsuji

情報システムセキュリティアドバイザー

こんにちは。tsuji です!

今回は、Windows 端末のローカル管理者アカウントのパスワードを管理できる Windows LAPS についての紹介します。

Entra ID 向けの Windows LAPS とは

Windows LAPS は、Windows 端末のローカル管理者アカウントのパスワードを自動で管理 (複雑化・定期変更・バックアップ) するための Windows OS 組み込み機能です。

従来の Microsoft LAPS (レガシー) はオンプレの Active Directory 環境を前提としたソリューションでしたが、後継となる Windows LAPS では以下の機能が拡張されています。

  • Entra ID へのパスワードバックアップ
  • Intune による LAPS ポリシー管理
  • Microsoft Entra 管理センターでの監査ログ管理
  • ローカル管理者アカウントの自動作成・管理 (自動アカウント管理機能)

具体的には、Windows LAPS では以下のことができます。

  • Windows 端末のローカル管理者に対して
    • パスワードをランダムにすることができます
    • パスワードを定期的に自動で変更できます
    • ローカル管理者のパスワードを使用したあと一定時間後に自動でパスワード変更できます
  • Microsoft Intune 管理センター
    • 各端末のローカル管理者パスワードを確認できます
    • ローカル管理者のパスワード変更をリモートでプッシュできます
  • Microsoft Entra 管理センター
    • 各端末のローカル管理者パスワードを確認できます
    • パスワード変更などのログが確認できます
  • 端末
    • 適用ポリシーやパスワード変更などのログが確認できます

利用用途とその背景

Windows LAPS は、主に以下のようなユースケースで利用できます。

  • キッティングやトラブル対応用の管理者アカウントに共通パスワードを設定してしまっているケースの改善
  • 業務ユーザーに付与してしまっているローカル管理者権限の剥奪と、必要なときだけの一時貸し出し

利用イメージフローの例:

なぜローカル管理者権限の整理が必要か

今日では Intune などによって端末の設定やアプリ配布が自動化でき、業務ユーザーがローカル管理者権限を利用するシーンは少なくなっています。しかし、一部の作業でローカル管理者が必要なシーンは残るため、業務ユーザー自身にローカル管理者を付与してしまっているケースが多くみられます。

ローカル管理者権限が付与された状態では、以下のようなリスクがあります。

  • マルウェア感染時の特権昇格によるリモート実行
  • 従業員による未承認アプリの導入
  • セキュリティ設定の変更による脆弱性の発生

そのため、通常は業務ユーザーに対してローカル管理者権限が付与されていない状態が望ましいです。

Windows LAPS による解決

Windows LAPS を利用すると、ユーザーが管理者権限が必要な操作を行うときに表示されるユーザーアカウント制御 (UAC) にローカル管理者パスワードを入力することで、端末のユーザー切り替えを行うことなくローカル管理者権限操作を実行できます。これにより、業務ユーザーからローカル管理者権限を剥奪しつつ、必要なときだけ時限的に権限を貸し出す運用が可能になります。

前提条件

今回ご紹介する方法の Windows LAPS の端末要件とライセンス要件を記載します。

  • 端末要件
    • Entra Join または Entra Hybrid Join ※ Entra Registered は対象外
    • Windows 10 / 11、Windows Server 2019 / 2022
  • ライセンス要件
    • 無料
      • 端末にて、Intune で Windows LAPS を管理する場合は、Intune Plan 1 が必要
      • Windows LAPS は CSP、GPO でも管理可能

構成方法

以下の流れで構成していきます。場合によって不要なものはスキップしてください。

Entra ID LAPS 有効化
初回だけ必要な手順。ボタンポチって有効化するだけ。

ローカル管理者作成ポリシー構成
Intune の構成プロファイルでローカル管理者を作成。すでにローカル管理者があるからいらないっていう人はやらないくて良い構成。

ローカル管理者グループ制限ポリシー構成
Intune のアカウント保護ポリシーで管理者としたいアカウント Administrators グループに追加。ついでに既存端末でローカル管理者権限が付与されてしまっているユーザーから権限を削除したい場合も。こちらも不要の人はスキップして良い構成。

LAPS ポリシー構成
Intune のアカウント保護ポリシーでローカル管理者パスワードの複雑さや有効期間、リセット方法などを構成。

Entra ID LAPS 有効化

Entra ID の LAPS 機能を有効化します。

Microsoft Entra 管理センターへサインインします。

② 左メニューより [デバイス] > [すべてのデバイス] > [デバイス設定] へ移動します。

③ “Microsoft Entra Local Administrator Password Solution (LAPS) の有効化” を “はい” に変更して保存します。

ローカル管理者作成ポリシー構成

ローカル管理者を作成するポリシーを作成します。ローカル管理者を作成する必要がない場合は本手順をスキップしてください。

Microsoft Intune 管理センターへサインインします。

② 左メニューより [デバイス] > [構成プロファイル] > [+ プロファイルの作成] > [テンプレート] > [カスタム] を選択して作成します。

③ [基本] タブでは任意のポリシー名を入力して次の画面に進みます。

④ [構成設定] タブで [追加] ボタンをクリックします。

⑤ 作成したいローカル管理者を以下のように構成します。

  • 名前:<任意>
  • 説明:<任意>
  • OMA-URI:./Device/Vendor/MSFT/Accounts/Users/<作成したいローカル管理者名>/Password
    • ローカル管理者名は利用させたいユーザーがわかりやすいものをおすすめしますが、本例は “LocalAdmin01” で設定
  • データ型:文字列
  • 値:<任意>

⑥ 各設定を進めて設定を完了します。

ローカル管理者グループ制限ポリシー構成

端末のローカル管理者グループ (Administrators) へ LAPS 用に作成したローカルアカウントの追加と既存端末の利用ユーザーに付与されている不要なローカル管理者権限を削除します。本実施が不要な場合はスキップして次へ進みます。

Microsoft Intune 管理センターへサインインします。

② 左メニューより [エンドポイント セキュリティ] > [アカウント保護] > [+ ポリシーの作成] > [ローカル ユーザー グループ メンバーシップ] を選択して作成します。

③ [基本] タブでは任意のポリシー名を入力して次の画面に進みます。

④ [構成設定] タブで以下のように構成します。

  • ローカル グループ:管理者
  • グループとユーザーのアクション:追加 (置換)
  • ユーザー選択の種類:手動

※ 端末のローカル管理者グループ (Administrators) を指定したアカウントのみに構成するのではなく、ローカル管理者グループに指定した LAPS 用ローカルアカウントのみ追加したい場合は、”追加 (更新)” を選択し、追加するユーザーは LAPS 用ローカルアカウントのみをご指定ください

⑤ “選択されたユーザー/グループ” で既定で組み込まれている “Administrator” や作成するローカル管理者アカウントを指定します。

⑦ 各設定を進めて設定を完了します。 ※ ローカル管理者作成ポリシー構成 手順同様、グループ割り当てはデバイスグループを推奨します。

LAPS ポリシー構成

ローカル管理者に対するポリシーの構成 (パスワードの複雑性や有効期限、リセットタイミングなど) を行います。

Microsoft Intune 管理センターへサインインします。

② 左メニューより [エンドポイント セキュリティ] > [アカウント保護] > [+ ポリシーの作成] > [Local Admin password solution (Windows LAPS)] を選択して作成します。

③ [基本] タブでは任意のポリシー名を入力して次の画面に進みます。

④ [構成設定] タブで以下を参考に構成します。

  • バックアップ ディレクトリ:パスワードの保存先を設定します。Entra ID の他、オンプレの Active Directory に保存することも可能ですが、特段要件なければ Entra ID で良いでしょう。
  • パスワード有効期間日数:定期的にパスワードがリセットされるまでの期間 (既定:30 日) とパスワードのバックアップ先を指定できます。
    • Entra ID にバックアップする場合の許容値:7 〜 365 日の間で設定が可能
    • Active Directory にバックアップする場合の許容値:1 〜 365 日の間で設定が可能
  • 管理者のアカウント名:LAPS ポリシーを適用するアカウントを指定できます。ここでアカウントを指定してもそのアカウントがローカルに作成されるわけではないのでご注意ください。
  • パスワードの複雑さ:生成するパスワードの複雑さを設定します。
  • パスワードの長さ:生成するパスワードの桁数 (既定:14 文字、許容値:8 〜 64 文字) を指定します。
    ※ 注意:Entra Hybrid Join 端末の場合は、Active Directory のパスワードポリシーも適用されるため、パスワードポリシーに準拠しない構成はパスワード更新に失敗します
  • 認証後のアクション:ローカル管理者のパスワードが使用された場合にそのパスワードをどうするかを定義します。
    • パスワードのリセット:猶予期間が過ぎると、マネージドアカウントのパスワードがリセットされます。
    • このオプションは、アプリインストールなどでユーザーアカウント制御が実行された後、パスワード変更させたい場合などに有効です。
    • パスワードをリセットし、マネージドアカウントをログオフします。猶予期間が過ぎるとマネージドアカウントのパスワードがリセットされ、当該マネージドアカウントを使用しているすべての対話型ログオン セッションが終了します。
      • このオプションは、ローカル管理者を端末からサインインアウトさせたい場合に有効です。
    • パスワードをリセットして再起動する:猶予期間が過ぎると、マネージドアカウントのパスワードがリセットされ、マネージドデバイスが直ちに再起動します。
      • このオプションは、PowerShell など管理者権限で起動したままになっているアプリを強制終了させるなどに有効です。
  • 認証後のリセット遅延:上記のアクションを実行するまでの猶予期間 (既定値:24 時間、許容値:0 〜 24 時間) を設定します。 ※ 注意:0 時間はアクションが実行されません

Windows 11 24H2 以降では、以下の自動アカウント管理機能を利用することが可能です。

  • 自動アカウント管理が有効です:自動アカウント管理モードの有効/無効を設定します。有効にすると、LAPS がターゲットアカウントの作成・削除・パスワード管理をすべて自動で行います。既定では無効です。
  • アカウントの自動管理でアカウントを有効にする:自動管理対象のアカウントを有効状態にするか無効状態にするかを設定します。普段は無効にしておき、必要なときだけ有効にする運用も可能です。
  • 自動アカウント管理ターゲット:管理対象とするアカウントの種類を設定します。組み込みの Administrator アカウントを管理する方式と、LAPS が新しいカスタム管理者アカウントを自動作成して管理する方式 (既定) から選択できます。
  • 自動アカウント管理ランダム化名:パスワードローテーションのたびに、アカウント名の末尾にランダムな 6 桁の数値サフィックスを付与するかを設定します。
  • アカウントの自動管理の名前またはプレフィックス:自動作成されるアカウントの名前 (ランダム化名が無効の場合) またはプレフィックス (ランダム化名が有効の場合) を設定します。

⑤ 各設定を進めて設定を完了します。

各動作の確認

構成したポリシーの適用確認や LAPS で利用できる機能について確認していきます。

各ポリシーの動作確認

ローカル管理者作成の確認

端末の [Windows] ボタン右クリック > [コンピューターの管理] > [ローカル ユーザー とグループ] > [ユーザー] よりポリシーで作成したローカル管理者が確認できます。

ローカル管理者グループの確認

端末の [Windows] ボタン右クリック > [コンピューターの管理] > [ローカル ユーザー とグループ] > [グループ] > [Administrators] 右クリックよりポリシーで作成した管理者グループが確認できます。

LAPS ポリシーの確認

① まず Microsoft Entra 管理センターにログインしてローカル管理者権限のパスワードがバックアップされているか確認します。パスワードの確認 (回復) は [デバイス] > [すべてのデバイス] > [ローカル管理者パスワードの回復] から確認できます。

Microsoft Intune 管理センターでは [デバイス] > [Windows] > [Windows のデバイス] > [<対象デバイス>] > [ローカル管理者パスワード] から確認できます。

② 次にローカル管理者権限が必要な操作を実施します。(今回はアプリインストールの例)

② ユーザーアカウント制御 (UAC) が表示されたら、LAPS ポリシーを適用したローカル管理者アカウントを入力します。 ※ 注意:アカウント入力時、”.\<アカウント名>” もしくは “ホスト名\<アカウント名>” で入力する必要があります

③ エラーなく実行できることができました。

④ 認証後、イベントビューアを確認するとポリシーで設定した遅延の時間に認証後のアクションが実行されるようスケジューリングされているのが分かります。


イベント 10041, LAPS
LAPS は、現在管理されているアカウントが正常に認証されたことを検出しました。構成済みの猶予期間終了後に、構成済みの認証後アクションを実行するようにバックグラウンド タスクがスケジュールされました。
アカウント名: LocalAdmin01
アカウント RID: 0xXXX
パスワード リセット タイマー期限: ‎2023‎-‎08‎-‎16T02:52:54.338073000Z
※ パスワード リセット タイマー期限の表示時間は UTC 時刻

⑤ スケジューリングされた時間になると認証アクションが開始されます。パスワードリセットの他、ログオフや OS 再起動を LAPS ポリシーで設定している場合はここで実行されます。

⑥ パスワードがリセットされると管理センターの方でも反映されていることが確認できます。

リモートパスワードリセット

Microsoft Intune 管理センターから各端末の [概要] > […] > [ローカル管理者パスワードのローテーション] からリモートでリセットできます。

ログの確認

LAPS のログでは、端末と Microsoft Entra 管理センターから確認することができます。

端末での確認

端末ではイベントビューアより [アプリケーションとサービス ログ] > [Microsoft] > [Windows] > [LAPS] > [Operational] から確認できます。パスワード実行検出・変更スケジューリングのログや定期的に適用されている LAPS ポリシーの内容などが確認できます。

Microsoft Entra 管理センターでの確認

Microsoft Entra 管理センターでは、[デバイス] > [すべてのデバイス] > [監査ログ] から確認できます。 フィルターで以下のいずれかを指定することで確認できます。

  • Recover device local administrator password:管理センターでパスワードを表示したユーザーなどの情報を確認できます。
  • Update device local administrator password:端末でパスワードが変更されたログが確認できます。

グローバル管理者や Microsoft Entra 参加済みデバイス ローカル管理者の SID 確認方法

Entra Join 端末では、Entra Join 時にグローバル管理者や Microsoft Entra 参加済みデバイス ローカル管理者ロールの SID がローカル管理者のグループである Administrators グループに自動的に追加されます。この SID が追加されることによりグローバル管理者や Microsoft Entra 参加済みデバイス ローカル管理者ロールが付与されているアカウントはローカル管理者権限を利用することができます。オンプレ Active Directory を利用していた方に向けるといわゆる AD ドメインへ参加時に Domain Admins グループが Administrators グループに追加されるイメージです。

今回は、当該 SID をローカル管理者グループ制限ポリシー構成で追加したい場合にその SID の確認方法について説明します。確認方法としては次の 3 つの方法があります。

端末の設定画面から確認する方法

端末の [Windows] ボタン右クリック > [コンピューターの管理] > [ローカル ユーザー とグループ] > [グループ] > [Administrators] 右クリックより SID が確認できます。

端末からコマンドで確認する方法

コマンドから確認する方法では端末ローカルから確認する方法と MS Graph モジュールを利用してテナントから確認する方法があります。

端末から確認する方法

PowerShell で確認する場合は以下のコマンドで確認できます。

([ADSI]"WinNT://./Administrators").psbase.Invoke('Members') | % { ([ADSI]$_).InvokeGet('AdsPath')}

テナントから確認する方法

① 管理者権限で PowerShell を起動し、はじめにモジュールインストールとテナントへの接続を行います。

Install-Module Microsoft.Graph
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

途中認証が走り、アプリ読み書き許可の承認が求められます。

② 接続後、以下のコマンドでグローバル管理者と Microsoft Entra 参加済みデバイス ローカル管理者の ID を確認します。

Get-MgDirectoryRole | Select-Object DisplayName,ID

③ 以下のコマンドでグローバル管理者と Microsoft Entra 参加済みデバイス ローカル管理者の SID が確認できます。

function Convert-AzureAdObjectIdToSid {
    param([String] $ObjectId)

    $bytes = [Guid]::Parse($ObjectId).ToByteArray()
    $array = New-Object 'UInt32[]' 4

    [Buffer]::BlockCopy($bytes, 0, $array, 0, 16)
    $sid = "S-1-12-1-$array".Replace(' ', '-')

    return $sid
}

Convert-AzureAdObjectIdToSid -ObjectId '<グローバル管理者の ID>'
Convert-AzureAdObjectIdToSid -ObjectId '<Microsoft Entra 参加済みデバイス ローカル管理者の ID>'

Q & A

予想されそうな Q & A 集も載せてみました。

Q1. パスワードリセットのタイミングで端末がシャットダウンしていたり、ネットワークに接続されなかった場合はどうなりますか。
A1. パスワードリセットするタイミングでリセットが施行できなかった場合は、30 分置きに再試行し続けます。

Q2. ローカル管理者のパスワードは各端末ごとに異なりますか。
A2. はい、異なります。

Q3. LAPS ポリシーの “パスワード有効期間日数” は Entra ID へバックアップする場合、最短 7 日なのですがパスワードの自動変更は 7 日より短い期間にできないのでしょうか。
A3. 定期的なパスワード変更は最小 7 日となってしまいますが、認証後のアクション (パスワードリセットなど) で時間指定 (1 〜 24 時間の間) が可能です。

Q4. ユーザーアカウント制御のポップアップでローカル管理者アカウントを利用する場合、一度端末にサインインしてローカル管理者のユーザープロファイルを作成する必要がありますか。
A4. いいえ、必要ありません。ユーザープロファイルを作成しなくてもローカル管理者アカウントを利用できます。

Q5. Windows LAPS はサードパーティ製の MDM でも利用できますか。
A5. はい、利用できます。ただし、端末は Entra Join または Entra Hybrid Join で登録されている必要があります。

Q6. パスワードを確認できる Entra ID ロールは何がありますか。
A6. パスワード確認できるのは、グローバル管理者、クラウド デバイス管理者、Intune 管理者になります。メタデータ (デバイス名、最後のパスワード ローテーション、次のパスワード ローテーションなど) のみであれば、ヘルプデスク管理者、セキュリティ閲覧者、セキュリティ管理者、グローバル閲覧者でも確認が可能です。
なお、Entra ID Premium ライセンスを持っている場合は、次の RBAC アクセス許可を持つカスタム ロールを作成することも可能です。

  • パスワードを確認したい場合: microsoft.directory/deviceLocalCredentials/password/read
  • メタデータを確認したい場合: microsoft.directory/deviceLocalCredentials/standard/read

Q7. パスワード管理で API は利用できますか。
A7. はい、利用可能です。詳細については以下のドキュメントを参考にしてください。

まとめ

いかがでしたでしょうか。設定や構成自体はシンプルなので、よければぜひ利用してみてください!

参考ドキュメント

この記事をシェア