Windows 以外の NTLM または Kerberos サーバーからの認証エラー
この記事では、NTLM サーバーと Kerberos サーバーで Windows 7 および Windows Server 2008 R2 ベースのコンピューターを認証できない、いくつかの認証エラーの問題の解決策について説明します。 これは、チャネル バインド トークンがハンドルである方法の違いが原因で発生します。
元の KB 番号: 976918
現象
Windows 7 および Windows Server 2008 R2 では、既定でチャネル バインド トークン (CBT) のサポートを含む統合認証の拡張保護がサポートされています。
次の 1 つ以上の症状が発生する可能性があります。
- チャネル バインドをサポートする Windows クライアントは、Windows Kerberos 以外のサーバーによって認証されません。
- プロキシ サーバーからの NTLM 認証エラー。
- Windows 以外の NTLM サーバーからの NTLM 認証エラー。
- クライアントと DC またはワークグループ サーバーの間に時間差がある場合、NTLM 認証エラーが発生します。
原因
Windows 7 および Windows Server 2008 R2 では、統合認証の拡張保護がサポートされています。 この機能により、統合 Windows 認証 (IWA) を使用してネットワーク接続を認証するときの資格情報の保護と処理が強化されます。
既定では、これは ON です。 クライアントがサーバーへの接続を試みると、認証要求は使用されるサービス プリンシパル名 (SPN) にバインドされます。 また、トランスポート層セキュリティ (TLS) チャネル内で認証が行われると、そのチャネルにバインドできます。 NTLM と Kerberos は、この機能をサポートするためにメッセージに追加情報を提供します。
また、Windows 7 および Windows 2008 R2 コンピューターでは LMv2 が無効になります。
解決方法
CBT の受信時に Windows NTLM または Kerberos 以外のサーバーが失敗するエラーについては、CBT を正しく処理するバージョンをベンダーに確認してください。
Windows 以外の NTLM サーバーまたはプロキシ サーバーで LMv2 が必要なエラーについては、NTLMv2 をサポートするバージョンをベンダーに確認してください。
回避策
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリのバックアップと復元方法の詳細は、「Windows のレジストリのバックアップおよび復元の方法」を参照してください。
拡張保護の動作を制御するには、次のレジストリ サブキーを作成します。
- キー名:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA
- 値の名前: SuppressExtendedProtection
- 型: DWORD
CBT を正しく処理しない Windows 以外の Kerberos サーバーによって認証されないチャネル バインドをサポートする Windows クライアントの場合:
- レジストリ エントリの値を 0x01 に設定します。 これにより、修正プログラムが適用されていないアプリケーションの CBT トークンを出力しないように Kerberos が構成されます。
- それでも問題が解決しない場合は、レジストリ エントリの値を 0x03 に設定します。 これにより、Kerberos が CBT トークンを出力することが決して構成されません。
Note
Sun Java には既知の問題があります。これは、イニシエーターが提供するチャネル バインディングをアクセプターが無視し、イニシエーターが RFC 4121 に従ってチャネル バインドを渡した場合でも成功を返すというオプションに対応するために対処されています。 詳細については、「 受け入れ側チャネル バインドが設定されていない場合を確認する」を参照してください。
Sun Java サイトから次の更新プログラムをインストールし、拡張保護を再度有効にすることをお勧めします。 Changes in 1.6.0_19 (6u19)。
CBT を正しく処理しない Windows 以外の NTLM サーバーによって認証されないチャネル バインドをサポートする Windows クライアントの場合は、レジストリ エントリの値を 0x01 に設定します。 これにより、修正プログラムが適用されていないアプリケーションの CBT トークンを出力しないように NTLM が構成されます。
LMv2 を必要とする Windows 以外の NTLM サーバーまたはプロキシ サーバーの場合は、レジストリ エントリの値を 0x01 に設定します。 これにより、LMv2 応答を提供するように NTLM が構成されます。
時間差が大きすぎるシナリオの場合:
- ドメイン コントローラーまたはワークグループ サーバーの時刻を反映するようにクライアントのクロックを修正します。
- それでも問題が解決しない場合は、レジストリ エントリの値を 0x01 に設定します。 これにより、時間のずれの影響を受けないように、NTLM が LMv2 応答を提供するように構成されます。
CBT (チャネル バインド トークン) とは
チャネル バインド トークン (CBT) は、認証の拡張保護の一部です。 CBT は、外部 TLS セキュア チャネルを Kerberos や NTLM などの内部チャネル認証にバインドするメカニズムです。
CBT は、認証をチャネルにバインドするために使用される外部セキュア チャネルのプロパティです。
拡張保護は、SPN と CBT を改ざん防止の方法でサーバーに通信するクライアントによって実現されます。 サーバーは、ポリシーに従って拡張保護情報を検証し、それ自体が意図したターゲットであるとは思わない認証の試行を拒否します。 これにより、2 つのチャンネルが暗号でバインドされます。
Windows XP、Windows Vista、Windows Server 2003、および Windows Server 2008 で拡張保護がサポートされるようになりました。
免責情報
迅速な発行に関する記事では、Microsoft サポート組織内から直接情報を提供します。 本明細書に含まれる情報は、新たなまたはユニークなトピックに応答して作成されるか、または他のサポート情報情報を補足することを意図している。
Microsoft および/またはそのサプライヤーは、この Web サイトに掲載されているドキュメントおよび関連するグラフィックス ("素材") に含まれる情報の適合性、信頼性、正確性について、いかなる目的でも表明または保証しません。 資料には技術的な不正確さまたは誤字が含まれる場合があり、予告なしにいつでも改訂される可能性があります。
適用される法律によって許容される最大限の範囲で、Microsoft および/またはそのサプライヤーは、明示、黙示、または法定にかかわらず、すべての表明、保証、条件を否認し、除外します。これには、タイトルの表現、保証、条件、非侵害、満足のいく条件または品質、商品性および特定の目的への適合性が含まれますが、これらに限定されません。