ハイブリッド Azure AD(現 Entra ID)でシームレス SSO を運用中、AZUREADSSOACC コンピューター アカウントの Kerberos 復号キー(ロールオーバー)が 2024 年 4 月中旬から突然失敗し、Global Administrator を付与しないと通らない――そんな現場事例が相次ぎました。本稿はその原因・時系列・恒久対策・安全な運用設計までを一気通貫でまとめた実践ガイドです。
対象と結論(先に要点)
- 対象:Entra ID(旧 Azure AD)シームレス SSO/
AzureADHybridAuthenticationManagementモジュール/Update-AzureADSSOForestコマンドレット。 - 結論:現在は Hybrid Identity Administrator のみでロールオーバーが正常に動くことが大勢。Global Administrator は恒常的に不要。
- まだ失敗する場合:修正未反映または役割割り当ての不備が多い。Verbose 出力の Failed Request Id を控え、サポートに調査依頼を。
事象の具体像
再現条件の典型
- オンプレミス AD DS と Entra ID をハイブリッド結合。
- Azure Automation(Hybrid Runbook Worker 推奨)で PowerShell ランブックから鍵の定期更新を実施。
- 2024 年 4 月中旬以降、従来どおり Hybrid Identity Administrator で実行すると失敗。
- 同じランブックに一時的に Global Administrator を付与すると成功。
エラーメッセージ
Update-AzureADSSOForest : Uploading computer account information failed.
Internal error: An error occurred during the 'DesktopSsoNumOfDomains' process.
このエラーは、クラウド側の内部処理(Desktop SSO ドメイン数の検査工程など)で権限評価またはバックエンド API 側の不整合が発生した際に見られることがありました。
時系列と現在の解釈
| 時期 | 状況 | 推奨対応 |
|---|---|---|
| 2024 年 4 月 17 日〜 | Microsoft 側の不具合により、Hybrid Identity Administrator だけでは Update‑AzureADSSOForest が失敗。 | 一時回避として Global Administrator を付与(高権限のため作業直後に必ず外す)。 |
| 2024 年 4 月 22 日 | 不具合を Microsoft が認識し、修正を開発中と告知。 | 暫定回避のまま運用継続。ランブックはロール剥奪漏れを避けるため、PIM を使い時間制限付き昇格に統一。 |
| 2024 年 4 月 29〜30 日 | 修正の展開が完了。以後、Hybrid Identity Administrator のみで正常動作を複数テナントで確認。 | ① GA を外し HIA(Hybrid Identity Administrator)のみへ復旧 ② Get‑AzureADSSOStatus で状態確認後、Update‑AzureADSSOForest を再実行。 |
| 2024 年末〜2025 年 | 稀に「まだ動かない」報告。多くは修正未反映、役割割り当てミス、もしくは実行環境の差異。 | ① 24 時間経っても解消しない場合はサポート チケットを起票し Failed Request Id を添付 ② ロール設定の再点検(HIA 必須/GA 不要)。 |
なぜ起きたか(技術的考察)
シームレス SSO のロールオーバーは、クラウド側構成情報とオンプレミスの AZUREADSSOACC アカウント属性を書き換える一連の処理です。2024 年 4 月の不具合は、クラウド側 API の権限検査または依存サービスのリグレッションにより、Hybrid Identity Administrator に求められる権限境界が一時的に不正に高く評価された結果、Global Administrator でのみ成功する状態が発生した、という像が合致します。最終的にはサービス修正により元の期待値(HIA で OK)に戻っています。
最小権限での再運用に戻すための要点
- 原則:GA 不要。現在は HIA のみでロールオーバー可能であることが標準挙動。
- ロールはユーザー/グループに付与する場合でも、PIM(Privileged Identity Management)で時間制限付き昇格を徹底。
- ロールオーバーの推奨頻度はおおむね 30 日ごと。監視と通知を必ず実装。
- モジュールは
AzureADHybridAuthenticationManagementを最新に更新後に実施。
実行手順(標準フロー)
- 実行端末(Hybrid Runbook Worker など)で PowerShell を管理者として起動。
- モジュールを準備:
Install-Module AzureADHybridAuthenticationManagement -Scope AllUsers -Force Import-Module AzureADHybridAuthenticationManagement -Force - 認証・状態確認・更新を順に実施:
New-AzureADSSOAuthenticationContext Get-AzureADSSOStatus | ConvertFrom-Json | Format-List Update-AzureADSSOForest -Verbose各コマンドが終了コード 0 で終わることを確認します。
ロールと権限の整理
| ロール | 用途 | ロールオーバーに必要 | 備考 |
|---|---|---|---|
| Hybrid Identity Administrator | ハイブリッド ID の構成変更(シームレス SSO 含む) | 必要 | 現行の正しい最小権限。恒常付与は避け PIM 昇格を推奨。 |
| Global Administrator | テナント全体管理 | 不要 | 2024/4 の一時不具合時のみ回避策として利用。現在は外す。 |
| Privileged Role Administrator | ロール割り当て管理 | 不要 | 運用チームのロール付け外しを担当する際のみ。 |
運用のベストプラクティス
鍵ローテーションの定期化と監視
- 実行間隔:30 日程度。実行結果は Log Analytics または SIEM に集約。
- 失敗検知:失敗時に Pager/Teams 通知。3 回連続失敗で管理者エスカレーション。
- 変更管理:実行前後の
msDS-KeyVersionNumber(KVNO)とタイムスタンプを記録。
Hybrid Runbook Worker を使う利点
- オンプレ AD DS への到達性(ドメイン コントローラーに近いネットワーク)。
- 必要最小限の委任(
AZUREADSSOACCオブジェクトに対する権限のみの委任が現実的)。 - 実行環境の再現性(x64、TLS 既定、必要モジュール固定化)。
安全な資格情報取り扱い
- クラウド側は HIA を PIM 経由で一時昇格。
- オンプレ側は
AZUREADSSOACCの属性更新に必要な委任権限を付与した技術アカウントを、Azure Automation の Credential/KeyVault に格納。 - 作業ログは秘匿情報をマスク(GUID/Request Id のみ可視化)。
検証:ロールオーバーの成否を多層で確認
クラウド側(コマンド)
$status = Get-AzureADSSOStatus | ConvertFrom-Json
$status | Format-List
# 代表的な確認ポイント
# $status.FeatureEnabled -> True/False
# $status.ActiveDirectoryForest-> 対象ドメイン一覧
オンプレ側(属性差分)
# ドメイン内で AZUREADSSOACC の KVNO を確認
Get-ADComputer "AZUREADSSOACC" -Properties msDS-KeyVersionNumber, servicePrincipalName, whenChanged |
Select-Object Name, msDS-KeyVersionNumber, whenChanged, servicePrincipalName
ロールオーバー後に msDS-KeyVersionNumber が増加し、whenChanged が更新されていれば成功指標になります。
よくある失敗パターンと対処
| 症状 | 原因の典型 | 対処 |
|---|---|---|
DesktopSsoNumOfDomains を含む内部エラー | クラウド側の一時不整合/権限評価 | Verbose で Failed Request Id を採取し保管。HIA 付与を再確認。数時間後に再試行し、解消しない場合はサポートに ID を提示。 |
| HIA で失敗・GA で成功 | 2024/4 の既知不具合、または HIA の付与ミス/伝播遅延 | 現在は HIA のみで成功するはず。GA を外し、HIA の範囲と有効化(PIM)を見直し。 |
| オンプレ属性の書き込み失敗 | 実行アカウントの委任不足、DC への到達性、レプリケーション遅延 | AZUREADSSOACC オブジェクトへの委任を確認。Hybrid Worker のネットワーク疎通、DC レプリケーション(repadmin)を併せて点検。 |
| モジュール読み込みエラー | 旧版モジュール/署名ポリシー/x86 実行 | 最新版へ更新、Set-ExecutionPolicy RemoteSigned、必ず x64 環境で実行。 |
ランブックの堅牢化(テンプレート例)
#requires -Version 7.2
# ログの初期化
$ErrorActionPreference = 'Stop'
$execId = [guid]::NewGuid().ToString()
Write-Output "RollOver Session: $execId"
# 1) モジュールの準備
Import-Module AzureADHybridAuthenticationManagement -ErrorAction Stop
# 2) サインイン(HIA で PIM 昇格済みを前提)
New-AzureADSSOAuthenticationContext | Out-Null
# 3) 事前状態の取得
$statusBefore = Get-AzureADSSOStatus | ConvertFrom-Json
# 4) 実行(リトライ付き)
$maxRetry = 3
for($i=1; $i -le $maxRetry; $i++){
try{
Write-Output "Rollover attempt $i/$maxRetry"
Update-AzureADSSOForest -Verbose 4>&1 | Tee-Object -Variable verboseLines | Out-Null
$success = $true
break
}catch{
$msg = $_.ToString()
# Failed Request Id の抽出(例:GUID 形式)
$failedId = ([regex]::Match($msg + "`n" + ($verboseLines -join "`n"), '(?i)Failed Request Id[:\s]+([0-9a-f-]{36})')).Groups[1].Value
Write-Warning "Attempt $i failed. Failed Request Id: $failedId"
Start-Sleep -Seconds ([int][math]::Min(60 * $i, 300))
}
}
if(-not $success){ throw "Rollover failed after $maxRetry attempts." }
# 5) 事後状態の取得
$statusAfter = Get-AzureADSSOStatus | ConvertFrom-Json
# 6) 重要メトリクスの出力
$statusReport = [pscustomobject]@{
ExecId = $execId
Before = $statusBefore.ActiveDirectoryForest
After = $statusAfter.ActiveDirectoryForest
TimeUtc = (Get-Date).ToUniversalTime()
}
$statusReport | ConvertTo-Json -Depth 5 | Write-Output
上記は概念実装です。実運用ではログ転送、失敗時の自動チケット起票、資格情報の保護(Key Vault)、Hybrid Worker の健全性チェックを追加してください。
セキュリティ設計のポイント
- 最小権限:HIA で足りる現状に適合。GA の恒常付与は避ける。
- 昇格の一時性:PIM の承認フロー+有効期限。終了後の自動ロール剥奪を標準化。
- 監査可能性:誰がいつロールオーバーを実行したか、Failed Request Id と紐づけて保存。
- 分離:オンプレ委任アカウントとクラウド管理アカウントを分離。特権の横断汚染を避ける。
チェックリスト(運用前・定期点検)
- HIA の付与経路は PIM 経由か(恒常付与になっていないか)。
- Hybrid Worker は x64 / TLS 1.2 以上 / モジュール最新版か。
- AZUREADSSOACC へのオブジェクト委任は最小限で過不足ないか。
- ログは KVNO・
whenChanged・Failed Request Id を含むか。 - 通知経路(メール/Teams/Pager)は 1 回の失敗で一次通知、連続失敗で当番へ即時エスカレーションになっているか。
FAQ
Q. 現在も GA を付けないと失敗します。
A. まず HIA の割り当てと PIM 昇格の有効化、反映待ち(最大数時間)を確認。モジュール最新版で再実行し、解消しない場合は Failed Request Id を添えてサポートへ。
Q. ロールオーバーの実行順序は?
A. 基本は New-AzureADSSOAuthenticationContext → Get-AzureADSSOStatus → Update-AzureADSSOForest の順。これ以外の順序は非推奨です。
Q. どのくらいの頻度で回すべき?
A. 目安は 30 日ごと。変更検知・失敗時通知を併せて仕組み化してください。
Q. 失敗時に何を採取すればよい?
A. エラー全文、実行時刻(UTC)、Failed Request Id、対象ドメイン、実行ロール、モジュールのバージョン、Hybrid Worker のホスト名/IP を採取すると調査が速く進みます。
トラブルシューティング(深掘り)
1) Verbose ログで手掛かりを取る
Update-AzureADSSOForest -Verbose 4>&1 | Tee-Object -FilePath "C:\Logs\AadSsoRollover_$(Get-Date -Format yyyyMMdd_HHmmss).log"
ログの末尾に Failed Request Id: <GUID> が出る場合があり、サポート側のバックエンド検索キーとして有用です。
2) KVNO と時刻の相関を見る
$before = (Get-ADComputer "AZUREADSSOACC" -Properties msDS-KeyVersionNumber,whenChanged)
Update-AzureADSSOForest
$after = (Get-ADComputer "AZUREADSSOACC" -Properties msDS-KeyVersionNumber,whenChanged)
"{0} -> {1}" -f $before.'msDS-KeyVersionNumber',$after.'msDS-KeyVersionNumber'
$after.whenChanged
3) ネットワークとレプリケーション
- Hybrid Worker → DC(LDAP/LDAPS、RPC、Kerberos)の疎通を確認。
- サイト/サブネットの定義と複製遅延(
repadmin /replsummary)を確認。
運用テンプレート:変更管理の記録フォーマット例
【変更種別】シームレス SSO キー ロールオーバー
【対象テナント】contoso.onmicrosoft.com
【対象ドメイン】contoso.local
【実行者/ロール】[email protected](HIA、PIM 昇格 1 時間)
【実施日時(UTC)】2025-01-15T12:34:56Z
【実行環境】Hybrid Worker: HWK-01 (Windows Server 2022)
【モジュール】AzureADHybridAuthenticationManagement 2.x.x
【KVNO】Before: 23 / After: 24
【Failed Request Id】(該当時のみ)aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
【結果】成功/失敗(詳細ログ参照)
まとめ
2024 年 4 月中旬に発生した「HIA では失敗・GA なら成功」という例外的な挙動は、同月末の修正により解消され、現在は本来の最小権限(Hybrid Identity Administrator)のみでロールオーバーできる状態が基本線です。もし今なお失敗するなら、ロール割り当ての不備・反映遅延・実行環境の差異を疑い、Verbose ログから Failed Request Id を採取して速やかに調査へ進めてください。運用としては 30 日周期の自動更新、監視・通知、PIM による一時昇格、そしてオンプレ委任の最小化――この 4 点を柱にすれば、シームレス SSO の鍵運用は堅牢かつセキュアに回せます。
付録:コマンド リファレンス(抜粋)
| コマンド | 用途 | 備考 |
|---|---|---|
New-AzureADSSOAuthenticationContext | 認証コンテキストの初期化 | HIA でのサインインを前提。PIM 昇格後に実施。 |
Get-AzureADSSOStatus | シームレス SSO の状態確認 | ConvertFrom-Json で扱いやすく。 |
Update-AzureADSSOForest | AZUREADSSOACC のキー ロールオーバー | -Verbose で詳細ログを取得。失敗時は Failed Request Id を確認。 |
付録:運用ポリシー例
- ロールオーバーは月 1 回、平日日中(オンコール待機あり)に実施。
- 実行後 30 分でユーザー影響・SSO 失敗の監視を強化。
- 3 か月おきに手順レビュー/リハーサルを実施。
現状まとめ
- Hybrid Identity Administrator だけでキー ロールオーバーは正常に動作する前提。
- 失敗が続く場合は、修正未反映またはロール設定の誤りの可能性が高い。
- Failed Request Id を添えてサポートへエスカレーションすると解決が速い。

コメント