連載
» 2003年06月28日 00時00分 公開

連載 プログラミングASP.NET ―ASP.NETによるWebアプリケーション実践開発講座― :第18回 Windows認証を実装したWebアプリケーション (2/3)

[田口景介,著]

adminグループの作成

 このwinauthアプリケーションでは、admin.aspxへのアクセスを許可するユーザーを制御するために、「admin」と名付けたグループを利用する。そこでまずは、「コンピュータの管理」でadminグループを作り、管理ページ(admin.aspx)へのアクセスを許可したいユーザーをこのグループに所属させる(図18.5および図18.6)。

図18.5 コンピュータの管理
admin.aspxへのアクセスを許可するユーザーを制御するために、まず「admin」と名付けたグループを作成する。右側のペイン上を右クリックし、メニューから[新しいグループ]を実行すると次の画面が開く。

図18.6 adminグループ
ここでグループに追加したメンバにだけ、admin.aspxへのアクセスを許可する。

 次に、admin.aspxのACLを図18.7に示すように編集し、最低限のユーザーにのみアクセスが許可されるように修正する。なお、こうしてUsersグループの読み取り権を取り除くときは、明示的にアカウント「ASPNET」へ読み取り権を与えなければならない。

図18.7 admin.aspxのACL
一般ユーザーからのアクセスを排除するためにUsersグループを取り除き、adminグループへの読み取り権を追加する。また、ASP.NETシステムのためにアカウント「ASPNET」への読み取り権も追加する。

Windows認証のweb.config

 winauthアプリケーションではリスト18.4に示すweb.configを利用しているが、実のところこのweb.configはなくても特に問題はない。ASP.NETの認証モードは、デフォルトでWindows認証に設定されているからだ。つまり、本連載で示してきたすべてのサンプルは、暗黙的にWindows認証の下で動作してきたのである(匿名アクセスを許可していてはあまり意味がないが)。ただ、今回は匿名アクセスを防ぐ目的でリスト18.4に示す簡単なweb.configを使う。

<configuration>
  <system.web>
    <authentication mode="Windows" />
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
</configuration>

リスト18.4 web.config

 リスト18.4に示したweb.configでは、認証モードを設定するauthentication要素と、URL認定を設定するauthorization要素を記述してある。authentication要素では、mode属性に表18.1に示すいずれかの値を指定して認証モードを設定する。

mode 機能
Windows(デフォルト) Windows認証。IISによる認証結果をそのままASP.NETの認証として利用し、ファイル認定、URL認定にも用いる
Forms フォーム認証。独自のユーザー・データベースと認証プロセスを実装できる
Passport パスポート認証
None ASP.NETの認証や認定を無効化する(カスタム認証に利用)
表18.1 authentication要素のmode属性

 なお、authentication要素を含むweb.configは、必ずアプリケーション・ルート(仮想ディレクトリとして指定したディレクトリ)に格納しなければならない。これはアプリケーションを構成するすべてのディレクトリで、同一の認証モードが正しく適用されるようにするためである。

 URL認定を設定するauthorization要素では、匿名アクセスを拒否するために以下の1行を記述している。Windows認証でこの設定がなされた場合は、IUSR_<コンピュータ名>によるアクセスが拒否されるようになる。

  <deny users="?" />

 IISマネージャの設定でも匿名アクセスを拒否しているので、これは必ずしも必要な設定ではないが、念のため指定しておくべきだろう。IISで匿名アクセスが許可されていても、この設定があれば図18.8に示すようにエラーが表示される。

図18.8 匿名アクセス拒否によるエラー画面
IISで匿名アクセスが許可されていても、web.configに「<deny users="?" />」の設定があれば、このようなエラーが表示される。

  

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。