私のWebアプリケーションには次の設定があります..
- IIS7 でホストされる WCF アプリケーション
- 基本的な HTTP バインディング - SecurityMode = TransportCredentialOnly および ClientCredentialType = Windows。
- .Net 4.0
- アプリは、「ApplicationPoolIdentity」を使用して .Net 4.0 アプリケーション プールで実行されます。
- IIS は、「アプリケーション パス スルー」認証を使用してファイル システムに接続します。
- クライアントとサービスは両方とも IIS で実行されます。つまり、クライアントは Webste であり、サービスは IIS がホストする WCF サービスです。
私が理解したいのは、認証とサービスの使用のさまざまな時点でどのユーザー アカウントが使用されるかということです。
ApplicationPoolIdentity は、作成されたアプリケーション プールごとに生成される組み込みの Windows アカウントであることを理解しています。これは、Web サイトに対して w3wp.exe を実行するアカウントですか?
クライアントとサーバーの間で資格情報が指定されていません。これが最も興味深い点です。クライアントが WCF アプリケーションに接続するときに、サービスへの認証に使用される ID。クライアント Web サイトをホストしているアプリケーション プールのアプリケーション プール ID を推測しますか?
もしそうなら、2 つのサイトが 2 つの異なるアプリケーション プールを使用するとどうなるでしょうか?
それとも、サービスはマシン (またはドメイン) 上の有効なアカウントを必要とするだけで、それは認証に十分なものですか?
特定のユーザー アカウントを使用するようにアプリケーション プールを変更した場合、何か変更はありますか? 繰り返しますが、クライアントが有効なマシン アカウントを渡す限り、それでよろしいでしょうか?
また、、、
ファイル システムに使用される ID は何ですか?
"ApplicationPoolIdentity" がマシン上およびファイル システムに対して持つアクセス許可。
最後に、SQL Server 統合セキュリティの場合、サービスが SQL Server データベースと通信する場合、どの ID が SQL Server に渡されますか。
前もって感謝します。