特集

ノータッチ・デプロイメント

一色 政彦
2003/08/12


 通常、ノータッチ・デプロイメントは「インターネット・ゾーン(Internet_Zone)」または「イントラネット・ゾーン(LocalIntranet_Zone)」で行われるので、デフォルトのセキュリティ設定のままのクライアントでは、「低度の信頼(Internet)」または「中程度の信頼(Internet)」のセキュリティ制限下でプログラムが実行される。ここでは、インターネット・ゾーンのセキュリティによる機能制限の内容について詳しく見てみよう。インターネット・ゾーンのセキュリティ・ポリシーは次のとおりだ。

環境変数(EnvironmentPermission) 利用不可
「ファイルを開く」コモン・ダイアログ(FileDialogPermission) 開く(Open) ファイル・ダイアログを使用してファイルを開く機能が実行できる
ファイルI/O(FileIOPermission) 利用不可
分離されたストレージのファイル(IsolatedStorageFilePermission) ユーザーによるドメインの分離(DomainIsolationByUser) ストレージ・ファイルは、まずユーザーごとに分離され、次にドメインごとに分離、さらにアセンブリごとに分離される。同じアプリケーションのコンテキストで、同じユーザーが実行する場合にだけ分離されたストレージのファイルのデータにアクセスできる。ノータッチ・デプロイメントにおける唯一のプライベート・データの保存方法である
10240Bytesのディスク・クォータ(UserQuota) 各ユーザーが使用できる分離された記憶ファイルのサイズ
リフレクション(ReflectionPermission) 利用不可
レジストリ(RegistryPermission) 利用不可
DNS(DnsPermission) 利用不可
セキュリティ(SecurityPermission) コード実行を有効にする(Execution) コードを実行するためのアクセス許可。このアクセス許可がない場合、マネージ・コードは実行できない
ユーザー・インターフェイス(UIPermission) 安全なトップレベルウィンドウ(SafeTopLevelWindows) トップ・レベルのウィンドウとそのサブ・ウィンドウの描画とユーザー入力イベントを利用できる。プログラムがイベントを発生させることはできない。ウィンドウの最小サイズと最大サイズに制限があり、システム・デスクトップなどの偽装によるなりすまし攻撃を防ぐ
自身のクリップボード(OwnClipboard) 「切り取り」や「コピー」などのクリップボードにデータを格納できるが、プログラムでクリップボードからデータを読み出すことはできない。テキスト・ボックスなどの固有のコントロールは、ユーザーが実行する「貼り付け」でクリップボードのデータを受けることができる
印刷(PrintingPermission) 安全な印刷(SafePrinting) 制限された印刷ダイアログ・ボックスからの印刷ができる※現行の.NET Framework 1.1では、「安全な印刷」の機能は動作しない。よって、ノータッチ・デプロイメントでは印刷ができない
イベント・ログ(EventLogPermission) 利用不可
ソケット・アクセス(SocketPermission) 利用不可
Webアクセス(WebPermission) 利用不可
パフォーマンス・カウンタ(PerformanceCounterPermission) 利用不可
ディレクトリ・サービス(DirectoryServicesPermission) 利用不可
メッセージ・キュー(MessageQueuePermission) 利用不可
サービス・コントローラ(ServiceControllerPermission) 利用不可
OLE DB(OleDbPermission) 利用不可
SQLクライアント(SqlClientPermission) 利用不可
カスタム・コード・グループ NetCodeGroup アセンブリのダウンロード元のサイトへの Webアクセスを許可。これにより、同一サイトのWebサービスが利用可能になる
「Internet_Zone」で利用可能な機能

 これらのアクセス許可セットのポリシーはコード・グループのプロパティで確認することができる。次の図はそのプロパティの画面だ。


コード・グループ「Internet_Zone」のプロパティ参照
  [.NET Configuration 1.1]−[マイ コンピュータ]−[ランタイム セキュリティ ポリシー]−[コンピュータ(Machine)]−[コード グループ]−[AllCode]−[Internet_Zone]を選択する。
  [コード グループ プロパティの編集]をクリックする。
  コード・グループ「Internet_Zone」のプロパティが表示される。
  [アクセス許可セット]タブをクリックすると、アクセス許可セットの一覧が表示される。
  参照したいアクセス許可を選んで[アクセス許可の表示]ボタンをクリックすると、さらに詳しいセキュリティ制限の内容を確認できる。

 なお、これらのゾーンごとのセキュリティ・ポリシーはXMLファイルに保存されている。XMLファイルのある場所は次の通りだ。

%runtime install path%\Config\Security.config
マシン・ポリーシーのファイル・パス
%runtime install path%は、Microsoft .NET Framework 1.1がインストールされたパス。通常は「C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322」になる。

 ノータッチ・デプロイメントでは、実行するコードに、このようなコード・アクセス・セキュリティによる制限がかかる。よって、ノータッチ・デプロイメント用のアプリケーションを実装するには、コード・アクセス・セキュリティを意識したプログラミングが必要になる。次にそのプログラミングの方法について解説しよう。

 
 INDEX
  [特集]ノータッチ・デプロイメント
     1.ノータッチ・デプロイメントとは何か
     2. .NETアセンブリのコード・アクセス・セキュリティ
   3.インターネット・ゾーンのセキュリティ・ポリシー
     4.ノータッチ・デプロイメントのプログラミング(1)
     5.ノータッチ・デプロイメントのプログラミング(2)
     6.ノータッチ・デプロイメントのコンテスト開催!
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間