HTTPサーバーとWeb開発

95. Basci認証の仕組み

Basic認証 では、もちろん許可されたユーザーのみファイルの閲覧ができる。
それでは Basic認証 の仕組みを、HTTP の通信の観点からデータがどのように流れているか?
次の 例) のようにサーバー( System i )上の認証を必要とするファイルにアクセスしたとする。

・認証が必要なファイルにアクセスした場合

認証が必要なファイルにアクセスした場合、

http://192.168.1.1/AS400-NET.USR/ESTUDIO/INDEX.HTM

クライント ( Webブラウザー ) の要求に対して サーバー ( System i ) から
次のような HTTPレスポンスコード が返されます。

HTTP/1.1 401 Autherization Required

【 リクエスト1 】
GET /AS400-NET.USR/ESTUDIO/INDEX.HTM HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, 
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ja
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Accept-Encoding: gzip, deflate
If-Modified-Since: Wed, 16 Mar 2011 18:05:49 GMT
If-None-Match: "b0c3a5b81d4fc61:be1"
Host: 192.168.1.1
Connection: Keep-Alive
【 レスポンス1 】
HTTP/1.1 401 Autherization Required
Server: OfficeQuattro-Alaska/5.0
Date: Tue, Jul 10 16:25:48 2012 GMT
WWW-Authenticate: Basic realm="Alaska Login"
Content-Type: text/html; charset=shift_jis"
Accept-Ranges: bytes
Connection: Keep-Alive
Keep-Alive: timeout=120000
Last-Modified: Tue, Dec  8 13:34:19 2009 GMT
ETag: "b0c3a5b81d4fc61:be1"
Content-Length: 1790
【画面】

Basic認証のダイアログ画面のハードコピー

・ Basic認証による認証

次に表示されたBasic認証ダイアログで入力した ユーザー名 / パスワード を
サーバーへデータを送信します。
Basic認証ダイアログで OK ボタン押すと、HTTPリクエストのデータとして

Authorization: Basic ab12CD34efG

このようなデータが送信されます。
サーバーで入力したユーザーのアクセスが許可されると要求した画面が
表示されるのである。

【 リクエスト2 】
GET /AS400-NET.USR/ESTUDIO/INDEX.HTM HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, 
application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ja
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; 
Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Accept-Encoding: gzip, deflate
Host: 192.168.1.1
Connection: Keep-Alive
Authorization: Basic ab12CD34efG
【 レスポンス2 】
HTTP/1.1 200 OK
Server: OfficeQuattro-Alaska/5.0
Date: Tue, Jul 10 16:51:20 2012 GMT
Content-Type: text/html; charset=Shift_JIS"
Accept-Ranges: bytes
Connection: Keep-Alive
Keep-Alive: timeout=120000
Last-Modified: Wed, Mar 16 18:05:49 2011 GMT
ETag: "b0c3a5b81d4fc61:be1"
Content-Length: 3407

<html>
<head>
   :
</html>
【画面】

INDEX.HTM画面のハードコピー

このようにHTTP上のデータ送受信のみでかつ非常にシンプルな仕組みで
Basic認証が行なわれているのである。
堅牢とは言えないまでも社内イントラのシステムの場合であれば、
このようなシンプルな認証方式でも十分である。