シナリオWindows認証のWeb APIの不正 - 複数のサーバ
私は同じ内部ネットワーク内の別々のサーバ上で実行されている2つのアプリケーションを、持っています。
サーバー1にはWebAPI MVCプロジェクトが含まれています。
サーバ2は、両方のアプリケーションがWindows認証を使用して動作1.
サーバー上のAPIを呼び出すMVC Webアプリケーションが含まれています。
コードは、IISとVisual Studioの両方を介してローカルで実行しているときに問題なく動作します。
サーバー上で動作しているとき、私は次のエラーを取得:以下
The remote server returned an error: (401) Unauthorized.
はフィドラーからの要求です。以下は
GET http://server1/..../..../GetTest HTTP/1.1
Host: server 1
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Negotiate YIIHIgYGKwYBBQUCoIIHFjCCBxK.....
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: ASP.NET_SessionId=gffyzdgub41op0diygy5lyv2
API要求コードは、助けを
おかげです。
こんにちは、ありがとうございました。私はソリューション1と多少混同しています.WebAPIプロジェクトでApplicationPoolIdentityを変更する必要があるのはなぜですか? WebAPIが信頼するサービスアカウントの下で動作するMVC Webアプリケーションであってはなりませんか?また、私はloopbackcheckhttpsを無効にすることについてこのリンクを発見しました://blogs.technet.microsoft.com/sharepoint_foxhole/2010/06/21/disableloopbackcheck-lets-do-it-the-right-way/ - ループバックはdoublehopと同じですか?それを無効にする問題はありますか?ありがとうございます – SkelDave
ApplicationPoolIdentityはActive Directoryの観点から見たサービスアカウントではないので、外に出ると認証されないため、401が表示されます。 – bsoulier
私の意図したことは:MVCアプリケーションをActive Directoryアカウント、ApplicationPoolIdentityの下のAPI?または両方がサービスアカウントの下で実行されますか?ありがとう。 – SkelDave