web-dev-qa-db-ja.com

ドメインからSPNEGO / Kerberosを介して接続する

同じドメインのアカウントを使用して、ドメイン[〜#〜] a [〜#〜]のSPNEGO/Kerberosサーバーに認証することは可能ですか(明らかに)クライアントが次の(非常によく似た)状況のいずれかでコンピューターから接続している場合:

  • クライアントはドメインに対して認証されています[〜#〜] b [〜#〜](異なるアカウント、ドメイン間の信頼なし)または
  • ユーザーのコンピューターは現在ドメインに対して認証されていません[〜#〜] a [〜#〜](ローカルログイン(VPN経由でイントラネットにアクセスする場合など)

External SPNEGO/Kerberos authentication


もちろん、これらのケースはどちらも統合認証につながりません(プライマリコンピューター認証はKerberosで使用する必要があるものとは異なるため)。しかし、Internet Explorer(またはFirefox)で資格情報を要求してKerberosを使用することは可能ですか?

Kerberosを使用する場合、KDCへの接続が必要です(私の知る限り)。 Windowsまたはブラウザーは、サーバーのSPNのKDCを見つけることができますか?

7
Pavel Horal

厳密に言えば、どちらの状況もKerberosの信頼のセマンティクスに違反しているため、可能ではありません。定義により、最初のシナリオではドメインBへのTGTがあり、ドメインAはそれを信頼していません。 2つ目のシナリオも同様ですが、TGTがローカルのみであるため、TGTさえない場合もあります。 (私の声明は、認証としてのKerberosチケットの使用について話していることを想定しており、プレーンテキストの資格情報をサーバーに渡して検証のためにKDCに提示する状況ではありません)。

どちらの場合も、クライアントアプリケーションには、HTTPサービスがKDCで検証するためにドメインAで有効なTGTまたはサービスチケットがありません。

とはいえ、2番目のケースでこれを行う方法はありますが、最初ではなくても、ドメインAにログインできることを前提としています。これは、ドメインAのネットワークアカウントで認証されるRunAsを使用してクライアントアプリ(Firefox、IEなど)を実行することで実行されます。runascmdの/ netonlyフラグを参照してください( https://technet.Microsoft.com /en-us/library/cc771525.aspx )。これは、別のログインコンテキストを確立することによって機能し、そのコンテキストとしてアプリケーションを実行します。 Windowsは、Kerberos関連の呼び出しを行うときに、アプリケーションのユーザーコンテキストを使用してAPIを初期化するため、ドメインAへのTGTを使用してセッションを実行します。

2
Jeff Stice-Hall