BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   CORBA サーバ・アプリケーションの開発方法   |   前へ   |   次へ   |   目次   |   索引

セキュリティと CORBA サーバ・アプリケーション

 

この章では、セキュリティと CORBA サーバ・アプリケーションについて、Security University サンプル・アプリケーションを例にして説明します。この Security サンプル・アプリケーションでインプリメントするセキュリティ・モデルでは、University サンプル・アプリケーションの学生ユーザはそのアプリケーションへのログイン・プロセスの一部として認証を受ける必要があります。

ここでは、次の内容について説明します。

 


セキュリティと CORBA サーバ・アプリケーションの概要

一般に、CORBA サーバ・アプリケーションはセキュリティにほとんど関係しません。BEA Tuxedo ドメインでのセキュリティはシステム管理者によって UBBCONFIG ファイルで指定され、ドメインへのログインや認証はクライアント・アプリケーションによって処理されます。BEA Tuxedo システムでサポートされているセキュリティ・モデルのいずれにも、BEA Tuxedo ドメインで稼働するサーバ・アプリケーションに関する要件はありません。

しかし、使用する CORBA アプリケーションのセキュリティ・モデルをインプリメントまたは改善する際に、オブジェクトを追加したり、既存のオブジェクトにオペレーションを追加したりすることになり、そうして追加されたオブジェクトやオペレーションがサーバ・アプリケーションの管理対象である場合もあります。

この章では、University サーバ・アプリケーションを拡張して学生という概念を追加する方法を説明します。この拡張はクライアント・アプリケーションに組み込まれて、クライアント・アプリケーションのユーザの識別、およびログインの手段となります。

クライアント・アプリケーションで BEA Tuxedo ドメインへの認証を受ける方法の詳細については、『BEA Tuxedo CORBA クライアント・アプリケーションの開発方法』を参照してください。BEA Tuxedo ドメインにセキュリティ・モデルをインプリメントする方法の詳細については、『BEA Tuxedo アプリケーションの設定』を参照してください。

 


University サーバ・アプリケーションの設計上の考慮事項

Securty University サンプル・アプリケーションの設計の要点は、クライアント・アプリケーションのユーザに対してログオンを求め、ログオンしないと何もできないようにすることです。このため、Security サンプル・アプリケーションでは、ユーザの概念を定義する必要があります。

アプリケーションにログオンするために、クライアント・アプリケーションは BEA Tuxedo ドメインのセキュリティ・サービスに以下の情報を提供する必要があります (このアプリケーションの学生ユーザは、ユーザ名とアプリケーション・パスワードのみを提供します)。

Security サンプル・アプリケーションは、Registrar オブジェクトに get_student_details() オペレーションを追加します。このオペレーションによって、クライアント・アプリケーションは、BEA Tuxedo ドメインにログオンした後で University データベースから学生の情報を取得することができます。

注記 get_student_details() オペレーションは、BEA Tuxedo ドメインのセキュリティ・モデルをインプリメントすることとは無関係です。このオペレーションを追加しても、Security サンプル・アプリケーションに補足機能を追加するのみです。Security サンプル・アプリケーションに追加されるセキュリティ・モデルの詳細、およびクライアント・アプリケーションが Security サーバ・アプリケーションにログオンする方法の詳細については、『BEA Tuxedo CORBA クライアント・アプリケーションの開発方法』を参照してください。

ここでは、次の内容について説明します。

Security University サンプル・アプリケーションのしくみ

Security サンプル・アプリケーションをインプリメントするために、クライアント・アプリケーションではログオンについて学生エンド・ユーザとのやり取りが追加されます。このやり取りではクライアント・マシン上のローカルな SecurityCurrent オブジェクトを使用して PrincipalAuthenticator オブジェクトのオペレーションが呼び出され、BEA Tuxedo ドメインにアクセスするためのログイン手順の一部となります。ユーザ認証のプロセスの後、クライアント・アプリケーションは Registrar オブジェクトの get_student_details() を呼び出して、学生ユーザについての情報を取得します。

Security サンプル・アプリケーションで使用される University データベースは、コース情報に加えて学生の情報も含むように更新されて、次の図のようになります。


 

get_student_details() オペレーションはデータベースで学生情報の部分にアクセスして、クライアントのログオン・オペレーションに必要な学生情報を取得します。次の図は、Security サンプル・アプリケーションに関係する主要なオブジェクトを示します。


 

Security サンプル・アプリケーションの一般的な使用のシナリオには、以下のようなイベントのシーケンスが含まれることがあります。

  1. クライアント・アプリケーションは、SecurityCurrent オブジェクトへのリ ファレンスを Bootstrap オブジェクトから取得します。

  2. クライアント・アプリケーションは SecurityCurrent オブジェクトを呼び出し て、BEA Tuxedo ドメインで要求されるセキュリティのレベルを判別します。

  3. クライアント・アプリケーションは学生ユーザについて学生 ID および必要 なパスワードを問い合わせます。

  4. クライアント・アプリケーションは、学生についての情報を認証サービスか ら取得して、学生の認証を行います。

  5. 認証の処理が正常に終了したら、クライアント・アプリケーションは BEA Tuxedo ドメインにログオンします。

  6. クライアント・アプリケーションは Registrar オブジェクトの get_student_details() オペレーションを呼び出し、学生 ID を渡して、学 生についての情報を取得します。

  7. Registrar オブジェクトはデータベースをスキャンして、クライアント要求 にある学生 ID と一致する学生情報を探します。

  8. クライアント・アプリケーションの要求で指定されている学生 ID と、デー タベースにある学生情報の間に一致があれば、Registrar オブジェクトはク ライアント・アプリケーションに struct StudentDetails を返します。学 生によって入力された ID がデータベースにある情報と一致しない場合、 Registrar オブジェクトはクライアント・アプリケーションに CORBA 例外 を返します。

  9. Registrar オブジェクトがクライアント・アプリケーションに StudentDetails を返した場合、クライアント・アプリケーションは学生 ユーザ個人用の許可メッセージを表示します。

クライアント・アプリケーションに学生の詳細情報を返す機能を設計する際の考慮事項

クライアント・アプリケーションは、ユーザが University アプリケーションの使用を継続できるように、BEA Tuxedo システムにユーザを記録する方法を提供する必要があります。このためには、クライアント・アプリケーションでユーザを識別する手段が必要です。Security サンプル・アプリケーションでは、学生 ID で識別を行います。

Universtity サーバ・アプリケーションに必要な処理は、クライアント・アプリケーションがユーザ認証プロセスを完了できるように、学生 ID に基づいて学生のデータを返すことのみです。このため、Security サンプル・アプリケーションの OMG IDL によって、Registrar オブジェクトに get_student_details() オペレーションの定義が追加されています。University サーバ・アプリケーションの設計上の主な考慮事項は、既に説明したとおりオペレーション上のシナリオに基づいています。つまり、1 名の学生が一度に 1 つのクライアント・アプリケーションとやり取りできるようにすることです。このため、サーバ・アプリケーションは get_student_details() オペレーションのインプリメンテーションで大量のデータ処理を考慮する必要がありません。

get_student_details() オペレーションの OMG IDL 定義は次のとおりです。

struct StudentDetails
{
StudentId student_id;
string name;
CourseDetailsList registered_courses;
};

 

back to top previous page next page