社内ネットワークに接続された会社PCで、ファイルサーバーやWebアプリケーションにアクセスしようとした際に「認証に失敗しました」というエラーが表示され、業務が進められなくなることがあります。多くの場合、このエラーはWindowsのKerberos認証が正常に動作していないことが原因です。Kerberos認証はActive Directory環境で標準的に使われる認証プロトコルであり、時刻のずれやサービスプリンシパル名(SPN)の設定誤りによって失敗します。本記事では、その中でも特に発生頻度の高い「時刻同期の問題」と「SPNの設定不備」に焦点を当て、原因の特定方法と対処手順を詳しく解説します。
【要点】この記事で確認すること
- 最初に見る場所: Windowsのシステム時刻(タスクバーの時計)とイベントビューアの「Windows ログ > システム」または「アプリケーションとサービス ログ > Microsoft > Windows > Kerberos」
- 切り分けの軸: 端末側(時刻同期が正しいか)、アカウント側(SPNが重複または欠落していないか)、ドメインコントローラ側(NTPサーバーの設定やサービスアカウントの状態)
- 注意点: 時刻同期の強制変更には管理者権限が必要です。SPNの追加や削除はActive Directory全体に影響を与えるため、必ず管理者が操作してください。ユーザーが勝手に変更すると、他のサービスが利用できなくなる恐れがあります。
ADVERTISEMENT
目次
Kerberos認証が失敗する主な原因
Kerberos認証の失敗原因は多岐にわたりますが、頻度の高いものは以下の3つに分類できます。最初にこれらの原因を疑い、確認することで素早い解決が可能です。
時刻同期のずれ
Kerberosプロトコルは、通信時刻の差がデフォルトで5分以内であることを要求します。クライアントPCとドメインコントローラの時刻が5分以上ずれていると、認証チケットの要求自体が拒否されます。この状態では、ネットワークドライブのマッピングやOutlookの接続など、多くのサービスが利用できなくなります。会社PCでは通常、グループポリシーで自動時刻同期が設定されていますが、NTPサーバーに到達できない場合や、PCが長期間スリープしていた場合にずれが生じます。
SPNの重複や欠落
サービスプリンシパル名(SPN)は、ネットワーク上のサービスを一意に識別するための名前です。Windowsでは、IISやSQL ServerなどのサービスがKerberos認証を使うときに、適切なSPNがActive Directoryに登録されている必要があります。SPNが重複しているとどのサービスを指しているか競合が発生し、欠落しているとサービスへの認証そのものが成立しません。これらの問題は、サービスアカウントの変更やサーバーの移設など、構成変更後に起こりやすいです。
その他の要因(DNS、チケットの有効期限)
時刻やSPN以外にも、DNS名前解決の失敗やKerberosチケットの有効期限切れ、ドメインコントローラとの通信経路の問題などが原因となる場合があります。しかし、これらはネットワークインフラやActive Directory全体の設定に関わるため、個人レベルで対処できる範囲を超えます。本記事では時刻同期とSPNに絞って具体的な手順を提示しますが、これらの確認で解決しない場合はシステム管理者への報告を検討してください。
時刻同期の確認と修正手順
次の手順に従って、会社PCの時刻がドメインコントローラと同期されているか確認し、必要に応じて修正します。操作には管理者権限が必要な場合があるため、自分のアカウントに権限がない場合はITサポートに依頼してください。
- タスクバーの時刻表示を右クリックし、「日付と時刻の調整」を選択します。表示された時刻が現在のタイムゾーンと合っているか確認します。
- スタートメニューを開き、「cmd」と入力して「コマンドプロンプト」を右クリックし、「管理者として実行」を選びます。
- コマンドプロンプトで
w32tm /query /statusと入力し、実行結果を確認します。「Source」の項目がドメインコントローラのホスト名(例: dc01.contoso.com)になっているか、「Last Successful Sync Time」が現在時刻から24時間以内かをチェックします。 - もしSourceが「Local CMOS Clock」と表示されたり、同期が非常に古い場合は、手動で同期を試みます。
w32tm /resyncと入力して実行します。成功すると「コマンドは正常に完了しました」と表示されます。 - 手動同期でも改善しない場合、NTPサーバーの設定を確認します。
w32tm /query /configurationを実行し、「Type」が「NTP」または「AllSync」になっていることを確認します。もし「NoSync」になっている場合は、グループポリシーで強制されている可能性が高いため、管理者に連絡します。 - 最後に、イベントビューアで同期エラーがないか確認します。イベントビューアを開き、「Windows ログ > システム」をフィルターし、ソースが「Kernel-General」でイベントID 1のログや、タイムサービス(W32Time)関連のエラーがないか探します。
以上の手順で時刻同期の問題が解決できない場合、ドメインコントローラ側のNTPソースに問題がある可能性があります。その際は管理者に「クライアントの時刻同期が失敗していること」を具体的なエラーメッセージとともに伝えてください。
SPNの確認手順(管理者向け)
SPNの設定はActive Directory管理者が行う操作です。一般ユーザーは確認することもできませんが、管理者へ問題を報告するために、以下の情報を知っておくと役立ちます。ここでは、代表的な確認コマンドと注意点を説明します。
setspn コマンドの使い方
管理者はコマンドプロンプト(管理者権限)で setspn -L コンピュータ名 を実行すると、そのコンピュータに登録されているSPNの一覧が表示されます。正常な状態では、各サービスに対応するSPNが重複せずに1つだけ表示される必要があります。例えば、HTTPサービスなら HTTP/server.contoso.com のような形式です。
重複SPNの検出
重複SPNは setspn -X を実行することで一覧表示できます。このコマンドはActive Directory全体で重複しているSPNを検出し、競合の原因となっているコンピュータやアカウントを特定します。重複が見つかった場合、不要なSPNを削除するか、サービスの構成を変更して一意になるよう調整します。
| 状況 | 現象 | エラーメッセージ例 | 対策 |
|---|---|---|---|
| 正常 | 認証成功 | なし | なし |
| 時刻ずれ | 特定のサービスへアクセスできない | KRB_AP_ERR_SKEW (clock skew too great) | 時刻同期を修正 |
| SPN重複 | 一部ユーザーのみアクセス失敗 | KRB_AP_ERR_MODIFIED (サービスが改ざんされた) | 重複SPNを削除 |
| SPN欠落 | 全ユーザーがアクセス失敗 | KRB_AP_ERR_NOT_FOUND (SPNが見つからない) | 正しいSPNを追加 |
失敗パターンと解決方法
実際の現場でよく発生する3つの失敗パターンを紹介します。自身の状況と照らし合わせて、原因を絞り込んでください。
パターン1:時刻ずれによる「KRB_AP_ERR_SKEW」
イベントビューアやアプリケーションのエラーログに「KRB_AP_ERR_SKEW (clock skew too great)」と表示される場合、クライアントPCとドメインコントローラの時刻差が5分以上あることを示します。この場合、上記の時刻同期手順を実施してください。特に、PCがスリープから復帰した直後や、ネットワークに再接続したタイミングで発生しやすいです。
パターン2:SPN重複による認証失敗
SPNが重複していると、Kerberos認証時にどのサービスを指しているか競合が起こり、「KRB_AP_ERR_MODIFIED」というエラーが発生します。このエラーは「サービスが改ざんされた」という意味で、実際にはSPNの重複が原因であることが多いです。管理者はsetspn -Xで重複を発見し、不要なSPNを削除して解決します。
パターン3:サービスアカウントのパスワード変更未反映
サービスが特定のアカウント(管理サービスアカウントなど)で実行されている場合、そのアカウントのパスワードが変更された後にサービスを再起動していないと、SPNとパスワードの不一致が生じます。この場合も「KRB_AP_ERR_MODIFIED」が発生します。管理者はサービスアカウントのパスワードを再設定し、該当サービスを再起動することで対処します。
管理者へ確認する情報
一般ユーザーが原因を特定できない場合や、権限不足で修正できない場合は、以下の情報を整理して管理者に伝えるとスムーズです。
- エラーメッセージのスクリーンショット: 表示されているエラーダイアログやイベントビューアのログを画像で保存します。特にイベントIDやエラーコードが重要です。
- 発生時刻と再現手順: いつ、どの操作を行った後に認証が失敗したかを具体的に記載します。ネットワークの再接続やソフトウェアのインストール直後など、関連する変更も伝えます。
- 影響を受けるサービス: アクセスできなくなったサーバー名やアプリケーション名を列挙します。複数のサービスで同時に発生している場合は、その旨も共有します。
- クライアントのIPアドレスとホスト名:
ipconfig /allの結果をテキストで添付すると、管理者がドメインコントローラ側で確認する際に役立ちます。
よくある質問
最後に、ユーザーから寄せられることの多い質問とその回答をまとめます。
Q1: ユーザー自身で時刻を手動修正してもよいですか?
手動での修正は一時的な応急処置として可能ですが、根本的な解決にはなりません。また、会社のセキュリティポリシーにより手動修正が禁止されている場合があります。必ず管理者に相談することをおすすめします。
Q2: SPNの重複は自分で直せますか?
いいえ、Active Directoryの操作権限が必要なため、一般ユーザーでは対応できません。管理者に「setspn -X を実行して重複を確認してほしい」と具体的に依頼してください。
Q3: Kerberosチケットの有効期限はどのくらいですか?
デフォルトではチケット発行後10時間です。ただし、ドメインコントローラの設定で変更可能です。期限切れの場合は自動的に再取得されますが、時刻同期に問題があると再取得も失敗します。
Q4: 時刻同期のコマンドを実行してもエラーになります。
エラーの内容をメモして管理者に連絡してください。よくある原因として、ファイアウォールがNTP(UDP 123)をブロックしている、またはドメインコントローラがNTPサーバーに到達できていないことが考えられます。
まとめ
Kerberos認証の失敗は、多くの場合「時刻同期のずれ」と「SPNの設定不備」に集約されます。本記事で紹介した手順を順に確認することで、原因の80%以上を特定できます。時刻同期はユーザー自身でも確認できる範囲がありますが、SPNの問題は管理者の対応が必要です。問題が解決しない場合は、エラーメッセージや発生状況を正確に記録して管理者へ報告してください。適切な情報共有が、迅速な復旧への近道となります。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
