ASP.NET Web アプリケーションのホスティング - 実践偏 -

Download Report

Transcript ASP.NET Web アプリケーションのホスティング - 実践偏 -

ASP.NET Web アプリ
ケーションのホスティング
- 実践偏 マイクロソフト株式会社
システムエンジニアリング本部
テクノロジー スペシャリスト
望月 淳
アジェンダ
•
•
•
•
•
ASP.NET ホスティングの概要
サーバーのインストール、基本構成
ASP.NET 構成ファイルの設定
アプリケーションの配置
関連情報
ASP.NET ホスティングの概要
• IIS 6.0 による Web ホスティング基盤で実行される
ASP.NET Web アプリケーションと環境
– 高いパフォーマンス
– 従来の共有型サービスにない信頼性、可用性、セキュリティ
• アプリケーションの構成要素
– ASP.NET 1.1 (.NET Framework 1.1)
– データベース連携
– お客様のアプリケーション、事業者のアプリケーション
• アプリケーションのロケーション
– 仮想ホスト、仮想ディレクトリ、サブディレクトリ
– IIS 6.0 アプリケーションプール
インストールと基本構成
アプリケーションサーバーとしての役割を設定
• モジュール化されたインストール
– サーバーの構成ウィザード
– アプリケーションの追加と削除
• IIS にアプリケーション サポートを追加
–
「Web サービス拡張」より「ASP.NET」を許可
アプリケーションの分離
• アプリケーションプールの構成
– 個別のセキュリティ アカウント
– IIS_WPG グループ
• プロセスリサイクルの構成
– 定期的
• 一定間隔、スケジュール指定、
リクエスト総数
– メモリリークの防止
• 最大仮想メモリ、最大使用メモリ
ASP.NET スタート キット(ご参考)
• ASP.NET のサンプル Web アプリケーション
• 効率的な学習や開発に活用できる素材
タイム トラッカー Starter Kit
プロジェクトに費やされた時間を管理するための業務向け
ASP.NET アプリケーションの構築方法のデモ
レポート Starter Kit
データに関する複数のビューの表示、チャートの作成、
データのレンダリングのための容易なデータ報告ソリューションのデモ
コマース Starter Kit
ショッピング カート、製品カタログ、そして注文を送信するための
Web サービスすべてを含む電子商取引店舗アプリケーションのデモ
ポータル Starter Kit
ASP.NET と .NET Framework を使用したポータル アプリケーション
の構築方法のデモ
http://www.microsoft.com/japan/msdn/asp.net/starterkit/
ASP.NET の設定ファイル
ASP.NET の設定ファイルの基本
• XML ベースのテキスト ファイルで格納
• 対象設定ファイル
– machine.config(コンピュータ全体)
– web.config(アプリケーションまたはサブディレクトリ)
• 階層による構成の組み合わせ
ルートの構成
サイトの構成で上書き(もしあれば)
C:\Windows\Microsoft.NET\Framework
\v1.1.4322\CONFIG\machine.config
C:\inetpub\wwwroot\web.config
アプリケーションの構成で上書き
C:\inetpub\wwwroot\location\parent
\web.config
サブディレクトリの構成で上書き
C:\inetpub\wwwroot\location\parent
\child\web.config
構成設定のロック
<location> 要素 :
• 特定のアプリケーション ファイルに構成設定を適用
• 固有の設定を Machine.config から適用して集中管理
• 構成設定をロックしてアプリーション レベルでの上書きを禁止
Machine.config ファイル
<location allowOverride="false">
<System.Web>
<trust level="Medium"/>
</System.Web>
</location>
例. コンピュータ上のすべての ASP.NET アプリケーション
の信頼レベルを Medium に設定
構成デイレクティブの設定
<trust>
アプリケーションの信頼レベルを構成
<securityPolicy>
ポリシー ファイルに対するセキュリティ レベルのマップを定義
<httpRuntime>
パイプラインの制御
<customErrors>
例外が発生した際のカスタムエラーページへの差し替えを指定
<trace>
ASP.NET トレース サービスを設定
<compilation>
コンパイル プロセスを制御
<sessionState>
セッション情報の保存場所に関する設定
<codeBase>
共通言語ランタイムがアセンブリを検索できる場所を指定
<defaultProxy>
インターネットへの HTTP 要求のためのプロキシ サーバーを指定
<machineKey>
暗号化キー、検証キー、または、フォーム認証 Cookie やページレベル
のビュー ステートの保護に使用されるアルゴリズムを指定
参考資料 : ASP.NET セキュリティ チェックリスト
http://www.microsoft.com/japan/msdn/security/guidance/secmod98.mspx
参考資料 : ASP.NET アプリケーションのセキュリティ保護
http://www.microsoft.com/japan/msdn/security/guidance/secmod92.mspx
参考資料 : ASP.NET 設定スキーマ
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/gngrfaspnetconfigurationsectionschema.asp
httpRuntime の設定
<httpRuntime> 要素 :
• HTTP 要求の調整/制御を実行
– 要求の長さ
– キューの制限
– 要求のタイムアウト
• 宣言レベル
–
–
–
–
コンピュータ
サイト
アプリケーション
サブディレクトリ
httpRuntime の設定
<httpRuntime> 属性
appRequestQueueLimit
ASP.NET がアプリケーションのためにキューに置く要求の最大数
executionTimeout
ASP.NET によって自動的にシャットダウンされるまでに要求を実行
できる最大秒数
maxRequestLength
ASP.NET でサポートされる最大ファイル アップロード サイズ
minFreeLocalRequestFreeThreads
新しいローカル要求の実行のために ASP.NET が準備している空き
スレッドの最小数
minFreeThreads
新しい要求を実行できるようにするフリー スレッドの最小数
useFullyQualifiedRedirectUrl
クライアント側のリダイレクト形式
version Header
SP.NET が要求ごとに送信するバージョン ヘッダーの値
<httpRuntime
useFullyQualifiedRedirectUrl="true|false"
maxRequestLength="size in kbytes"
executionTimeout="seconds"
minFreeThreads="number of threads“
minFreeLocalRequestFreeThreads="number of threads"
appRequestQueueLimit="number of requests"
versionHeader="version string"/>
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/gngrfhttpruntimesection.asp
アプリケーションの信頼レベル
•
コードアクセス セキュリティ
–
–
•
各Web アプリケーション(ディレクトリ間)を分離
システム リソースからアプリケーションを分離(サーバーの保護)
典型的なパターンを信頼レベルとしてビルトイン
<!-- level="[Full|High|Medium|Low|Minimal]" -->
<trust level="Medium" originUrl=""/>
•
任意のアクセス許可セットを使用したカスタムポリシー
<securityPolicy>
<trustLevel name="Full" policyFile="internal"/>
<trustLevel name="High" policyFile="web_hightrust.config"/>
<trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
<trustLevel name="Low" policyFile="web_lowtrust.config"/>
<trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
</securityPolicy>
参考資料 : ASP.NET でコード アクセス セキュリティを使用する
http://www.microsoft.com/japan/msdn/security/guidance/secmod82.mspx
認証モードの設定
• フォーム認証
– 認証されなかった要求をログオン ページにリダイレクト
• Windows 認証
– Windows 認証を IIS 認証と組み合わせて使用します
– 基本認証、ダイジェスト認証、統合 Windows 認証
• Microsoft Passport 認証
web.config ファイル
<authentication mode= "[Windows|Forms|Passport|None]"/>
フォーム認証
• フォーム認証の構成
– loginUrl - 認証されていないユーザーのリダイレクトページ
– name - 認証 Cookie の名前
– machineKey - フォーム認証 Cookie データの暗号化と暗号化
解除に使用
<authentication mode="Forms">
<forms loginUrl="Restricted\login.aspx"
protection="All"
requireSSL="true"
timeout="10"
name="AppNameCookie"
path="/FormsAuth"
slidingExpiration="true" >
</forms>
</authentication>
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconsimplecookieauthentication.asp
Web ファームでの考慮事項
ファームで構成を統一
• <machineKey> 構成
– 明示的に同じ構成にする(“autogenerate” 値は Web ファーム
には使用しない)
• machine.config セキュリティ ポリシー
– <trust> セクションやアプリケーションへのポリシーを統一
– machine.config ファイル全体をレプリケートを推奨
• コード アクセス セキュリティ ポリシー
– アプリケーションの実行サーバーに一貫したポリシーの適用
アプリケーションの配置
• アプリケーションの配置
– FTP
– FrontPage Server Extensions 2002
• 継続稼動のサポート
– ページリコンパイル機能
– アプリケーションリスタート機能
http://www.microsoft.com/japan/msdn/asp.net/webmatrix/
FPSE 2002 のセキュリティ構成
• サイトの FPSE 有効化
• ローカルグループアカウントの作成を防止 (Active
Directoryの場合のみ)
• Interactive および Network のアクセス許可の削除
• 実行可能ファイルのアップロードの防止
• 匿名の書き込みアクセス許可の防止
参考情報 : Windows Server 2003 への FrontPage Server Extensions 2002 の展開
http://www.microsoft.com/japan/serviceproviders/resource/deployment/fpse2002onIIS6_deployment.asp
ホスティング向け ガイド
Web ホスティングサービスの計画と展開に役立つノウハウを集約
日本語版のドキュメントを近日リリース!
• Shared Web Hosting Deployment Guide
– 共有型サービスを展開するための情報とガイダンス
– 小~中規模向け
• Microsoft Solution for Windows-based Hosting 2.0 (WH2.0)
– 運用軽減、高度な管理を実現するためのガイドとツールのセット
• プランニング&デプロイメントガイド、プロビジョニング製品…
– 中~大規模向け
– http://www.microsoft.com/japan/serviceproviders/solutions/wh20/
ガイド 章立て(ご参考)
Shared Web Hosting Deployment Guide
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Windows Server 2003
集中管理
IIS 6.0
ASP.NET
FPSE
FTP
SSL
データ ホスティング
メール ホスティング
ホスティングサービスの拡張
ローカル管理
プロビジョニング
追加のトピック
運用と管理
ガイド 章立て(ご参考)
Microsoft Solution for Windows-based Hosting 2.0
第一巻 ソリューション
第三巻 リファレンスアーキテクチャ
• 第一章 概要
• 第二章 サーバービルド
• 第三章 ネットワーク
• 第四章 集中管理
第二巻 テクノロジー
• 第五章 ソフトウェア配布
• 第一章 サーバービルド
• 第六章 サービスプロビジョニング
• 第二章 集中管理
• 第七章 監視とレポーティング
• 第三章 ソフトウェア配布
• 第八章 Web ホスティング
• 第四章 サービスプロビジョニング • 第九章 データ ホスティング
• 第十章 オペレーション
• 第五章 監視とレポーティング
• 第六章 Web ホスティング
第四巻 オペレーション
• 第一章 オペレーション
• 第七章 データ ホスティング
• 第一章 ソリューション概要
• 第二章 ネットワーク計画
ホスティング 事例(ご参考)
ホスティング 事例(ご参考)
• Hostbasket
月額10 ユーロ: Web (20MB)とSQL DB(10MB)の共有型サービス
– http://www.microsoft.com/japan/serviceproviders/ServiceDirectory/
hostbasket.asp
• NTT/Verio
Web デベロッパー向け次世代サービスを展開
– http://www.microsoft.com/japan/serviceproviders/ServiceDirectory/
verio_aspnet.asp
• InDIMENSIONS
サイトの構築を 300 パーセント加速
– http://www.microsoft.com/japan/serviceproviders/ServiceDirectory/i
ndimensions.asp
• ASP.NET ホスティング サービス情報
– http://www.microsoft.com/japan/msdn/asp.net/hosting/
• 導入事例集
– http://www.microsoft.com/japan/serviceproviders/ServiceDirectory/
まとめ
ASP.NET Web アプリケーションのホスティング
• セキュアなインストール、アプリケーションの展開を実現
• 従来の共有型サービスにない信頼性、可用性を提供
• ノウハウを集約したホスティングサービス向けガイドの活用
お問い合わせ:[email protected]
関連情報
• Microsoft サービス プロバイダ サイト
– http://www.microsoft.com/japan/serviceproviders
• Microsoft サービス プロバイダ ニュースレター
– http://www.microsoft.com/japan/serviceproviders/nl/subscribe.asp
• Windows Hosting Community (英語)
– http://www.microsoft.com/serviceproviders/hostingcommunity/
参考資料
• ASP.NET ホスティングにおけるセキュリティの考慮
(ホワイトペーパー)
– http://www.microsoft.com/japan/serviceproviders/resource/whitepa
pers/ASPNETHostingSecurity.asp
• 複数の Web アプリケーションのホスティング
(ホワイトペーパー)
– http://www.microsoft.com/japan/serviceproviders/resource/whitepa
pers/HostingMultipleWebApp.asp
– http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpcon
introductiontocodeaccesssecurity.asp
• NET 運用ガイド
– http://www.microsoft.com/japan/technet/itsolutions/net/maintain/net
opsgd.mspx
• 開発者向けセキュリティ ガイダンス
– http://www.microsoft.com/japan/msdn/security/guidance/
参考資料
• MSDN ライブラリ
– http://www.microsoft.com/japan/msdn/library/
• ASP.NET デベロッパー センター
– http://www.microsoft.com/japan/msdn/asp.net/
• 「300 秒でズバリ!!」 & 「10 行でズバリ!!」シリーズ
– http://www.microsoft.com/japan/msdn/thisweek/Wednesday/
• プログラミング☆簡単レシピ
– http://www.microsoft.com/japan/users/recipe
開発者コミュニティ
• GotDotNet Japan
– http://www.gotdotnet.com/japan/
• INETA Japan
– International .NET Association の日本組織
– http://www.ineta.jp/
• @IT Insider.NET フォーラム
– アットマーク・アイティ様によるコミュニティ サイト
– http://www.atmarkit.co.jp/fdotnet/
• ASP.NET Web (英語)
– http://www.asp.net/
© 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.