この記事では、Microsoft Entra 資格情報を使用して Microsoft Entra 参加済み Windows デバイスで認証するときのプライマリ更新トークン (PRT) に関連する問題をトラブルシューティングする方法について説明します。
Microsoft Entra ID またはハイブリッド Microsoft Entra ID に参加済みのデバイスでは、認証のメイン コンポーネントは PRT です。 このトークンは、Microsoft Entra 参加済みデバイスで Microsoft Entra 資格情報を使用して Windows 10 に初めてサインインすることによって取得します。 PRT はそのデバイスにキャッシュされます。 以降のサインインでは、デスクトップを使用できるようにするためにキャッシュされたトークンが使用されます。
デバイスのロックとロック解除、または Windows への再サインインのプロセスの一環として、PRT を更新するためにバックグラウンド ネットワーク認証が 4 時間ごとに 1 回試行されます。 トークンの更新を妨げる問題が発生した場合、PRT は最終的に期限切れになります。 有効期限は、Microsoft Entra リソースへのシングル サインオン (SSO) に影響します。 また、サインイン プロンプトが表示されるようになります。
PRT の問題が存在すると思われる場合は、まず Microsoft Entra ログを収集し、トラブルシューティング チェックリストに記載されている手順に従うことをお勧めします。 これを、できれば再現セッション内で、まず Microsoft Entra クライアントの問題に対して行います。 サポート要求を提出する前に、このプロセスを完了してください。
トラブルシューティングのチェックリスト
手順 1: プライマリ更新トークンの状態を取得する
PRT の問題が発生しているユーザー アカウントで Windows にサインインします。
[スタート] を選択し、[コマンド プロンプト] を検索して選択します。
デバイス登録コマンド (dsregcmd) を実行するには、
dsregcmd /status
を入力します。デバイス登録コマンドの出力の SSO state セクションを見つけます。 次のテキストは、このセクションの例を示しています。
+----------------------------------------------------------------------+ | SSO State | +----------------------------------------------------------------------+ AzureAdPrt : YES AzureAdPrtUpdateTime : 2020-07-12 22:57:53.000 UTC AzureAdPrtExpiryTime : 2020-07-26 22:58:35.000 UTC AzureAdPrtAuthority : https://login.microsoftonline.com/00001111-aaaa-2222-bbbb-3333cccc4444 EnterprisePrt : YES EnterprisePrtUpdateTime : 2020-07-12 22:57:54.000 UTC EnterprisePrtExpiryTime : 2020-07-26 22:57:54.000 UTC EnterprisePrtAuthority : https://msft.sts.microsoft.com:443/adfs +----------------------------------------------------------------------+
AzureAdPrt
フィールドの値を確認します。NO
に設定されている場合は、Microsoft Entra ID から PRT 状態を取得しようとしたときにエラーが発生しました。AzureAdPrtUpdateTime
フィールドの値を確認します。AzureAdPrtUpdateTime
フィールドの値が 4 時間を超えている場合は、PRT の更新を妨げる問題が発生したと考えられます。 デバイスをロックしてからロックを解除して PRT の更新を強制的に実行し、時間が更新されるかどうかを確認します。
手順 2: エラー コードを取得する
次の手順では、PRT エラーの原因となるエラー コードを取得します。 PRT エラー コードを取得する最も簡単な方法は、デバイス登録コマンドの出力を調べることです。 ただし、この方法には、Windows 10 の 2021 年 5 月の更新プログラム (バージョン 21H1) 以降のバージョンが必要です。 もう 1 つの方法は、Microsoft Entra 分析ログと操作ログでエラー コードを見つけることです。
方法 1: デバイス登録コマンドの出力を調べる
注意
この方法は、Windows 10 の 2021 年 5 月の更新プログラム (バージョン 21H1) 以降のバージョンの Windows を使用している場合にのみ使用できます。
PRT エラー コードを取得するには、dsregcmd
コマンドを実行し、SSO State
セクションを見つけます。 AzureAdPrt
フィールドで、Attempt Status
フィールドにエラー コードが含まれています。 次の例では、エラー コードは 0xc000006d
です。
AzureAdPrt : NO
AzureAdPrtAuthority : https://login.microsoftonline.com/aaaa0000-bb11-2222-33cc-444444dddddd
AcquirePrtDiagnostics : PRESENT
Previous Prt Attempt : 2020-09-18 20:20:09.760 UTC
Attempt Status : 0xc000006d
User Identity : user@contoso.com
Credential Type : Password
Correlation ID : aaaa0000-bb11-2222-33cc-444444dddddd
Endpoint URI : https://login.microsoftonline.com/aaaa0000-bb11-2222-33cc-444444dddddd/oauth2/token
HTTP Method : POST
HTTP Error : 0x0
HTTP status : 400
Server Error Code : invalid_grant
Server Error Description : AADSTS50126: Error validating credentials due to invalid username or password.
方法 2: イベント ビューアーを使用して AAD の分析ログと運用ログを調べる
[スタート] を選択し、[イベント ビューアー] を検索して選択します。
コンソール ツリーが [イベント ビューアー] ウィンドウに表示されない場合は、[コンソール ツリーの表示/非表示] アイコンを選択してコンソール ツリーを表示します。
コンソール ツリーで、[イベント ビューアー (ローカル)] を選択します。 子ノードがこの項目の下に表示されない場合は、選択内容をダブルクリックして表示します。
[表示] メニュー項目を選択します。 [分析ログとデバッグ ログの表示] の横にチェックマークが表示されていない場合は、そのメニュー項目を選択してその機能を有効にします。
コンソール ツリーで、[アプリケーションとサービス ログ]>[Microsoft]>[Windows]>[AAD] の順に展開します。 [操作] と [分析] の子ノードが表示されます。
注意
Microsoft Entra クラウド認証プロバイダー (CloudAP) プラグインでは、エラー イベントは 操作イベント ログに書き込まれ、情報イベントは分析イベント ログに書き込まれます。 PRT の問題をトラブルシューティングするには、操作イベント ログと分析イベント ログの両方を調べる必要があります。
コンソール ツリーで、[分析] ノードを選択して、AAD 関連の分析イベントを表示します。
分析イベントの一覧で、イベント ID 1006 と 1007 を検索します。 イベント ID 1006 は PRT 取得フローの開始を表し、イベント ID 1007 は PRT 取得フローの終了を表します。 イベント ID 1006 とイベント ID 1007 の間で発生した AAD ログ (分析と操作の両方) 内のすべてのイベントは、PRT 取得フローの一部としてログに記録されます。 次の表にイベント一覧の例を示します。
Level 日時 source イベント ID Task Category 情報 6/24/2020 3:35:35 AM AAD 1006 AadCloudAPPlugin Operation 情報 6/24/2020 3:35:35 AM AAD 1018 AadCloudAPPlugin Operation 情報 6/24/2020 3:35:35 AM AAD 1144 AadCloudAPPlugin Operation 情報 6/24/2020 3:35:35 AM AAD 1022 AadCloudAPPlugin Operation エラー 6/24/2020 3:35:35 AM AAD 1084 AadCloudAPPlugin Operation エラー 6/24/2020 3:35:35 AM AAD 1086 AadCloudAPPlugin Operation エラー 6/24/2020 3:35:35 AM AAD 1160 AadCloudAPPlugin Operation 情報 6/24/2020 3:35:35 AM AAD 1007 AadCloudAPPlugin Operation 情報 6/24/2020 3:35:35 AM AAD 1157 AadCloudAPPlugin Operation 情報 6/24/2020 3:35:35 AM AAD 1158 AadCloudAPPlugin Operation イベント ID 1007 を含む行をダブルクリックします。 このイベントの [イベントのプロパティ] ダイアログ ボックスが表示されます。
[全般] タブの説明ボックスで、エラー コードをコピーします。 エラー コードは、
0x
で始まり、8 桁の 16 進数が続く 10 桁の文字列です。
手順 3: 特定のエラー コードのトラブルシューティング手順を取得する
状態コード ("STATUS_" プレフィックス、"0xc000" で始まるコード)
STATUS_LOGON_FAILURE (-1073741715 / 0xc000006d),
STATUS_WRONG_PASSWORD (-1073741718 / 0xc000006a)
原因
デバイスが Microsoft Entra 認証サービスに接続できません。
デバイスが次のいずれかのソースから
400 Bad Request
HTTP エラー応答を受信しました。- Microsoft Entra 認証サービス
- WS-Trust プロトコルのエンドポイント (フェデレーション認証に必要)
解決策
オンプレミス環境に送信プロキシが必要である場合は、デバイスのコンピューター アカウントが送信プロキシに対する検出とサイレント認証を実行できることを確認します。
サーバー エラー コードとエラーの説明を取得し、「共通サーバー エラー コード ("AADSTS" プレフィックス)」セクションに移動して、そのサーバー エラー コードの原因とソリューションの詳細を確認します。
Microsoft Entra 操作ログで、イベント ID 1081 には、Microsoft Entra 認証サービスでエラーが発生した場合のサーバー エラー コードとエラーの説明が含まれています。 WS-Trust エンドポイントでエラーが発生した場合、サーバー エラー コードとエラーの説明はイベント ID 1088 にあります。 Microsoft Entra 分析ログで、(操作イベント ID 1081 および 1088 よりも前にある) イベント ID 1022 の最初のインスタンスに、アクセスしている URL が含まれています。
Microsoft Entra の操作ログと分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
STATUS_REQUEST_NOT_ACCEPTED (-1073741616 / 0xc00000d0)
原因
デバイスが次のいずれかのソースから 400 Bad Request
HTTP エラー応答を受信しました。
- Microsoft Entra 認証サービス
- WS-Trust プロトコルのエンドポイント (フェデレーション認証に必要)
解決策
サーバー エラー コードとエラーの説明を取得し、「共通サーバー エラー コード ("AADSTS" プレフィックス)」セクションに移動して、そのサーバー エラー コードの原因とソリューションの詳細を確認します。
Microsoft Entra 操作ログで、イベント ID 1081 には、Microsoft Entra 認証サービスでエラーが発生した場合のサーバー エラー コードとエラーの説明が含まれています。 WS-Trust エンドポイントでエラーが発生した場合、サーバー エラー コードとエラーの説明はイベント ID 1088 にあります。 Microsoft Entra 分析ログで、(操作イベント ID 1081 および 1088 よりも前にある) イベント ID 1022 の最初のインスタンスに、アクセスしている URL が含まれています。
Microsoft Entra の操作ログと分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
STATUS_NETWORK_UNREACHABLE (-1073741252 / 0xc000023c),
STATUS_BAD_NETWORK_PATH (-1073741634 / 0xc00000be),
STATUS_UNEXPECTED_NETWORK_ERROR (-1073741628 / 0xc00000c4)
原因
デバイスが次のいずれかのソースから
4xx
HTTP エラー応答を受信しました。- Microsoft Entra 認証サービス
- WS-Trust プロトコルのエンドポイント (フェデレーション認証に必要)
必要なエンドポイントへのネットワーク接続の問題が存在します。
解決策
サーバー エラー コードとエラーの説明を取得し、「共通サーバー エラー コード ("AADSTS" プレフィックス)」セクションに移動して、そのサーバー エラー コードの原因とソリューションの詳細を確認します。
Microsoft Entra 操作ログで、イベント ID 1081 には、Microsoft Entra 認証サービスでエラーが発生した場合のサーバー エラー コードとエラーの説明が含まれています。 WS-Trust エンドポイントでエラーが発生した場合、サーバー エラー コードとエラーの説明はイベント ID 1088 にあります。
ネットワーク接続の問題の場合は、アクセスしている URL とネットワーク スタックからのサブエラー コードを取得します。 Microsoft Entra 分析ログのイベント ID 1022 には、アクセスしている URL が含まれています。 Microsoft Entra 操作ログのイベント ID 1084 には、ネットワーク スタックからのサブエラー コードが含まれています。
Microsoft Entra の操作ログと分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
STATUS_NO_SUCH_LOGON_SESSION (-1073741729 / 0xc000005f)
原因
Microsoft Entra 認証サービスでユーザーのドメインが見つからなかったため、ユーザー領域の検出に失敗しました。
解決策
ユーザーのユーザー プリンシパル名 (UPN) のドメインを Microsoft Entra ID でカスタム ドメインとして追加します。 提供されている UPN を見つけるには、Microsoft Entra ID 分析ログでイベント ID 1144 を探します。
Microsoft Entra の分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
オンプレミスのドメイン名をルーティングできない場合 (たとえば、UPN が
jdoe@contoso.local
などの場合) は、代替ログイン ID (AltID) を構成します。 (前提条件を見るには、「Microsoft Entra ハイブリッド参加の実装を計画する」を参照してください。)
共通 CloudAP プラグイン エラー コード ("AAD_CLOUDAP_E_" プレフィックス、"0xc004" で始まるコード)
AAD_CLOUDAP_E_OAUTH_USERNAME_IS_MALFORMED (-1073445812 / 0xc004844c)
原因
ユーザーの UPN が予期された形式ではありません。 UPN 値は、次の表に示すように、デバイスの種類によって異なります。
デバイスの参加の種類 | UPN 値 |
---|---|
Microsoft Entra 参加済みデバイス | ユーザーがサインインするときに入力されるテキスト |
Microsoft Entra ハイブリッド参加済み | サインイン プロセス中にドメイン コントローラーから返される UPN |
解決策
インターネット標準 RFC 822 に基づいて、ユーザーの UPN をインターネット スタイルのサインイン名に設定します。 現在の UPN を見つけるには、Microsoft Entra ID 分析ログでイベント ID 1144 を探します。
Microsoft Entra の分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
Microsoft Entra ハイブリッド参加済みデバイスの場合は、UPN を正しい形式で返すようにドメイン コントローラーが構成されていることを確認します。 構成された UPN をドメイン コントローラーに表示するには、次の whoami コマンドを実行します。
whoami /upn
Active Directory が正しい UPN で構成されている場合は、ローカル セキュリティ機関サブシステム サービス (LSASS または lsass.exe) のタイム トラベル トレースを収集します。
オンプレミスのドメイン名をルーティングできない場合 (たとえば、UPN が
jdoe@contoso.local
などの場合) は、代替ログイン ID (AltID) を構成します。 (前提条件を見るには、「Microsoft Entra ハイブリッド参加の実装を計画する」を参照してください。)
AAD_CLOUDAP_E_OAUTH_USER_SID_IS_EMPTY (-1073445822 / 0xc0048442)
原因
Microsoft Entra 認証サービスから返される ID トークンにユーザーセキュリティ ID (SID) がありません。
解決策
ネットワーク プロキシがサーバーの応答を妨害したり変更したりしていないことを確認します。
AAD_CLOUDAP_E_WSTRUST_SAML_TOKENS_ARE_EMPTY (-1073445695 / 0xc00484c1 / 0x800484c1)
原因
WS-Trust プロトコル エンドポイント (フェデレーション認証に必要) からエラーを受信しました。
解決策
ネットワーク プロキシがサーバーの応答を妨害したり変更したりしていないことを確認します。
Microsoft Entra 操作ログのイベント ID 1088 からサーバー エラー コードとエラーの説明を取得します。 次に、「共通サーバー エラー コード ("AADSTS" プレフィックス)」セクションに移動して、そのサーバー エラー コードの原因とソリューションの詳細を確認します。
Microsoft Entra の操作ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
AAD_CLOUDAP_E_HTTP_PASSWORD_URI_IS_EMPTY (-1073445749 / 0xc004848b)
原因
Metadata Exchange (MEX) エンドポイントが正しく構成されていません。 MEX 応答に、パスワードの URL が含まれていません。
解決策
ネットワーク プロキシがサーバーの応答を妨害したり変更したりしていないことを確認します。
有効な URL が応答で返されるように、MEX の構成を修正してください。
AAD_CLOUDAP_E_HTTP_CERTIFICATE_URI_IS_EMPTY (-1073445748 / 0xc004848c)
原因
Metadata Exchange (MEX) エンドポイントが正しく構成されていません。 MEX 応答には、証明書エンドポイント URL が含まれていません。
解決策
ネットワーク プロキシがサーバーの応答を妨害したり変更したりしていないことを確認します。
ID プロバイダーの MEX 構成を修正して、有効な証明書 URL を応答として返します。
共通 XML エラー コード ("0xc00c" で始まるコード)
WC_E_DTDPROHIBITED (-1072894385 / 0xc00cee4f)
原因
WS-Trust プロトコル エンドポイント (フェデレーション認証に必要) からの XML 応答に、ドキュメント型定義 (DTD) が含まれていました。 XML 応答では DTD が想定されておらず、DTD が含まれている場合、応答の解析は失敗します。
解決策
XML 応答で DTD が送信されないように ID プロバイダーの構成を修正します。
Microsoft Entra 分析ログのイベント ID 1022 からアクセスしている URL を取得します。
Microsoft Entra の分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
共通サーバー エラー コード ("AADSTS" プレフィックス)
サーバー エラー コードの完全なリストと説明については、「Microsoft Entra 認証と承認のエラー コード」を参照してください。
AADSTS50155: デバイス認証に失敗しました
原因
Microsoft Entra で、PRT を発行するデバイスを認証できません。
デバイスが削除された、または無効になっている可能性があります。 (詳細について、「Windows 10/11 デバイスに "Your organization has deleted the device (組織がデバイスを削除しました)" または "Your organization has disabled the device (組織がデバイスを無効にしました)" というエラー メッセージが表示されるのはなぜですか?」を参照してください。)
解決策
デバイスの参加の種類に基づいてデバイスを再登録します。 手順については、「デバイスを無効化または削除しましたが、デバイスのローカル状態にはまだ登録済みと表示されます。どうすればよいですか。」を参照してください。
AADSTS50034: ユーザー アカウント <Account> が <tenant-id> ディレクトリに存在しません
原因
Microsoft Entra ID で、テナント内のユーザー アカウントを検出できません。
解決策
ユーザーが正しい UPN を入力していることを確認します。
オンプレミスのユーザー アカウントが Microsoft Entra と同期されていることを確認します。
提供されている UPN を見つけるには、Microsoft Entra ID 分析ログでイベント ID 1144 を探します。
Microsoft Entra の分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
AADSTS50126: 無効なユーザー名またはパスワードにより、資格情報の検証でエラーが発生しました
原因
ユーザーがサインイン UI で正しくないユーザー名またはパスワードを入力しました。
次のシナリオのため、パスワードが Microsoft Entra に同期されていません。
- テナントでパスワード ハッシュ同期が有効になっています。
- このデバイスは、Microsoft Entra ハイブリッド参加済みデバイスです。
- ユーザーが最近パスワードを変更しました。
解決策
新しい証明書を含む新しい PRT を取得するには、Microsoft Entra の同期が完了するまで待ちます。
共通ネットワーク エラー コード ("ERROR_WINHTTP_" プレフィックス)
ネットワーク エラー コードの完全な一覧と説明については、「エラー メッセージ (Winhttp.h)」を参照してください。
ERROR_WINHTTP_TIMEOUT (12002)、
ERROR_WINHTTP_NAME_NOT_RESOLVED (12007)、
ERROR_WINHTTP_CANNOT_CONNECT (12029)、
ERROR_WINHTTP_CONNECTION_ERROR (12030)
原因
ネットワーク全般に関連した一般的な問題です。
解決策
アクセスしている URL を取得します。 URL は、Microsoft Entra 操作ログのイベント ID 1084 または Microsoft Entra 分析ログのイベント ID 1022 にあります。
Microsoft Entra の操作ログと分析ログでイベント ID を表示するには、「方法 2: イベント ビューアーを使用して Microsoft Entra の分析ログと操作ログを調べる」セクションを参照してください。
オンプレミス環境に送信プロキシが必要である場合は、デバイスのコンピューター アカウントが送信プロキシに対する検出とサイレント認証を実行できることを確認します。
次の手順に従ってネットワーク トレースを収集します。
重要
この手順では Fiddler を使用しないでください。
次の netsh trace start コマンドを実行します。
netsh trace start scenario=InternetClient_dbg capture=yes persistent=yes
デバイスをロックします。
デバイスが Microsoft Entra ハイブリッド参加済みデバイスの場合は、PRT 取得タスクが完了するまで少なくとも 60 秒待ちます。
デバイスのロックを解除します。
次の netsh trace stop コマンドを実行します。
netsh trace stop
手順 4: ログとトレースを収集する
通常のログ
Auth スクリプト アーカイブをダウンロードし、スクリプトをローカル ディレクトリに抽出します。 必要に応じて、KB 4487175 で手順を確認します。
管理 PowerShell セッションを開き、現在のディレクトリを Auth スクリプトを保存したディレクトリに変更します。
エラー トレース セッションを開始するには、次のコマンドを入力します。
.\Start-auth.ps1 -v -acceptEULA
Windows ユーザー アカウントを切り替えて、問題のあるユーザーのセッションに移動します。
デバイスをロックします。
デバイスが Microsoft Entra ハイブリッド参加済みデバイスの場合は、PRT 取得タスクが完了するまで少なくとも 60 秒待ちます。
デバイスのロックを解除します。
Windows ユーザー アカウントを切り替えてトレース セッションを実行している管理セッションに戻ります。
問題を再現したら、次のコマンドを実行してトレース セッションを終了します。
.\stop-auth.ps1
すべてのトレースが完全に停止するまで待ちます。
タイム トラベル トレース
次の手順では、タイム トラベル デバッグ (TTD) 機能を使用してトレースをキャプチャする方法について説明します。
警告
タイム トラベル トレースには個人データが含まれます。 さらに、ローカル セキュリティ機関サブシステム サービス (LSASS または lsass.exe) トレースには、非常に機密性の高い情報が含まれています。 これらのトレースを処理するときは、この種類の情報のストレージと共有に関するベスト プラクティスを使用していることを確認します。
[スタート] を選択し、「cmd」と入力し、検索結果で [コマンド プロンプト] を見つけて右クリックし、[管理者として実行] を選択します。
コマンド プロンプトで、一時ディレクトリを作成します。
mkdir c:\temp
次の tasklist コマンドを実行します。
tasklist /m lsasrv.dll
tasklist
コマンドの出力で、PID
のプロセス識別子 () を見つけます。lsass.exe プロセスのトレース セッションを開始するには、次のタイム トラベル デバッグ コマンド (TTD.exe) を実行します。
TTD.exe -attach <lsass-pid> -out c:\temp
ドメイン アカウントでサインインしているデバイスをロックします。
デバイスのロックを解除します。
タイム トラベル トレース セッションを終了するには、次の TTD コマンドを実行します。
TTD.exe -stop all
最新の lsass##.run ファイルを取得します。