Entra ID|AZUREADSSOACC の Kerberos キー ロールオーバーが失敗する問題と対処:Update‑AzureADSSOForest のエラー(DesktopSsoNumOfDomains)を最小権限で解決する実践ガイド

ハイブリッド 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 を最新に更新後に実施。

実行手順(標準フロー)

  1. 実行端末(Hybrid Runbook Worker など)で PowerShell を管理者として起動。
  2. モジュールを準備: Install-Module AzureADHybridAuthenticationManagement -Scope AllUsers -Force Import-Module AzureADHybridAuthenticationManagement -Force
  3. 認証・状態確認・更新を順に実施: 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-AzureADSSOForestAZUREADSSOACC のキー ロールオーバー-Verbose で詳細ログを取得。失敗時は Failed Request Id を確認。

付録:運用ポリシー例

  • ロールオーバーは月 1 回、平日日中(オンコール待機あり)に実施。
  • 実行後 30 分でユーザー影響・SSO 失敗の監視を強化。
  • 3 か月おきに手順レビュー/リハーサルを実施。

現状まとめ

  • Hybrid Identity Administrator だけでキー ロールオーバーは正常に動作する前提。
  • 失敗が続く場合は、修正未反映またはロール設定の誤りの可能性が高い。
  • Failed Request Id を添えてサポートへエスカレーションすると解決が速い。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次