3

HttpWebRequest を使用して、ユーザーに代わってネットワーク内の別のバックエンド サービスに接続する内部 Web サイトをセットアップしようとしています。バックエンド システムはこのタイプの認証のみをサポートするため、ASP.NET アプリケーションでは統合 Windows 認証を使用する必要があります。

ASP.NET アプリケーションで IWA をセットアップでき、期待どおりに kerberos を使用しています。ただし、認証がバックエンド システムに委任されると、機能しなくなります。これは、バックエンド システムが kerberos IWA のみをサポートしているにもかかわらず、委任が何らかの理由で (着信要求が kerberos 認証されている場合でも)、バックエンド システムに転送する前に認証を NTLM に変換するためです。

kerberos を使用して ID を転送できるようにするために、ASP.NET アプリケーションで何をする必要があるか知っている人はいますか?

次のことを試しましたが、うまくいかないようです

CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(request.RequestUri, "Negotiate", CredentialCache.DefaultCredentials.GetCredential(request.RequestUri, "Kerberos"));
request.Credentials = credentialCache;

また、現在「ネゴシエート」と表示されている場所に「ケルベロス」を設定しようとしましたが、あまり効果がないようです。

4

1 に答える 1

1

アプリケーションでは、DefaultCredentials のみを使用する必要があります。

request.UseDefaultCredentials = true;

ただし、Active Directory で行う作業がいくつかあります。

  • フロント エンド アプリケーションのアプリケーション プール アカウントに SPN を設定する
  • バックエンド アプリケーションのアプリケーション プール アカウントに SPN を設定する
  • 最初のアプリケーション プールから 2 番目の SPN への委任を設定する
于 2010-08-17T20:22:59.670 に答える