匿名アクセスのユーザー設定って何?

匿名ユーザーって何?

IIS の資料を読んだり、設定を行っていると、匿名ユーザー という言い方が頻繁にでてきます。 匿名ユーザーって、何のことだかわかりますか?

匿名ユーザーは認証されていないユーザー

匿名ユーザーというのは、ひとことでいうと 「認証されていないユーザー」 のことです。

「認証」 (Authenticate) というのは、 「ユーザーを識別すること」 ということです。 ユーザー名とパスワードを入力するなどすることによって本人確認が出来て、誰がアクセスしているか分かることです。

認証の仕組み ~ ブラウザがサーバーに情報を送る

認証するための情報は、 Web クライアント (要は Web ブラウザ) が必要に応じて IIS に送信します。

あなたも経験があると思いますが、ブラウザで何かの情報を見ていると、「ユーザー名とパスワードを入力してください」 という入力ボックスが表示されることがありますよね?

あの入力ボックスは、Web サーバーが 「このコンテンツをみるためには 『認証』 が必要ですよ!」 とブラウザに伝えたことをきっかけに、ブラウザがユーザーに認証情報の入力を促しているものなのです。

ユーザーが認証情報を入力して、ブラウザがそれを Web サーバーに送信します。 Web サーバーはその認証情報を確認して、Web サーバーに登録されたユーザーであればその認証情報を受け入れます。

匿名ユーザーのユーザーとは?

IIS の 匿名ユーザーの設定 をみていると、「匿名ユーザー」 として IUSR_<コンピュータ名> (あるいは IUSR ) という名前のユーザーを指定するところがあることに気付くと思います。

このユーザーは一体何のために設定するのでしょうか?

これを理解するためには、 Windows のセキュリティ機構を少し理解する必要があります。

Windows のセキュリティは 「誰に対して何を許可・拒否するか」 ということで構成されています。 従って、何をするにしても 「その作業を誰がしているか」 ということをシステムが識別することは大変重要なのです。

しかし IIS では、認証しない限り誰がアクセスしてきているか分かりません。

このため、「認証情報が無く、誰がアクセスしているか分からない時は、便宜上このユーザーが IIS を使っていることにする」 という状況のために用意するユーザーアカウントが 「匿名ユーザー」 というアカウント設定なのです。

Windows アカウントと関連付けされる

IIS は Windows アカウントに登録されたユーザーのみを認証ユーザーとして受け入れます。 さらに IIS はユーザー認証した場合、そのユーザーに 「偽装」 (impersonate) を行ってリクエストを処理します。

これにより、HTTP プロトコルで受け渡しされたユーザー情報が Windows アカウントに関連付けされるため、 HTTP リクエスト処理に Windows セキュリティ機構が利用できるようになります。

このような仕組みになっているため、IIS は 「匿名ユーザー」 にも何らかの Windows アカウントを関連付けします。 そして、その匿名ユーザーに対して必要最低限のアクセス許可のみを設定することによって、IIS 及び Windows のセキュリティを高めているのです。

セキュリティに関する関連記事

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説