解説

インサイド .NET Framework [改訂版]

第8回 コード・アクセス・セキュリティ(その3)

吉松 史彰
2003/08/27
Page1 Page2 Page3 Page4 Page5

.NET Framework Configuration管理ツールの利用

 アクセス許可セットの詳細を調べるのに、いちいちC#でプログラムを書こうと思う管理者はあまりいないだろう。.NET Frameworkには、管理者がポリシーをGUIで編集するためのツールが含まれている。実はそのツールとは、すでに本連載の第4回「アセンブリとバージョン管理」で紹介した「.NET Framework Configuration管理ツール」だ。第4回では、このツールを使ってアプリケーションの構成ファイルを作成したが、同じツールでポリシーも編集できるようになっている。

 第4回で解説したとおりの手順で、ツールを起動し、[マイ コンピュータ]を展開する。構成ファイルを作成するときは[アプリケーション]ノードを利用したが、ポリシーを編集するときは[ランタイム セキュリティ ポリシー]を展開する。すると、[エンタープライズ(Enterprise)]、[コンピュータ(Machine)]、[ユーザー(User)]というポリシーの階層を表すアイコンが表示される。それぞれの階層の中には、[コード グループ]、[アクセス許可セット]、[ポリシー アセンブリ]の3つのアイコンが表示される。

.NET Framework Configuration管理ツール
[マイ コンピュータ]内の[ランタイム セキュリティ ポリシー]を展開すると、各ポリシー階層の項目があり、それぞれの中に[コード グループ]、[アクセス許可セット]、[ポリシー アセンブリ]の項目がある。

 この中に設定されているものが、.NET Frameworkをインストールした後のデフォルトのセキュリティ・ポリシーだ。なお、[エンタープライズ(Enterprise)]、[コンピュータ(Machine)]、[ユーザー(User)]の各アイコンを右クリックして表示されるメニューで[リセット]を選択すれば、いつでも.NET Frameworkのインストール直後の状態に戻すことができるのを覚えておいてほしい。

右クリックで表示される[リセット]メニュー
[エンタープライズ(Enterprise)]、[コンピュータ(Machine)]、[ユーザー(User)]の各アイコンを右クリックすると[リセット]が表示される。これを選択すれば、いつでも設定を.NET Frameworkのインストール直後の状態に戻すことができる。

 このツールで設定した内容は、第6回に紹介したXMLファイルとしてそれぞれのフォルダに格納される。

 [コード グループ]を展開すると、そのポリシー階層に定義されているコード・グループの一覧が表示される。デフォルトではエンタープライズとユーザーの2つの階層には「All_Code」というコード・グループが1つあるだけだ。コンピュータの階層にはいくつかコード・グループが定義されている。

[コンピュータ(Machine)]の[コード グループ]で定義されているグループ・ポリシー

 前述の階層と見比べてみてほしい。

 各コード・グループのメンバーシップ条件と割り当てられているアクセス許可セットは、そのコード・グループを右クリックして[プロパティ]を選択すると表示される画面で確認することができる。

 
コード・グループのプロパティで設定できる3つのタブ
管理者はこれらの内容を更新することができるが、設定を誤るとこの管理ツールさえも起動できなくなってしまうため細心の注意が必要だ。

 管理者であれば、この画面で内容を更新することも可能だ。ただし、更新するときには細心の注意を払うのを忘れないでほしい。自分自身の環境に権限が少なすぎるアクセス許可セットを設定した状態で、うっかりこのツールを終了してしまうと、Visual Studio .NETはおろか、この管理ツールさえも起動できなくなってしまう場合がある*1

*1 万が一そんなことになってしまったら、第6回を参考にして、security.configファイルとenterprisesec.configファイルをすべて削除してしまって(実際には名前を変更する方がいいだろう)、それからもう一度この管理ツールを起動すれば、デフォルトの状態に戻すことができる。

 [アクセス許可セット]を展開すると、現在ポリシーに定義されているアクセス許可セットが表示される。それぞれのアクセス許可セットを右クリックして、[表示]−[アクセス許可]を選択すれば、画面右側に含まれているアクセス許可が一覧される。

アクセス許可セットとアクセス許可の表示
[アクセス許可セット]を展開すると、ポリシーに定義されているアクセス許可セットが表示される。それぞれのアクセス許可セットからは、含まれているアクセス許可の一覧を表示することができる。

 1つ1つのアクセス許可をダブルクリックすると、その詳細な内容を見ることができる。例えば、LocalIntranetというアクセス許可セットの中の「環境変数」というアクセス許可をダブルクリックすると、次のダイアログが表示される。

「環境変数」のアクセス許可
アクセス許可の表示でそれぞれのアクセス許可をダブルクリックすると、その内容が表示される。

 これは、環境変数の中でもUSERNAMEという環境変数に対して読み取りする権限しか与えられていないことを意味している。一方、同じアクセス許可セットの中の「ユーザー インターフェイス」をダブルクリックすると、次のような画面が表示される。これは、ユーザーインターフェイスに関しては制限がないことを意味している。

ユーザーインターフェイスのアクセス許可
アクセス許可の表示で「ユーザー インターフェイス」をダブルクリックした場合。

 [ポリシーアセンブリ]を展開すると、アクセス許可やメンバーシップ条件のクラスを含むアセンブリが一覧される。


 INDEX
  解説 インサイド .NET Framework [改訂版]
  第8回 コード・アクセス・セキュリティ(その3)
    1.コード・グループとメンバーシップ条件
    2.アクセス許可セットとは
    3.アクセス許可の一覧
  4.管理ツールによるセキュリティ・ポリシーの編集
    5.ポリシーの組み合わせ
 
インデックス・ページヘ  「解説:インサイド .NET Framework [改訂版]」


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

本日 月間