セキュリティはインターネット上でデプロイされるアプリケーションにとって重要です。インターネットアプリケーションに関するセキュリティ問題に対処するため、Java サーブレット API には、Web アプリケーション内部のリソースへのユーザーアクセスを制御する認証メカニズムが定義されています。JRun では、Java サーブレット API に基づいて、最新のセキュリティメカニズムをサポートしています。
認証メカニズムはロールベースです。つまり、Web アプリケーションにアクセスするすべてのユーザーに 1 つ以上のロールが割り当てられます。ロールの例は、manager、developer、および customer です。
アプリケーション開発者は、Web アプリケーション、またはアプリケーションを構成する各リソースに用途別ロールを割り当てることができます。JRun は、ユーザーに Web アプリケーションリソースへのアクセス権を与える前に、ユーザーが認証されていること (つまりログインしていること)、そしてリソースへのアクセス権を持つロールに割り当てられていることを確認します。Web アプリケーションへのアクセスが認可されないと、HTTP 401 (未認可) ステータスコードが表示されます。
認証では、ユーザーに関する情報を Web サイトに保管する必要があります。情報には、各ユーザーに割り当てられているロールが含まれています。また、ユーザーアクセスを認証する Web サイトは通常、ログインメカニズムを実装し、パスワードによって各ユーザーの ID を検証します。Web サイトは、ユーザーを検証した後で、そのユーザーのロールを判断できます。
認証はリクエストがあるたびに行われます。JRun サーバは Web アプリケーションに対するすべてのリクエストをチェックし、そして認証します。
このセクションの例では、認証メカニズムがどのように機能するかを示します。この例では、developer のロールに割り当てられたユーザーだけが Web アプリケーションにアクセスできます。次の図で、基本的な認証メカニズムで起こる一連のリクエストとレスポンスを示します。
Web アプリケーションでは、アプリケーションからページが返される前にリクエストが認証される必要があります。アプリケーション開発者は、Web アプリケーションレベルでの認証条件を設定します。JRun サーバで実行される Web アプリケーションは、認証を個別に有効または無効に設定できます。
ユーザーが既にログインしている場合、アプリケーションサーバはこの手順をスキップします。
この例からわかるように、Web アプリケーションと、アプリケーションを実行するアプリケーションサーバが連動することによって認証は実行されます。アプリケーションは認証が必要かどうかを指定し、必要な場合は、アプリケーションへのアクセスに必要なユーザーのロールを指定します。JRun サーバは、Web アプリケーションが認証を必要としていることを認識して、ユーザーアクセスを検証するメカニズムを実施します。
認証はユーザーに割り当てられているロールに基づいて実行されます。ユーザーが Web アプリケーションにアクセスするには、アプリケーションへのアクセスが承認されているロールに割り当てられている必要があります。
ユーザー、グループ、ロールの 3 つのエンティティから構成される階層内にユーザーを配置します。次の図に、この階層を示します。
この図でわかるように、ユーザーはグループまたは直接ロールに割り当てることができます。グループを使用すると、ユーザーを 1 つにまとめて、そのユーザーグループ全体を特定のロールに割り当てることができます。ユーザーが、enigineering、employees、external の 3 つのグループに分類されています。ユーザーとグループは、administrator、internal、developer、customer、manager、all の特定のロールに割り当てられます。
認証には 2 つの処理があります。Web サイトで Web アプリケーション認証を行うには、どちらも実装する必要があります。
認証の最初の部分はアプリケーションレベルで行われます。アプリケーション開発者は、アプリケーションへのアクセス権を持つロールを割り当てます。認証のこの部分は定義ステージと考えることができます。アプリケーション開発者は、アプリケーションへのアクセスに必要なアクセスロールを定義します。アプリケーションの認証権の設定の詳細については、 「Web アプリケーション認証の使用」 を参照してください。
認証の 2 つめの処理は、アプリケーションを実行するサーバによって行われます。アプリケーションサーバは、ユーザーの証明を検証します。通常はログインメカニズムによってユーザーを確認して、Web アプリケーションへのユーザーのアクセス権を認証します。この処理は実施ステージと考えることができます。認証に関するアプリケーションサーバの設定の詳細については、『JRun 管理者ガイド』を参照してください。
これらの 2 つの認証ステージは互いに独立しています。アプリケーション開発者は、Web アプリケーションを実行するアプリケーションサーバが実際にどのように認証を行っているかを知る必要はありません。開発者に関係があるのは、アクセス権を指定する部分だけです。
JRun サーバの認証メカニズムを構成するセキュリティモジュールを選択するには、JMC を使用します。デフォルトの認証メカニズムはサーブレットの仕様で定義され、ユーザーストアとも呼ばれる、ロールとユーザーが保管されているファイルを含んでいます。
デフォルトのユーザーモジュールは JRun デフォルトユーザーモジュール、デフォルトのロールモジュールは JRun デフォルトロールモジュールです。ユーザーとロールは各 JRun サーバの /<JRun のルートディレクトリ>/servers/<サーバ名>/SERVER-INF/jrun-users.xml ファイルに保管されます。このファイルはデフォルト認証メカニズムのユーザーストアとして機能します。
JMC の [JRun ユーザーマネージャ] パネルと [JRun ロールマネージャ] パネルを使用して、選択した認証モジュールのユーザーやロールを追加または削除します。
1 台の JRun サーバでは複数のアプリケーションを実行できるので、JRun サーバ内にあるアプリケーションへのアクセス権を持つユーザーは、同じサーバ内にある他のアプリケーションにも同じアクセス権でアクセスできます。
認証メカニズムは、デフォルトまたは独自のメカニズムのいずれも実装することができます。JRun には、デフォルトのメカニズムに加えて JMC で次の選択肢が用意されています。
ロールマネージャやユーザーマネージャの使用の詳細については、『JRun 管理者ガイド』または JMC のオンラインヘルプを参照してください。