大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第6回 よくある問題と解決方法

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第6回 よくある問題と解決方法

こんにちは、今回はシリーズ第6回トラブルシューティング - よくある問題と解決方法 について解説いたします!

さて、前回(第5回)は、統合Windows認証がブラウザでどのように動作するかを解説しました。

「イントラネットゾーン」という概念を理解することで、同じサーバーでもURLの書き方(NetBIOS名、FQDN、IPアドレス)によって認証動作が変わる理由が明確になったかと思います。また、Chrome/Firefoxではデフォルトで統合認証が無効になっている理由と、グループポリシーによる一括設定方法も学びました。

しかし、設定が完璧なはずなのに「なぜかうまく動かない」という場面は、実際の現場では必ず訪れます。

「最近、ファイルサーバーへのアクセスが遅い」「金曜日は使えたのに、月曜日の朝にログインできない」「特定のサービスだけKerberosが失敗する」——これらはヘルプデスクに日々寄せられる典型的な問い合わせです。

原因はKerberosの失敗、時刻のずれ、SPNの設定ミス、DNS関連の問題など多岐にわたりますが、体系的にトラブルシューティングすることで必ず解決できます。

今回は、AD環境で頻繁に起きるトラブルをパターン別に整理し、診断コマンドを使った原因特定から具体的な解決手順まで、実践的なトラブルシューティングの流れを解説します。焦らず、一つずつ確認していくことが解決への近道です。それでは始めていきましょう!

連載の構成


第6章:トラブルシューティング

6.1 認証関連のトラブル

6.1.1 Kerberosが失敗してNTLMにフォールバックする原因

Kerberosは最も安全な認証方式ですが、様々な理由で失敗し、NTLMにフォールバックすることがあります。これは、パフォーマンス低下の原因にもなります。

【典型的な症状】
ユーザー:「最近、ファイルサーバーへのアクセスが遅いんです」
IT管理者:「ログを確認してみましょう」

イベントログ:
Kerberos認証に失敗しました。
NTLMにフォールバックします。

IT管理者:「Kerberosが失敗してますね。原因を調べましょう」

診断コマンドの実行を見てみましょう。

【Kerberos診断】
# 現在のチケット確認
klist

結果(正常な場合):
キャッシュされたチケット: 2
#0> クライアント: tanaka_t @ JP.QUALITEG.COM
    サーバー: krbtgt/JP.QUALITEG.COM @ JP.QUALITEG.COM
    暗号化の種類: AES-256-CTS-HMAC-SHA1-96
    チケットの有効期限: 2024/01/20 18:00:00

結果(問題がある場合):
キャッシュされたチケット: 0
→ チケットが取得できていない

# チケット取得のテスト
kinit tanaka_t@JP.QUALITEG.COM

よくある原因1:DNS関連の問題を見てみましょう。

【DNSが原因の場合】
状況:NetBIOS名では動くが、FQDNでは失敗

テスト:
# NetBIOS名
ping fileserver → 成功
アクセス: \\fileserver\share → 成功(NTLM)

# FQDN
ping fileserver.jp.qualiteg.com → 成功
アクセス: \\fileserver.jp.qualiteg.com\share → 遅い(Kerberos失敗→NTLM)

原因調査:
nslookup fileserver.jp.qualiteg.com
→ 正引きOK

nslookup 192.168.1.50
→ 逆引きNG!

IT管理者:「逆引きDNSレコードが missing です」

解決策:
DNSマネージャーで逆引きゾーンにPTRレコード追加
50.1.168.192.in-addr.arpa. → fileserver.jp.qualiteg.com.

よくある原因2:SPN(Service Principal Name)の問題を見てみましょう。

【SPNが原因の場合】
症状:特定のサービスだけKerberosが失敗

確認コマンド:
setspn -L fileserver

結果(問題なし):
登録されたSPN:
    HOST/fileserver
    HOST/fileserver.jp.qualiteg.com

結果(問題あり):
登録されたSPN:
    (空)

または重複エラー:
setspn -X
重複したSPNが見つかりました:
    HTTP/intranet.jp.qualiteg.com
    → サーバーAとサーバーBの両方に登録

解決策:
# SPN追加
setspn -A HOST/fileserver.jp.qualiteg.com FILESERVER$

# 重複削除
setspn -D HTTP/intranet.jp.qualiteg.com サーバーB

暗号化方式の不一致も見てみましょう。

【暗号化の非互換性】
Windows Server 2019管理者:「新しいDCを追加したら認証が遅くなった」

調査:
# サポートされる暗号化方式の確認
グループポリシー:
ネットワークセキュリティ: Kerberos で許可された暗号化方式の構成

古いサーバー:RC4-HMAC(非推奨)
新しいサーバー:AES256-CTS-HMAC-SHA1-96

問題:
古いアプリ:「RC4しか話せません」
新DC:「RC4は無効化されています」
結果:Kerberos失敗

解決策:
1. 一時的にRC4を有効化(セキュリティリスクあり)
2. アプリケーションのアップデート(推奨)

6.1.2 時刻同期の重要性

Kerberos認証において、時刻同期は極めて重要です。5分以上のずれがあると認証が失敗します。

【時刻ずれによる認証失敗】
月曜日の朝:
田中:「金曜日は使えたのに、ログインできません!」
エラー:「現在、ログオン要求を処理できるログオンサーバーはありません」

IT管理者:「時刻を確認してみましょう」

クライアントPC:2024/01/20 09:00:00
DC:2024/01/20 09:07:00
差:7分

IT管理者:「5分以上ずれてます。これが原因です」

時刻同期の仕組みを理解しましょう。

【Windows時刻同期の階層】
正しい構成:
インターネット時刻サーバー(time.windows.com)
    ↓
PDCエミュレーター(DC01)
    ↓
その他のDC(DC02, DC03)
    ↓
メンバーサーバー、クライアントPC

確認コマンド:
# 時刻源の確認
w32tm /query /source

正常:DC01.jp.qualiteg.com
問題:Local CMOS Clock → 同期していない

# 詳細状態
w32tm /query /status

時刻同期の修正方法を見てみましょう。

【時刻同期の設定】
PDCエミュレーターでの設定:
# 外部時刻源の設定
w32tm /config /manualpeerlist:"time.windows.com,0x9 ntp.nict.jp,0x9" /syncfromflags:manual /reliable:yes /update

# サービス再起動
net stop w32time && net start w32time

# 即座に同期
w32tm /resync /rediscover

その他のDCでの設定:
# PDCエミュレーターから同期
w32tm /config /syncfromflags:domhier /update

クライアントPCでの設定:
# 通常は自動だが、手動設定も可能
w32tm /config /syncfromflags:domhier /update

時刻同期のトラブルシューティングを行いましょう。

【よくある時刻同期の問題】
問題1:ファイアウォールでNTPがブロック
症状:
w32tm /stripchart /computer:time.windows.com
エラー: 0x800705B4 - タイムアウト

解決:
UDP 123番ポートを開放

問題2:仮想マシンの時刻同期競合
症状:
VM:「ホストと同期します」
DC:「いや、NTPと同期して」
結果:時刻が安定しない

解決:
VMware: VMware Toolsの時刻同期を無効化
Hyper-V: 統合サービスの時刻同期を無効化

問題3:大幅な時刻ずれ
症状:
w32tm /resync
コンピューターの再同期コマンドがコンピューターに送信されましたが、
時刻データが利用できなかったためにエラーが発生しました。

原因:差が大きすぎて自動修正を拒否(通常48時間以上)

解決:
# 手動で近い時刻に設定してから同期
net time \\DC01 /set /y

6.1.3 SPN(Service Principal Name)の設定

SPNは、Kerberos認証でサービスを一意に識別するための名前です。正しく設定されていないと、Kerberos認証が失敗します。

【SPNとは何か】
新人:「SPNって何ですか?」
IT管理者:「サービスの住所みたいなものです」

例えで説明:
田中さんの自宅 = HOST/tanaka-pc.jp.qualiteg.com
 場所:tanaka-pc.jp.qualiteg.com
 用途:HOST(コンピューター)

会社のWebサーバー = HTTP/intranet.jp.qualiteg.com
 場所:intranet.jp.qualiteg.com  
 用途:HTTP(Webサービス)

Kerberos:「HTTP/intranet.jp.qualiteg.comへのチケットをください」
KDC:「SPNを検索...見つかった!チケット発行」

SPNの確認と登録を行いましょう。

【SPNの管理】
# 特定のアカウントのSPN確認
setspn -L IIS_Service

# コンピューターアカウントのSPN確認  
setspn -L SERVER01$

典型的なSPN:
HOST/server01
HOST/server01.jp.qualiteg.com
TERMSRV/server01
TERMSRV/server01.jp.qualiteg.com
RestrictedKrbHost/server01
RestrictedKrbHost/server01.jp.qualiteg.com

# IISサーバーのSPN登録例
# アプリケーションプールが特定のアカウントで実行される場合
setspn -A HTTP/webapp.jp.qualiteg.com JP\webapp_svc
setspn -A HTTP/webapp JP\webapp_svc

SPN関連のトラブルを見てみましょう。

【重複SPNの問題】
症状:Webサイトにアクセスすると認証エラー

調査:
setspn -X
処理中...
重複が見つかりました:
HTTP/intranet.jp.qualiteg.com が以下に登録:
  - SERVER01$
  - intranet_svc

IT管理者:「同じSPNが2つのアカウントに!」

理由:
1. 最初、SERVER01のコンピューターアカウントで動いていた
2. 後でサービスアカウント(intranet_svc)に変更
3. 古いSPNを削除し忘れ

解決:
setspn -D HTTP/intranet.jp.qualiteg.com SERVER01$
→ 古い方を削除

アプリケーションプールとSPNの関係を見てみましょう。

【IISでの実例】
シナリオ:社内ポータルサイトの構築

構成:
- URL: http://portal.jp.qualiteg.com
- アプリケーションプール: PortalAppPool
- 実行アカウント: JP\portal_svc

必要な作業:
1. サービスアカウント作成
New-ADUser -Name "portal_svc" -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) -Enabled $true

2. SPN登録
setspn -A HTTP/portal.jp.qualiteg.com JP\portal_svc
setspn -A HTTP/portal JP\portal_svc

3. IISでの設定
- アプリケーションプール → 詳細設定 → ID → portal_svc
- 認証 → Windows認証:有効、匿名認証:無効

4. 確認
setspn -L portal_svc
→ SPNが表示されることを確認

6.1.4 DNS関連の問題

DNS設定の問題は、AD環境でのトラブルの大半を占めます。正しく設定されていないと、認証以前に名前解決で失敗します。

【典型的なDNS問題】
ユーザー:「ファイルサーバーにつながりません」
IT:「pingしてみてください」
ユーザー:「ping fileserver」
結果:ping 要求ではホスト fileserver が見つかりませんでした

IT:「DNSサフィックスを確認しましょう」
ipconfig /all
DNSサフィックス: (空)← 問題!

DNSサフィックスの設定を見てみましょう。

【DNSサフィックスの重要性】
正しい設定:
プライマリDNSサフィックス: jp.qualiteg.com
DNS サフィックス検索一覧: jp.qualiteg.com, tokyo.jp.qualiteg.com

動作の違い:
# サフィックスなし
ping fileserver
→ 「fileserver」を探す → 失敗

# サフィックスあり  
ping fileserver
→ 「fileserver.jp.qualiteg.com」を探す → 成功

設定方法:
1. DHCP経由(推奨)
   Option 015: jp.qualiteg.com

2. 手動設定
   ネットワークアダプター → プロパティ → 詳細設定 → DNS
   「この接続のDNSサフィックス」: jp.qualiteg.com

DNSの正引き・逆引き問題を見てみましょう。

【逆引きDNSの重要性】
問題の症状:
- 名前でアクセス: 成功
- IPでアクセス: 認証に時間がかかる

調査:
# 正引きテスト
nslookup server01.jp.qualiteg.com
→ 192.168.1.20

# 逆引きテスト  
nslookup 192.168.1.20
→ *** dns1.jp.qualiteg.com can't find 192.168.1.20: Non-existent domain

原因:逆引きゾーンがないか、レコードがない

解決策:
1. DNS管理ツールで逆引きゾーン作成
   - 新しいゾーン → 逆引き参照ゾーン
   - ネットワークID: 192.168.1

2. PTRレコード追加
   - 20 → server01.jp.qualiteg.com.

DNSキャッシュの問題を見てみましょう。

【古いDNS情報によるトラブル】
状況:サーバーのIPアドレスを変更した後

ユーザー:「新しいサーバーにつながらない」
IT:「DNS確認してみましょう」

# DNSサーバーに問い合わせ
nslookup server01.jp.qualiteg.com 192.168.1.10
→ 192.168.1.50(新IP)

# でもpingは古いIPに
ping server01.jp.qualiteg.com
→ 192.168.1.20(旧IP)に ping しています

原因:ローカルDNSキャッシュ

解決:
ipconfig /flushdns
→ DNSキャッシュをクリア

確認:
ipconfig /displaydns
→ キャッシュ内容を表示

条件付きフォワーダーの設定を見てみましょう。

【複数ドメイン環境でのDNS】
シナリオ:会社買収で別ドメインと連携

環境:
- 自社: jp.qualiteg.com(192.168.1.0/24)
- 買収先: acquired.local(192.168.2.0/24)

問題:
nslookup server.acquired.local
→ 見つからない

解決策:条件付きフォワーダー
DNSマネージャー → 条件付きフォワーダー → 新規
- DNSドメイン: acquired.local
- IPアドレス: 192.168.2.10(買収先のDNS)

結果:
acquired.localへの問い合わせは192.168.2.10に転送

6.2 ドメイン参加のトラブル

6.2.1 「ドメインが見つからない」エラー

ドメイン参加時の最も一般的なエラーです。原因は多岐にわたりますが、体系的にトラブルシューティングすることで解決できます。

【典型的なエラーメッセージ】
エラー:
「ドメイン "jp.qualiteg.com" に接続できませんでした。
(ドメインが存在しないか、またはアクセスできません)」

新人IT:「ドメイン名は合ってるのに...」
先輩:「順番に確認していきましょう」

ステップ1:ネットワーク接続の確認を行いましょう。

【基本的な接続確認】
# IPアドレスの確認
ipconfig /all

確認ポイント:
- IPアドレス: 169.254.x.x → DHCPサーバーに届いていない
- IPアドレス: 192.168.1.x → 正常
- DNSサーバー: 192.168.1.1 → ルーターを見ている(NG)
- DNSサーバー: 192.168.1.10 → DCを見ている(OK)

# DCへの疎通確認
ping 192.168.1.10
→ 応答があることを確認

ステップ2:DNS名前解決の確認を行いましょう。

【DNS解決のテスト】
# ドメイン名の解決
nslookup jp.qualiteg.com

正常な応答:
Server:  dc01.jp.qualiteg.com
Address: 192.168.1.10

Name:    jp.qualiteg.com
Addresses: 192.168.1.10, 192.168.1.11

問題のある応答:
*** dc01.jp.qualiteg.com can't find jp.qualiteg.com: Non-existent domain

# SRVレコードの確認(重要)
nslookup -type=srv _ldap._tcp.jp.qualiteg.com

正常な応答:
_ldap._tcp.jp.qualiteg.com    SRV service location:
    priority       = 0
    weight         = 100  
    port          = 389
    svr hostname  = dc01.jp.qualiteg.com

ステップ3:ファイアウォールの確認を行いましょう。

【必要なポートの確認】
# PowerShellでポート確認
Test-NetConnection -ComputerName dc01.jp.qualiteg.com -Port 389
Test-NetConnection -ComputerName dc01.jp.qualiteg.com -Port 445
Test-NetConnection -ComputerName dc01.jp.qualiteg.com -Port 88
Test-NetConnection -ComputerName dc01.jp.qualiteg.com -Port 135

必要なポート:
- 88 (Kerberos)
- 135 (RPC Endpoint Mapper)
- 389 (LDAP)
- 445 (SMB)
- 636 (LDAPS)
- 3268 (Global Catalog)

Windowsファイアウォールの一時無効化(テスト用):
netsh advfirewall set allprofiles state off
※テスト後は必ず有効に戻す

6.2.2 認証エラーの対処法

ドメインは見つかるが、認証で失敗するケースの対処法です。

【認証エラーの種類】
エラー1:
「ログオンに失敗しました: ユーザー名を認識できないか、
またはパスワードが間違っています。」

エラー2:
「指定されたドメインがないか、またはコンタクトできません。」

エラー3:
「現在、ログオン要求を処理できるログオンサーバーはありません。」

ユーザー名の形式問題を見てみましょう。

【正しいユーザー名の形式】
よくある間違い:
× administrator(ドメイン指定なし)
× tanaka_t(一般ユーザー)
× admin(存在しないユーザー)

正しい形式:
○ JP\Administrator
○ Administrator@jp.qualiteg.com
○ jp.qualiteg.com\Administrator

# 現在のドメイン管理者の確認
net group "Domain Admins" /domain

アカウントの状態確認を行いましょう。

【管理者アカウントの問題】
# DCで実行(アカウント状態確認)
net user Administrator /domain

確認ポイント:
- アカウント有効: Yes
- アカウントの有効期限: 無期限
- パスワード有効期限: 無期限
- アカウントロックアウト: No

# ロックアウトされている場合
net user Administrator /active:yes /domain

# パスワードリセット(最終手段)
net user Administrator NewP@ssw0rd /domain

ドメイン参加に使用できるアカウントを確認しましょう。

【権限の確認】
# Domain Adminsグループのメンバー確認
net group "Domain Admins" /domain

# 他に使えるグループ
- Domain Admins(全権限)
- Enterprise Admins(フォレスト全体)  
- Account Operators(限定的な権限)

# 委任された権限の確認
dsacls "OU=Computers,DC=jp,DC=qualiteg,DC=com"
→ コンピューターオブジェクト作成権限を確認

6.2.3 ネットワーク設定の確認ポイント

ドメイン参加の成功には、正しいネットワーク設定が不可欠です。

【チェックリスト形式での確認】
IT管理者:「この順番で確認していけば、問題を特定できます」

□ 1. 物理接続
  - LANケーブル接続
  - リンクランプ点灯
  - 正しいVLAN

□ 2. IPアドレス設定
  - 固定 or DHCP
  - 同一サブネット内
  - 重複なし

□ 3. DNS設定
  - プライマリDNS = DC
  - セカンダリDNS = 別DC(あれば)
  - DNSサフィックス設定

□ 4. 疎通確認
  - DC へping
  - ポート確認
  - 名前解決確認

VLANをまたぐ場合の注意点を見てみましょう。

【VLAN環境での考慮事項】
構成例:
- VLAN 10: サーバーセグメント(192.168.10.0/24)
  - DC: 192.168.10.10
- VLAN 20: クライアントセグメント(192.168.20.0/24)
  - Client: 192.168.20.100

必要な設定:
1. ルーティング
   - VLAN間ルーティング有効
   - 各VLANのデフォルトゲートウェイ設定

2. ファイアウォール
   - VLAN間で必要なポート許可
   - 特に135, 445, 389等

3. DNS設定
   - クライアントのDNS: 192.168.10.10
   - DNSがVLAN越えで到達可能

確認コマンド:
tracert 192.168.10.10
→ 経路確認

プロキシ設定の影響を見てみましょう。

【プロキシが邪魔をするケース】
症状:ブラウザは使えるが、ドメイン参加できない

原因:システムプロキシの設定

確認:
netsh winhttp show proxy

現在の WinHTTP プロキシ設定:
    プロキシサーバー: proxy:8080
    バイパス一覧: (なし)

問題:DCへの通信もプロキシ経由しようとする

解決策:
netsh winhttp set proxy proxy:8080 bypass-list="*.jp.qualiteg.com;192.168.*"

または完全リセット:
netsh winhttp reset proxy

IPv6の影響を見てみましょう。

【IPv6関連の問題】
症状:名前解決が遅い、不安定

確認:
ipconfig /all
IPv6アドレス: 2001:db8::1234(有効)
IPv4アドレス: 192.168.1.100

問題:IPv6が優先されるが、DCはIPv4のみ

解決策1:IPv6を無効化(一時的)
ネットワークアダプター → プロパティ
□ インターネットプロトコルバージョン6(チェックを外す)

解決策2:IPv4を優先(推奨)
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 46 4
→ IPv4を優先するポリシー

これらの確認ポイントを順に確認することで、ほとんどのドメイン参加問題を解決できます。重要なのは、あわてずに一つずつ確認していくことです。

次回予告

次回は「第7章 セキュリティとベストプラクティス - 本番環境での考慮事項」

灰、上記タイトルのとおり次回は、「動く」環境を「安全に動く」環境にするための話です。

システムが正常に動作することと、安全に運用されることは別の問題です。認証基盤を本番環境に展開するからこそ、セキュリティの考慮が欠かせません。「Basic認証のパスワードは実はネットワーク上で丸見えになっている」「Domain Adminsに50人も登録されている」「退職者のアカウントがそのまま残っている」——こうした問題は、気づいた時には手遅れになっていることもあります。

次回は、Basic認証が抱える根本的なリスク、パスワード管理・管理者権限の最小化といったベストプラクティス、そして監視・ログ・定期監査の具体的な実装方法まで、本番運用を見据えたセキュリティの全体像をお届けします。

それでは、第7回でお会いしましょう!

Read more

Windows版 Claude Code を irm でインストールして「claude is not recognized」を直すまで

Windows版 Claude Code を irm でインストールして「claude is not recognized」を直すまで

こんにちは! 公式PowerShellインストーラー(irm https://claude.ai/install.ps1 | iex)で Claude Code を入れたのに、claude --version を叩くと「The term 'claude' is not recognized as a name of a cmdlet...」と怒られるときがあります これは Anthropic 公式 GitHub にも報告されている 既知のバグで、インストーラーが PATH の追加を忘れています。実際にインストール作業をやって詰まったので、最短の解決手順をまとめます。 環境 * Windows 11 * PowerShell 7.x(コードは PowerShell

By Qualiteg プロダクト開発部
Claude Opus 4.7 完全ガイド — 公式情報で読み解くモデル仕様とClaude Codeでの実践ノウハウ

Claude Opus 4.7 完全ガイド — 公式情報で読み解くモデル仕様とClaude Codeでの実践ノウハウ

こんにちは! Qualitegプロダクト開発部です! 2026年4月に、AnthropicからClaude Opus 4.7がリリースされました。 今回のアップデートは、単にベンチマークが上がったという話ではありません。命令の解釈の仕方、応答長、ツール呼び出しの頻度、subagentの起動方針まで、モデルの振る舞いそのものが変わっています。 それに伴い、4.6までに作り込んだプロンプトや設定の一部は、外したり再評価したりする必要があります。本記事では、そうした移行時の落とし穴と、4.7時代に合わせた運用作法を、できるだけ実践的にまとめました。 この記事では、まずOpus 4.7で何が変わったのかを確認し、そのうえでClaude Code CLI版とClaude Code Web版でどう使いこなすべきかを見ていきます。 (通常のclaude.aiチャットUIは対象外です。) なお、けっこう長めの記事になっているので、 頭から通読していただく必要はありません。 下の目次から、気になるところや今すぐ困っているところだけ拾い読みしていただいて大丈夫です。 たとえば「とりあえず4.

By Qualiteg プロダクト開発部
サブスクリプションビジネスの完全ガイド【第3回】サブスクリプションビジネスの成長設計

サブスクリプションビジネスの完全ガイド【第3回】サブスクリプションビジネスの成長設計

こんにちは、Qualitegコンサルティングです! サブスクリプションビジネスの完全ガイド 第3回 をお届けいたします! 今回は、 PLG・SLG、ユニットエコノミクス、データ改善の実務ポイントについて解説していきたいとおもいます! この記事でわかること  ・PLG・SLG・ランドアンドエクスパンドの違いと使い分け  ・NRR、LTV/CAC、ペイバック期間など主要指標の実務的な読み方  ・バーンレートとランウェイから資金繰りリスクを把握する方法  ・ファネル分析・コホート分析・A/Bテストによる改善の進め方  ・AIプロダクト特有の原価構造とユニットエコノミクスの注意点 サブスクビジネス完全攻略 シリーズ一覧 第1回 『アープがさぁ...』『チャーンがさぁ...』にもう困らない サブスクビジネス完全攻略 第1回~『アープがさぁ...』『チャーンがさぁ...』にもう困らない完全ガイドなぜサブスクリプションモデルが世界を変えているのか、でもAI台頭でSaaSは終わってしまうの? こんにちは! Qualitegコンサルティングです! 新規事業戦略コンサルタントとして日々

By Qualiteg コンサルティング