![]() |
![]() |
|
|
セキュリティと 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 サンプル・アプリケーションの一般的な使用のシナリオには、以下のようなイベントのシーケンスが含まれることがあります。
Registrar
オブジェクトの
get_student_details()
オペレーションを呼び出し、学生 ID を渡して、学
生についての情報を取得します。
Registrar
オブジェクトはデータベースをスキャンして、クライアント要求
にある学生 ID と一致する学生情報を探します。
Registrar
オブジェクトはク
ライアント・アプリケーションに struct StudentDetails
を返します。学
生によって入力された ID がデータベースにある情報と一致しない場合、
Registrar
オブジェクトはクライアント・アプリケーションに CORBA 例外
を返します。
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;
};
![]() |
![]() |
![]() |
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|