IIS 7 で導入された URL 承認
URL 承認とは?
IIS7 以降では URL Authorization という機能が導入されました。
2010年7月の時点で、MS の TechNet の記事の見出しでは URL Authorization のことを "URL 認証"
と翻訳しているようですが、これは "URL 承認" と訳すべきところです。
この記事のことです↓
IIS 7.0 の URL 認証とは - http://technet.microsoft.com/ja-jp/library/dd939092.aspx
珍しくかなり豪快な間違いですね(苦笑) 文章中では URL 承認と正しく書いているのに・・・。
「認証」と「承認」のおさらい
どちらも Auth から始まる単語で紛らわしいのですが、通常 Authentication (オーテンティケーション) は「認証」 と訳し、Authorization (オーソライゼーション) は「承認」 と訳します。 ひとことで言えば、認証というのは「ユーザーを識別すること」 であり、承認というのは「アクセスを許可あるいは拒否すること」です。
例えば、ユーザー名とパスワードを入力する作業をしますよね。そのユーザー名とパスワードが正しければ、「これは user1 さんからのアクセスである」 とわかるわけです。 ここまでが「認証」 です。
「user1 さんだから、アクセスを許可しよう」あるいは「user1 さんだから、アクセスは拒否します」 という風に判断するところが「承認」です。
URL 承認とは?
URL Authorization というのは、URL 毎に「承認」 をすることを言います。
これは要は「ファイル毎、ディレクトリ毎に構成ファイルを元に、ユーザーやグループ毎の承認規則が設定可能になった」 ということです。
IIS 6 以前では、ユーザーやグループ毎に承認を行う場合には NTFS のアクセス権を設定したりしなければいけませんでした。 すると設定箇所が IIS やらファイルシステムやらに散らばってしまうので設定が大変です。特に多数のサーバーを管理する時などは大変な手間になってしまいます。
しかし、URL 承認 (承認規則) を利用すると構成ファイル (web.config) だけでユーザーやグループ毎の承認規則を設定できるので、複数台のサーバーへの設定のコピーも容易になります。
実際の設定例と動作確認
実際に URL 承認 (承認規則) を設定して動作を見てみましょう。
基本動作
URL 承認の基本的な動作を見てみましょう。
/authtest/test.html というファイルに対して、test2 からのアクセスのみを許可 します。
まず、authtest ディレクトリ内の test.html の Authentication (認証) 規則を設定します。ここでは、Basic Authentication (基本認証) を有効 (Enabled) にします。
続いて、Authorization Rules を設定します。
All Users へのアクセス許可エントリを削除し、 test2 からのアクセスのみを許可します。
この設定を行うと、web.config が作成されます。
web.config のファイルの内容は次の通りです。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <location path="test.html"> <system.webServer> <security> <authorization> <remove users="*" roles="" verbs="" /> <add accessType="Allow" users="test2" /> </authorization> </security> </system.webServer> </location> </configuration>
以上で設定は完了です。
ブラウザからアクセスして、設定が有効かどうか確認しましょう。
アクセスを許可されていないユーザー test1 でアクセスします。
正しいユーザー名とパスワードを入力しても、アクセスが拒否されて、再度ユーザー名とパスワードの入力を促すポップアップが出てしまいました。
確かにユーザー test1 からのアクセスは拒否されました。
次にユーザー test2 のユーザー名とパスワードを入力すると、ページが表示されました。
NTFS のアクセス権との兼ね合いを確認
URL 承認を利用している場合に、NTFS アクセス権が有効に機能するのか、確認します。
上の test2 を許可する設定のまま、ユーザー test2 の NTFS アクセス権を全て拒否に設定します。
この状態でユーザー test2 でアクセスすると、アクセスは拒否されました。
再度、ファイルのアクセス権を元に戻します (フルコントロールを与える) 。
すると正しくページが表示されました。
以上から、URL 承認の設定をしている場合も NTFS のアクセス制御は有効に作用することが確認できました。