Windows Server 2025 の RD セッションホストに FSLogix と Office 365(Microsoft 365 Apps)を導入したところ、毎回のサインイン要求と「このデバイスを組織で管理しますか?」のデバイス登録ダイアログが出続ける──本稿はこの現象のしくみを分解し、その日に現場で直せる再現性の高い手順を、検証・ロールバックまで含めて解説します。
現象の概要と前提
- サーバー:Windows Server 2025(RD セッションホスト/RDS ファーム)
- プロファイル:FSLogix v25.06(Profile Container 使用、redirections.xml 適用)
- Office:Microsoft 365 Apps(俗称 Office 365)32bit
- 症状:ユーザー接続ごとに Office アプリで ID+パスワード+MFA が再要求。さらに毎回 Workplace Join(Azure AD デバイス登録) ダイアログが表示。
技術背景:なぜ再サインインとデバイス登録が起きるのか
Windows 10/11 と同様、Server 2025 でも Office アプリの認証は主に WAM(Web Account Manager) と AAD Broker Plugin によって実行され、取得したトークンはユーザーのローカル プロファイル配下に保存されます。代表的な保存先は次のとおりです。
| フォルダー/コンポーネント | 役割 | パス例(ユーザー コンテキスト) |
|---|---|---|
| TokenBroker | MSA/AAD の更新トークン管理 | %LOCALAPPDATA%\Microsoft\TokenBroker |
| OneAuth | Office/Teams などの共通トークン キャッシュ | %LOCALAPPDATA%\Microsoft\OneAuth |
| IdentityCache | WAM の ID キャッシュ | %LOCALAPPDATA%\Microsoft\IdentityCache |
| AAD Broker Plugin (UWP) | 対話認証とアカウントバインド | %LOCALAPPDATA%\Packages\Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy |
| CloudExperienceHost | Workplace Join UI や OOBE 流用 | %LOCALAPPDATA%\Packages\Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy |
| Credentials/Protect | DPAPI マスターキー/資格情報 | %APPDATA%\Microsoft\Credentials, %APPDATA%\Microsoft\Protect\<SID> |
FSLogix Profile Container は原則プロファイル全体を VHD(X) に収容しますが、redirections.xml で除外したパスはセッションごとにローカルに生成されます。もし上記のトークン関連フォルダーが除外されている、または RoamIdentity が無効(既定は無効)だと、セッションのたびにトークンが見当たらない/別デバイス扱いとなり、Office は再認証を求め、同時に Workplace Join が毎回案内されます。
さらに RDS は「共有デバイス」性質が強いため、デバイス登録(Workplace Join)自体を行う意義が薄いケースが多く、UI を抑止して真の SSO は Entra ID(旧 Azure AD)+ハイブリッド Join/シームレス SSOで実現するのが定石です。
最短で直す全体像(ダイジェスト)
| 対応項目 | 目的 | 手順(要点) |
|---|---|---|
| ① RoamIdentity を有効化 | Office 認証トークンをプロファイルに保存し再ログイン防止 | HKLM\SOFTWARE\FSLogix\Profiles\RoamIdentity=1(DWORD) |
| ② redirections.xml の見直し | トークン/キャッシュを除外しない | TokenBroker、OneAuth、IdentityCache、AAD.BrokerPlugin、CloudExperienceHost の除外を撤回 |
| ③ Workplace Join の無効化 | 毎回のデバイス登録 UI を抑止 | HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin\BlockAADWorkplaceJoin=1 |
| ④ Entra ID 連携で SSO(推奨) | 将来含めて確実な SSO | ハイブリッド Azure AD Join+シームレス SSO(AZUREADSSOACC) |
| ⑤ FSLogix の最新化+追加ローミング | 残る断続的な再認証を収束 | v3.25.626.21064 以上推奨、OneAuth/IdentityCache の除外再確認 |
| ⑥ ログと Entra ID 健全性確認 | 重複デバイス・権限エラーを是正 | FSLogix ログの 0x80070005、Entra の重複デバイスを整理 |
手順詳細
① FSLogix「RoamIdentity」を有効化する
WAM/Office の ID/トークンを FSLogix コンテナーに収めるためのスイッチです。RDS 環境では必須と考えてよい設定です。
- レジストリ(管理者権限):
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v RoamIdentity /t REG_DWORD /d 1 /f - GPO(推奨):
コンピューターの構成 > 管理用テンプレート > FSLogix > Profiles > Roam identity を Enabled - チェック:ユーザーサインアウト後に再サインインし、
C:\ProgramData\FSLogix\Logs\Profilesのログで RoamIdentity enabled を確認。
補足:FSLogix の Enabled=1、VHDLocations、VolumeType=VHDX、DeleteLocalProfileWhenVHDShouldApply=1(任意)も併せて見直してください。
② redirections.xml を見直し、認証に必要なフォルダを除外しない
プロファイル縮小目的で用意した redirections.xml により、トークン/ID キャッシュを除外してしまう事例が多発しています。次のパスは 除外しないのが原則です。
AppData\Local\Microsoft\TokenBrokerAppData\Local\Microsoft\OneAuthAppData\Local\Microsoft\IdentityCacheAppData\Local\Packages\Microsoft.AAD.BrokerPlugin_cw5n1h2txyewyAppData\Local\Packages\Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewyAppData\Roaming\Microsoft\CredentialsとAppData\Roaming\Microsoft\Protect(DPAPI)
サンプル(不要な除外を削除した最小例):
<?xml version="1.0" encoding="UTF-8"?>
<FrxProfileRedirection ExcludeCommonFolders="0" ExcludeAppContainer="0">
<Excludes>
<!-- ここにトークン関連のパスは入れない -->
<!-- サイズの大きいキャッシュ(例:TeamsMeetingAddin Logs)など、認証無関係なものだけを精選して除外 -->
</Excludes>
</FrxProfileRedirection>
配置と適用:
RedirXMLSourceFolder=\\FileServer\FSLogix\Policyとし、共有にredirections.xmlを配置。- 変更後は、対象ユーザーを完全サインアウト(切断ではなく サインアウト)させて再接続。
③ Workplace Join(デバイス登録)UI を無効化する
RDS は「自席 PC = 共有セッション ホスト」のため、端末をユーザーの AAD デバイスとして登録する合理性が薄い場合がほとんどです。UI を抑止し、認証はユーザー トークンに委ねましょう。
- レジストリ:
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin" ^ /v BlockAADWorkplaceJoin /t REG_DWORD /d 1 /f - GPO:コンピューターの構成 > 管理用テンプレート > Windows コンポーネント > Workplace Join > Block Workplace Join = 有効
- スケジュール タスクの無効化(任意):
\Microsoft\Windows\Workplace Join\Automatic-Device-Joinを無効化
適用後は イベント ビューアー > Applications and Services Logs > Microsoft > Windows > User Device Registration > Admin にデバイス登録試行が出てこないことを確認します。
④ Entra ID(旧 Azure AD)と連携して真の SSO を実現(推奨)
UI を抑止しても、SSO 基盤が弱いと別の再認証が散発します。オンプレ AD を使用している場合は次を満たしておくと堅牢です。
- ハイブリッド Azure AD Join:RDS セッション ホストの OU を Azure AD Connect で同期し、マシン オブジェクトをハイブリッド Join。
※共有サーバーは「ユーザーのデバイス」にはなりませんが、Kerberos/トークン発行の信頼関係が安定します。 - シームレス SSO:
AZUREADSSOACCが作成され、ドメイン端末からのサイレント サインインが成立。AD FS は不要です。 - IE/Edge/Office のゾーン/イントラネット設定:テナントの STS/ログオン URL と Entra のエンドポイントは ローカル イントラネットとして扱い、自動ログオンを許可。
⑤ FSLogix を最新に保ち、OneAuth/IdentityCache を追加確認
Server 2025 世代では FSLogix の更新で WAM/OneAuth 周辺の互換性が随時改善されています。次を確認します。
- FSLogix バージョン:v3.25.626.21064 以上(指標)。
redirections.xmlがOneAuthとIdentityCacheを除外していない。- AV/EDR の排他:
C:\Program Files\FSLogix\Apps\*、C:\ProgramData\FSLogix\*、VHD(X) 保管共有(SMB)をリアルタイムスキャンから除外。
⑥ ログと Entra ID の健全性チェック
問題が残る際はログで切り分けます。
- FSLogix Logs:
C:\ProgramData\FSLogix\Logs\Profilesに Access denied (0x80070005)、CreateImpersonationToken failed (0x80070005) が出ていないか。 - Office/WAM:ユーザーの
%LOCALAPPDATA%\Microsoft\OneAuth\Logs(存在すれば)やイベント ログ(AAD/Broker/TokenBroker)にエラーがないか。 - Entra ID デバイス:同一ホスト名の重複登録がないか。重複があるとトークン バインドが破綻しやすく、再認証が頻発します。不要デバイスをクリーンアップ。
15分で収束を確認するチェックリスト
- 管理者でサーバーに入り、レジストリで
RoamIdentity=1とBlockAADWorkplaceJoin=1を設定(GPO なら gpupdate /force)。 redirections.xmlを更新し、トークン関連の除外を全部撤回。共有を保存。- 対象ユーザーを 完全サインアウトさせ、RD セッションを作り直す。
- 最初の Office 起動時に 1 度だけサインインし、2 回目以降は無操作でサインイン済みになっていることを検証。
- Workplace Join ダイアログが出ないことを確認。
- FSLogix ログにエラーがないことを確認し、必要なら AV/EDR 除外を追加。
運用のヒント(残存再認証の潰し込み)
- 孤立トークンのリセット:特定ユーザーだけ再認証が残る場合は、当該ユーザーの
%LOCALAPPDATA%\Microsoft\OneAuth%LOCALAPPDATA%\Microsoft\IdentityCache%LOCALAPPDATA%\Microsoft\TokenBroker
- DPAPI 破損時:
%APPDATA%\Microsoft\Protect\<SID>のマスターキー破損が疑われる場合は、バックアップ+再ログインで再生成を試験。 - WebView2 依存:Office の対話認証 UI は WebView2 に依存します。Server 2025 でのランタイムが最新でないと UI が出ない/進まない事があります(Windows Update で最新化)。
- UWP サービスの停止に注意:
Microsoft AAD Broker Pluginを無効化するとサインインが毎回壊れます。サービスやパッケージの過度な無効化は避けること。
PowerShell & コマンド スニペット集
GPO 適用前の迅速な検証や自動化に使えます。
:: FSLogix RoamIdentity 有効化
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v RoamIdentity /t REG_DWORD /d 1 /f
:: Workplace Join UI をブロック
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin" /v BlockAADWorkplaceJoin /t REG_DWORD /d 1 /f
:: 適用確認(抜粋)
reg query "HKLM\SOFTWARE\FSLogix\Profiles" /v RoamIdentity
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin" /v BlockAADWorkplaceJoin
:: セッション上の Azure AD 状態確認
dsregcmd /status
:: グループポリシー再適用
gpupdate /force
:: イベントログ(User Device Registration)を開く(PowerShell)
Get-WinEvent -LogName "Microsoft-Windows-User Device Registration/Admin" -MaxEvents 30 | Format-List TimeCreated,Id,LevelDisplayName,Message
ベストプラクティス(RDS × FSLogix × Office)
- Profile Container を第一選択:ODFC コンテナー単体では OneAuth/TokenBroker が十分にローミングされず、SSO が不安定になりがち。Profile Container + RoamIdentity を基本形に。
- redirections.xml は「足し算」ではなく「引き算」:不要キャッシュだけを精選して除外。トークン/ID/DPAPI は触らない。
- サインアウトを徹底:設定変更後にユーザーがセッションを「切断」すると旧プロファイルが掴まれ続けます。必ず「サインアウト」。
- SMB 共有の遅延対策:プロファイル VHDX の格納先は低遅延(1~2ms 程度)を目標。スループットよりレイテンシが重要です。
- 排他設定:AV/EDR はプロファイル VHDX と FSLogix バイナリを除外。I/O フックの干渉は 0x80070005 の温床です。
- Office のサインイン ドメインのゾーン設定:イントラネット ゾーンにテナント関連ホストを配置し「自動ログオン」を許可。
よくある落とし穴と対策
| 落とし穴 | 症状 | 対策 |
|---|---|---|
| redirections.xml で TokenBroker を除外 | 毎回 Office/MFA 要求、Outlook プロファイル初期化 | 除外を撤回、RoamIdentity=1、ユーザーのトークン フォルダー再生成 |
| Workplace Join を許可 | 「デバイスを管理しますか?」が毎回出る | BlockAADWorkplaceJoin=1 で UI を抑止 |
| DPAPI/Protect フォルダーを除外 | 資格情報読み取り失敗(0x80070005)、トークン読めず | 除外を撤回。FSLogix ログでアクセス権を確認 |
| AV が VHDX をスキャン | ログオン遅延、プロファイルマウント失敗 | FSLogix 公式推奨の除外を追加 |
| ユーザーが切断のみ | 設定反映せず現象継続 | サインアウトを周知、ポリシー適用後に再起動/再ログオン |
障害切り分けフロー(ASCII ダイアグラム)
[現象] Office 再サインイン + Workplace Join ポップアップ
|
+--(A) redirections.xml にトークン関連の除外がある?
| |-- ある → 除外撤回 → ユーザー再サインイン → 再検証
| |-- ない → (B)
|
+--(B) RoamIdentity=1 か?
| |-- いいえ → 有効化 → 再検証
| |-- はい → (C)
|
+--(C) Workplace Join ブロック済みか?
|-- いいえ → BlockAADWorkplaceJoin=1
|-- はい → (D) ログ/OneAuth/DPAPI/AV 排他を確認
ロールバック手順(万一不整合が出た場合)
BlockAADWorkplaceJoinを 0 に戻し、必要に応じて自動デバイス登録を再開。RoamIdentityを 0 にし、以前のredirections.xmlを復元(ただし再発に注意)。- ユーザー側:該当のトークン フォルダーをバックアップから復元。
セキュリティとコンプライアンスの観点
- RoamIdentity はユーザーの アイデンティティに関わるキャッシュをローミングします。コンテナーの NTFS/SMB ACL を厳格に(ユーザー、管理者、SYSTEM のみ)。
- 監査ログ:FSLogix ログ、イベント ログ(User Device Registration / AAD / TokenBroker)を SIEM に集約。
- MFA ポリシー:SSO 成立後も、条件付きアクセスで高リスク時にのみ MFA を促すよう リスクベースに再設計すると UX とセキュリティの両立が図れます。
検証テンプレート(ドキュメント化例)
| 項目 | 期待値 | 結果 |
|---|---|---|
| 初回起動後の Office 再認証 | 2 回目以降は不要 | |
| Workplace Join ダイアログ | 表示されない | |
| FSLogix ログ | エラーなし(0x80070005 なし) | |
| Entra デバイス重複 | なし |
FAQ
Q. ODFC コンテナー(Office Data)だけでも良い?
A. サインイン/トークンは ODFC 単体では十分にローミングされません。Profile Container+RoamIdentity を推奨します。
Q. 32bit Office を 64bit に変えると解決する?
A. 本件は主に WAM/トークンのローミングとデバイス登録 UI に起因します。ビット数変更は決定打ではありません。
Q. サーバーを Azure AD Join にすれば良い?
A. 共有サーバーをユーザーの AAD デバイスとして扱うのは一般的に不適切です。ハイブリッド Join+シームレス SSOが現実解です。
Q. 特定ユーザーだけ直らない
A. OneAuth/IdentityCache/TokenBroker の破損が多いです。バックアップ後にフォルダー削除 → 再サインインで再生成を試行。
まとめ
RDS(Server 2025)での Office 再サインイン地獄は、RoamIdentity を有効化し、redirections.xml から認証関連を除外しない、そして Workplace Join UI を抑止するだけで大半が解決します。さらに Entra ID のハイブリッド Joinとシームレス SSOを組み合わせれば、ユーザーはただ RD に接続するだけで Office がサインイン済みとなり、MFA は条件付きアクセスで必要なときだけ。設定変更後は必ずサインアウトを徹底し、FSLogix ログと Entra デバイスの健全性を確認しましょう。これで現場の「毎回サインイン」問題は終わりにできます。
付録:一括適用サンプル(検証ラボ向け)
REM ====== 事前:管理者 CMD ======
:: FSLogix 基本
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v Enabled /t REG_DWORD /d 1 /f
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v RoamIdentity /t REG_DWORD /d 1 /f
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v VolumeType /t REG_SZ /d VHDX /f
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v VHDLocations /t REG_SZ /d "\\FileServer\FSLogix\Profiles" /f
reg add "HKLM\SOFTWARE\FSLogix\Profiles" /v RedirXMLSourceFolder /t REG_SZ /d "\\FileServer\FSLogix\Policy" /f
:: Workplace Join の UI を抑止
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin" /v BlockAADWorkplaceJoin /t REG_DWORD /d 1 /f
:: GPO 再適用
gpupdate /force
:: ログ確認(PowerShell)
powershell -NoLogo -NoProfile -Command ^
"Get-WinEvent -LogName 'Microsoft-Windows-User Device Registration/Admin' -MaxEvents 10 | fl TimeCreated,Id,Message"
執筆者メモ(チェックポイント)
- RoamIdentity=1 を既定と勘違いしていないか。
- redirections.xml にトークン関連の除外が紛れていないか。
- Workplace Join のブロックが GPO できちんと反映されているか。
- FSLogix/AV 排他と SMB レイテンシが許容範囲か。
- Entra 側で重複デバイスやサインインリスクによる強制再認証が起きていないか。

コメント