私のプロジェクトでは、クライアントからWebサービスに接続し、次にWebサービスからSQLServerに接続するユーザーを呼び出します。WebサービスとSQLServerは別々のマシン上にあります。セキュリティ要件のため、SQLServerでは混合モードを使用できません。Windows認証のみを使用できます。
WebサービスとSQLServerの間で「ダブルホップ」の問題が発生しています。NTLM認証を使用しており、オーバーヘッドと学習曲線のためにKerberosを構成したくありません。また、WebサービスとSQLServerを同じマシン上に配置したくありません。
私が理解していることから、私たちのすべての要件により、このシナリオを解決することは不可能です。しかし、開発者はこの提案を思いつきました:
1)SSL暗号化を使用してクライアントからWebサービスにWindowsのユーザー名とパスワードを送信します
2)どういうわけか、Windowsのユーザー名とパスワードをSQLServerで認証できるセキュリティトークンに変換します
例えれば、SQL Serverに接続するときにC#コードでRUNASを実行しているように聞こえます。SQL Serverを介した場合のみ、Webサービスの認証は行われません。
私の質問:
1)提案された解決策は可能ですか?
2)もしそうなら、それはどのように行われますか?
3)それがどのように行われるかを理解するのに役立つWebリソースはありますか?