ログイン認証

サインオンに代わるログイン認証

System i ではサインオン画面によってユーザー名とパスワードを入力してジョブを開始することはご存知のとおりですが、5250画面の Web化となると、5250画面の サインオン画面 に相当するのが ログイン です。

5250サインオン画面 Basic認証ダイアログ
5250サインオン画面 Basic認証ダイアログ

Alaska では IPアドレスだけで http://192.168.1.1 のようにして System i への接続を要求すると上図右のような Basic認証ダイアログが表示されて、ログインすることができます。

ユーザー : PGMR によってログインすると下図左のような eStudio が開始されますし、一般の既存のユーザー・プロフィールによってログインすると AutoWeb によって業務メニューを開始することができます。

eStudio AutoWeb
eStudio AutoWeb

一般の HTTPサーバーでは Alaska のようなIPアドレスによるログイン機能はありません。 このような Basic認証ダイアログと呼ばれるログイン機能は、Alaska がブラウザに認証が 必要であることを通知することによって、ブラウザ自身が表示しています。

Basic 認証

Basic認証とは HTTPプロトコルの規格によるものです。 Alaska は Basic認証によってユーザー、パスワードを取得すると仮想対話式環境としてSystem i に登録されているユーザー・プロフィールによってジョブを開始します。 これは単なる認証ではなく、5250エミュレータのサインオンからジョブの開始と同じ動作を再現しています。

さて Basic認証とは HTTP/1.1規格による基本的な認証機能であり、入力されたユーザー名とパスワードは、そのまま Alaska に送信されるのではなく、ASCII 6ビット値にコード化されて(エンコード) Alaska に送信されます。 例えば、HTTPプロトコルの認証命令は、

Authorization: Basic bW4wMDptbjAw

ようにエンコードされます。

Basic bW4wMDptbjAw の部分は ユーザー : MN00、パスワード : MN00 を示していますが通常、Windowsユーザーがこれを見てもユーザー名とパスワードを容易に想像することはできません( デコードの手法に精通しているヘビー・ユーザーによればデコードすることも可能ですが)。 Alaska は、このコード化されたユーザー、パスワードをデコードして元のユーザー、パスワードを読み取って System i 内部で認証します。

もうひとつ、Basic認証には、重要な特質があります。 通常、ユーザーが独自にユーザー、パスワードを入力するHTMLフォームを作成して、それによって認証機能を独自に作成することもできますが (このような認証方式のことを FORM認証と呼びます)、その場合では、認証が行われるのは最初のユーザー、パスワードを入力したときだけです。

ログインした後で表示されたりするときは認証はありませんので、もしその後の操作で表示されたHTMLフォームをローカルPCに保存しておいて、ログアウトした後で、その保存しておいたHTMLを起動すればその時点から続けてサーバーに接続することが可能となってしまいます。 つまりログインを行わない操作が許されてしまうのです。

このような不正な操作のことを「成りすまし」と呼びます。 ところが Basic認証を受けて接続したHTMLフォームは成りすましによって再接続することはできません。 Basic認証を受けたHTMLフォームをローカルPCに保存しておいてから、もう一度、呼び出して使用しようとするとブラウザはそこで改めて Basic認証ダイアログを表示して、認証を要求するからです。 これは Basic認証後に表示される HTMLフォームの受信の過程においても操作しているユーザーにはわかりませんが毎回、ブラウザがその都度 Basic認証コードをサーバーに付加して送っているからです。

Basic認証

FORM認証

Basic認証に対してユーザーが独自にHTML上に作成する手作りの認証画面のことを FORM認証といいます。 私達がよくWeb上で見かけるログイン画面は大半が FORM認証画面です。 System i の開発者が作成するログイン画面もたいていの場合、FORM認証画面ですがここにひとつ問題があります。

【Hotmail のログイン・フォーム認証】
Hotmail のログイン・フォーム認証

System i の開発者が用意する FORM認証画面は、ユーザー名とパスワードをSystem i に送信して認証用のデータ・ベースを検索して CHAIN などによる認証を行ってからホーム・ページを開くというものですが 5250 の閉ざされた世界の中しか知らない開発者はユーザー名とパスワードが不特定の第三者によってキャプチャーされてユーザー、パスワード情報が盗まれるとは想像すらしていないようです。

さらにログインしたユーザー、パスワードを非表示であれ、HTML内部に埋め込むようなことすらしてしまいます。 いくら堅牢な機密保護を誇るSystem i であってもパスワードがこのようにさらされてはどうしようもありません。

EnterpriseServer では FORM認証の機能をユーザーで作成することができますがBasic認証と同じような ASCCII6 ビットによるエンコード機能が備わっています。 それだけではなく System i の開発者が必要とする機能も備わっています。 それを次に紹介することにしましょう。

AutoWeb の FORM認証

AutoWeb の導入時の設定は Basic認証によるログインであり、次のように設定されています。

#------------------------------------------------------
#   Basic認証                             *YES/*NO
#------------------------------------------------------
   BASICAUTH     *YES

この設定によって http://192.168.1.1 のように System i の IPアドレスだけによってAlaska に接続を要求すると次のような Basic認証ダイアログが表示されます。

Basic認証ダイアログ

ユーザーとパスワードを入力して OKボタンを押すとサインオンと同じようにジョプを開始することができますが BASIC認証を次のように *NO に設定することもできます。

#------------------------------------------------------ 
#   Basic認証                             *YES/*NO 
#------------------------------------------------------ 
   BASICAUTH     *NO                                    
#------------------------------------------------------ 
#   フォーム認証                                        
#------------------------------------------------------ 
   FORMAUTH      /AS400-NET.USR/TEMPLATE/LOGIN/LOGIN.HTM

この設定によって FORMAUTH に指定された HTML を FORM認証画面として表示することができます。 次はこの FORM認証によって表示した画面です。

FORM認証画面

この FORM認証ダイアログも Basic認証に良く似ていますが、これは「装置名」が入力項目として用意されていることが異なります。 「装置名」とは 5250エミュレータの装置名であることはすぐに気づかれることと思いますが装置名の指定ができることが AutoWeb では大きな意味を持ちます。 装置名を指定するようにすることは長い間の課題であったのです。

また省略値として提供されている FORM認証を行う HTMLテンプレート:

/AS400-NET.USR/TEMPLATE/LOGIN/LOGIN.HTM

は、ユーザーが目的に合わせて独自の HTMLテンプレートを作成して指定することができます。この FORM認証用の HTMLテンプレートは

という利点があります。

装置名の指定

AutoWeb が FORM認証を使って装置名を指定することができるようになったことはとても重要な意味を持ちます。 AutoWeb を FORM認証によって装置名を指定してログインすると、指定した装置名によって仮想端末によるジョブが起動します。 また最初に指定した装置名は、そのクライアントPCのクッキー(Cookie) に保存され、次回以降はクッキーから装置名が検索されて初期値とし表示されます。

System i のジョブの装置名は、これまで 5250エミュレータでは装置名によって使用する印刷ブリンターを割り振ったり、タイムスタンプやエンド・ユーザーの特定などの多くの場面で利用されています。 もし装置名を指定することができなければ装置名は QPADEV0001, QPADEV0002, ... のような自動発生だけになってしまい、多くの業務に支障を与えることになってしまいます。

WebFacing とは画面だけを HTML にするという機能だけでは、このような問題を生じてしまいます。 この点において、

装置名が指定できる AutoWeb であればすべての 5250 環境を再現することができる

ようになったのです。

Web環境で装置名を指定することができるのは AutoWeb だけです。 装置名が指定できない Web化ソリューションでは回避策として様々な苦肉の策が必要となってしまいます。 AutoWeb はユーザーの要望を技術力によって解決した製品です。