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 以外のサーバーによって認証されないチャネル バインドをサポートする Windows クライアントの場合:
- レジストリ エントリの値を 0x01 に設定します。 これにより、パッチが適用されていないアプリケーションの CBT トークンを出力しないように Kerberos が構成されます。
- 問題が解決しない場合は、レジストリ エントリの値を 0x03 に設定します。 これにより、Kerberos が CBT トークンを出力しなくなります。
注:
Sun Java には既知の問題があります。これは、イニシエーターによって指定されたチャネル バインドがアクセプタによって無視され、イニシエーターが RFC 4121 に従ってチャネル バインドを渡した場合でも成功を返す可能性があるというオプションに対応するために対処されています。 詳細については、「 acceptor で受信チャネル バインドが設定されていない場合は無視する」を参照してください。
Sun Java サイトから次の更新プログラムをインストールし、拡張保護を再度有効にすることをお勧めします: 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 および/またはそのサプライヤーは、明示、黙示、または法令に基づく表現、保証、またはタイトルの条件、非侵害、満足のいく条件または品質、商品性、特定の目的に対する適合性を含むがこれに限定されない、すべての表明、保証、および条件を、素材に関して否認し、除外します。