(これが間違ったフォーラムに投稿された場合はご容赦ください。どこに投稿するか正確にはわかりませんでした。)
ASP.NET WebAPIシングルページアプリケーションがあります-IISで実行されているブラウザーベースのアプリは、ASP.NET WebAPIエンドポイントとのみ通信するHTML5/CSS3/JavaScriptを提供しますデータベースにアクセスしてJSONデータを転送します。開発環境ではすべてがうまく機能しています。つまり、ASP.NET WebAPIプロジェクトを備えた1つのVisualStudioソリューションと、データアクセス用の2つのクラスライブラリプロジェクトがあります。開発ボックスでの開発とテスト中、IIS Express to localhost:portを使用してサイトを実行し、Web APIにアクセスすると、すべて問題ありません。
次に、それを本番環境に移動する必要があります(そして、問題が発生している、または何をする必要があるのか理解していないだけです)。
実稼働環境はすべて内部にあります(パブリックインターネットには何も公開されません)。 2つのドメインがあります。 1つのドメインである企業ドメインは、すべてのユーザーが通常どおりログインする場所です。もう1つのドメインであるプロセスドメインには、アプリとWebAPIがアクセスする必要のあるSQLServerインスタンスが含まれています。
ITスタッフは、2つのドメインの間にDMZを配置して、IISアプリを格納し、企業ドメインのユーザーがプロセスドメインにアクセスできないように保護したいと考えています。だから、彼らが望んでいるのは:
corpドメイン(エンドユーザー)<–>ファイアウォール(ポート80を開く)<–> DMZ(IISを実行しているWebサーバー)<–>ファイアウォール(ポート80または1433を開く????)< –>プロセスドメイン(WebAPIおよびSQLServerのIIS)
私たちは開発者であり、ネットワークのすべての側面を実際に理解しているわけではないため、このシナリオでブラウザ/ WebAPIアプリケーションをデプロイする方法を考えています。
他にも質問があると思いますが、まずはこれらから始めましょう。ありがとう!!!
(注:サーバーはWin2k8 R2、SQL Server 2k8 R2、およびIIS 7.5)です。)
あなたのITグループがこれを打ち破ろうとしていることは理解できますが、彼らもこの設定がどのように機能するかを完全には理解していないようです。あまり詳しくは説明しませんが、基本的にprocess
ドメインまでのサーバーと交換するトラフィックは標準のHTTPトラフィックのみです(REST呼び出し)
基本的に、次のようになります。
Initial Request
SPA Web Server ---> Client (Running SPA)
|
| - REST Call
Firewall -> | - Port 80 Only
Web API Server
|
| - SQL (1433) .NET Connection/Data Source
Firewall -> | - Port 1433 / 1434
Backend SQL Servers
SPAを使用する場合、クライアントがSPA Webサーバーと通信するのは、HTML、JS、およびCSSを取得するための最初の要求のみであることに注意してください。その後(作成方法によって異なります)、WebAPIサーバーに対してREST呼び出しを直接発行する必要があります。
Web APIサーバーは、そこからデータベースに直接SQLクエリを発行します。
したがって、その長短は次のとおりです。
TL; DR:HTTPとHTTPSのいずれかまたは両方を許可するには、クライアントと2つのIISインスタンス(同じサーバーでもかまいません))の間にファイアウォールが必要です。次に、そのWebサーバーの別のインターフェイスで、プロセスドメインに接続し、SQLトラフィックのみの受信を許可します(1433および1434)。
お役に立てば幸いです。