bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA サーバ・アプリケーションの開発方法

 Previous Next Contents Index View as PDF  

セキュリティと 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 Next
Contact e-docsContact BEAwebmasterprivacy