ASP.NETのユーザー認証設定はIIS設定と合わせ技になるため戸惑いやすい。昔、ちょっと齧って大体わかったつもりだったが今となっては忘却の彼方。
ということでおさらいして纏めておく。
昔勉強した資料を読みなおしてみたが、時代はだいぶ進んでいる。まぁ基本はあまり変わらないだろうということでとりあえず当時の環境での話。
IISは多分6.0(か5.0)ASP.NETは2.0かと思われる。
ちなみにサーバーバージョンとIISバージョン関係のがあったのでコピペしておく。
資料によるとIISとASP.NETの認証の組合せはこんな感じになっている。
大きく分けると4パターンなのだが、通常のシステム.NET Passportなんて使わないと思うのでこいつは除外。
Windowsユーザーアカウントを使う場合はとりあえず基本認証とWindows統合認証を押さえておけば良いのでは?と思うのでこれを2パターンとすると、結局4パターンを押さえておけば自分的には満足。
- 匿名アクセスパターン
これはIISでもASP.NETでも特に制限を掛けないオールフリー環境。
参照だけなんて時はこれで良いのかも。 - 基本認証パターン
非ドメインWindows環境で使うのかと思われる。
アクセスするとIISからユーザーIDパスワードの確認ダイアログが表示され、そこにIISをホストしているServerに登録されているWindowsユーザーアカウントを入力して認証を受ける。
ASP.NET自体では認証は行わず、その時のユーザー情報をもらうだけなのかな。
入力したパスワードはクリアテキストでネット上を流れるのでセキュリティ的に今ひとつといった話だったように思う。 - Windows統合認証パターン
ブラウザはユーザーがクライアントOSにログインしたときの情報を付加してサーバーにアクセスしに行く。
IISはその情報を貰って認証するってパターン。
IE以外のブラウザではログイン情報を付加してアクセスしに行かないので認証ダイアログが表示されるかも。(FireFoxはそれっぽかった。なにか設定があるのかもしれないが) - 独自管理パターン
IISでは匿名アクセスを許可してスルー。
ASP.NET側で認証フォームを表示して独自管理しているユーザー情報を用いて認証する。(要はアプリ側で認証も制御するパターン)
IISの認証設定は以下のような感じかな。(手近に2008Serverしかなかったので当時とは設定方法が変わっているので想像で書いている)
「管理ツール」から「インターネットインフォメーションサービス(IIS)マネージャを起動。
設定対象のサイトを選択し、真ん中のペインに「認証」というアイコンがあるのでダブルクリックして開く。
匿名認証、基本認証、Windows認証のどれかを選んで有効にする。
みると、Form認証なんてのが追加になっていますね。
ちょっとだけ調べてみたところ、以前のASP.NET側のForm認証はASP.NET系のファイルにアクセスしたときにしか有効にならなかったのでIIS側で認証ページを表示して独自に認証できる機能を追加したんだとか。
IIS 7 で自由な認証画面を - monoe's blog - Site Home - MSDN Blogs
今回はとりあえず基本を押さえるのが目的なのでスルー。
(IIS7についてはいずれ勉強してみたい)
ASP.NET側の設定は、該当サイトを右クリックして「エクスプローラで開く」とそこにweb.configファイルがあるのでメモ帳とかで開いて以下の部分を編集する。
<configration>
<system.web>
<authentication mode=”HOGEHOGE” />
0 件のコメント:
コメントを投稿