特集

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

一色 政彦
2003/08/12


コード・アクセス・セキュリティの概要

 ノータッチ・デプロイメントのセキュリティ制限は、アセンブリのダウンロード元のURLが、インターネットやイントラネット、マイ・コンピュータなどのうちの、どの「ゾーン(Zone)」に所属するかによって決まる。コード・アクセス・セキュリティは、このゾーンの情報を.NETアセンブリの出所に関するエビデンス(証拠)として使用して、実行するコードに対するセキュリティ制限の内容を決定しているのである。.NETアセンブリのコード・アクセス・セキュリティについて詳しく知りたい読者諸氏は、吉松 史彰氏が書いた「インサイド .NET Framework:コード・アクセス・セキュリティ」を参照してほしい。

 コード・アクセス・セキュリティが使用するゾーンの分類は、Internet Explorerのセキュリティ構成で使用するゾーンの分類と同じものである(下図参照)。

Internet Explorerのセキュリティ構成
Internet Explorerのメニューバーから[ツール]−[インターネット オプション]を実行して「インターネット オプション」ダイアログを起動し、そのダイアログ内の[セキュリティ]タブを開く。

 通常のWebアプリケーションはインターネットまたはイントラネットのゾーンに含まれる。例えば本稿のページ「http://www.atmarkit.co.jp/fdotnet/special/ntdeploy/ntdeploy_01.html」でいえば、URLが「www.atmarkit.co.jp」で、ゾーン・エビデンスが「インターネット・ゾーン」になる。なお、URLが「localhost」の場合は「イントラネット・ゾーン」になる。

 ゾーンごとのセキュリティ制限は「Microsoft .NET Framework 1.1 構成(mscorcfg.msc)」ツールの「ゾーン セキュリティ変更ウィザード」で確認および変更できる(下図参照)。先ほど述べたInternet Explorerのセキュリティ構成では、確認、変更できないので注意が必要である。ただし逆に、信頼済みサイト・ゾーンや制限付きサイト・ゾーンへのサイトの登録は、Internet Explorerのセキュリティ構成からでないとできない。

「Microsoft .NET Framework 1.1 構成」ツールの「ゾーン セキュリティ変更ウィザード」
プログラム・メニュー、あるいはコントロールパネルの[管理ツール]−[Microsoft .NET Framework 1.1 構成]を実行して「Microsoft .NET Framework 1.1 構成」ツールを起動する。
  [.NET Configuration 1.1]−[マイ コンピュータ]−[ランタイム セキュリティ ポリシー]を選択する。
  「コード アクセス セキュリティ ポリシー」のページが表示されるので、[ゾーン セキュリティの変更]をクリックする。
  「ゾーン セキュリティ変更ウィザード」が起動する。

 ゾーンは5つに分類され、それぞれに信頼レベル(完全な信頼、中程度の信頼、低度の信頼、信頼なしのいずれか)が割り当てられている。次の表はゾーンごとの信頼レベルを表にまとめたものだ。

ゾーン 該当するコード・グループ アセンブリのダウンロード元のURL 信頼レベル(アクセス許可セット)
マイ コンピュータ My_Computer_Zone ローカル環境 完全な信頼(FullTrust)
イントラネット LocalIntranet_Zone イントラネット 中程度の信頼(LocalIntranet)
インターネット Internet_Zone インターネット 低度の信頼(Internet)
信頼するサイト Trusted_Zone 信頼済みサイト 低度の信頼(Internet)
信頼されないサイト Restricted_Zone 制限付きサイト 信頼なし(Nothing)
ゾーン・セキュリティ表
信頼レベルの値はデフォルト値。それぞれの信頼レベルは( )内に記述されたアクセス許可セットに対応している。信頼するサイト、信頼されないサイトは「Internet Explorerのセキュリティ構成」で登録、削除できる。

 コード・アクセス・セキュリティのポリシーは、「コード・グループ」と「アクセス許可セット(パーミッション・セット)」を管理している。「コード・グループ」は、.NETアセンブリがコード・グループのメンバになるためのメンバシップ条件(エビデンスの組み合わせ)と、その条件下で適用されるアクセス許可セットとの対応関係を管理している。ノータッチ・デプロイメントで使用するコード・グループは、ゾーン・エビデンスのみがメンバシップ条件として定義されている。それぞれのコード・グループにおけるゾーン(メンバシップ条件)とアクセス許可セットとのデフォルトの対応関係は前述の「ゾーン・セキュリティ表」を参考にしてほしい。例えば、ゾーンが「インターネット」という条件の場合は、コード・グループ「Internet_Zone」のメンバシップ条件に合致するので、Internetのアクセス許可セット(信頼レベルで言うと、低度の信頼)が適用される。

 これらのコード・グループやアクセス許可セットのセキュリティ・ポリシーも「Microsoft .NET Framework 1.1 構成」ツールで確認することができる(下図参照)。

「Microsoft .NET Framework 1.1 構成」ツールの「コード グループ」
  [.NET Configuration 1.1]−[マイ コンピュータ]−[ランタイム セキュリティ ポリシー]−[コンピュータ(Machine)]−[コード グループ]を展開する。
 

 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 記事ランキング

本日 月間