|
|
セキュリティの使い方
ここでは、次の内容について説明します。
注記 この章では、認証の使い方を説明します。CORBA セキュリティ環境で利用可能なセキュリティ機能の説明、およびそれらの機能をインプリメントする方法については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
セキュリティ・サービスの概要
BEA Tuxedo 製品の CORBA 環境では、CORBA サービスのセキュリティ・サービスに基づくセキュリティ・モデルが提供されます。BEA Tuxedo CORBA のセキュリティ・モデルでは、CORBA サービスのセキュリティ・サービスの認証部分がインプリメントされます。
CORBA 環境では、ドメイン単位でセキュリティ情報を定義します。ドメインのセキュリティ・レベルは、コンフィギュレーション・ファイルで定義します。クライアント・アプリケーションでは、SecurityCurrent オブジェクトを使用して BEA Tuxedo ドメインにログオンするための認証情報を提示します。
利用できる認証レベルは以下のとおりです。
TOBJ_NOAUTH
認証はまったく必要ありません。ただし、クライアント・アプリケーションは認証を受け、ユーザ名とクライアント・アプリケーション名を指定することができます。パスワードは不要です。
TOBJ_SYSAUTH
クライアント・アプリケーションは BEA Tuxedo ドメインの認証を受け、ユーザ名、クライアント・アプリケーション名、およびアプリケーション・パスワードを指定する必要があります。
TOBJ_APPAUTH
TOBJ_SYSAUTH
情報のほかに、クライアント・アプリケーションはアプリケーション固有の情報を指定する必要があります。デフォルトの BEA Tuxedo CORBA 認証サービスがアプリケーション・コンフィギュレーションで使用される場合、クライアント・アプリケーションはユーザ・パスワードを指定する必要があります。それ以外の場合、クライアント・アプリケーションはそのアプリケーションのカスタム認証サービスによって解釈される認証データを指定します。
注記 クライアント・アプリケーションが認証を受けず、セキュリティ・レベルが TOBJ_NOAUTH
の場合、BEA Tuxedo ドメインの IIOP リスナ/ハンドラはその IIOP リスナ/ハンドラに送信されるユーザ名とクライアント・アプリケーション名で CORBA クライアント・アプリケーションを登録します。
BEA Tuxedo CORBA セキュリティ環境では、SecurityCurrent オブジェクトのプロパティとして PrincipalAuthenticator と Credentials だけがサポートされます。SecurityLevel1::Current
インターフェイスと SecurityLevel2::Current
インターフェイスの詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA プログラミング・リファレンス』を参照してください。
セキュリティのしくみ
図 4-1 は、BEA Tuxedo ドメインの CORBA セキュリティのしくみを示しています。
図4-1 BEA Tuxedo ドメインの CORBA セキュリティのしくみ
CORBA セキュリティは、次のステップで実現されます。
Tobj::PrincipalAuthenticator::get_auth_type()
メソッドを使用して
BEA Tuxedo ドメインの認証レベルを取得します。
Tobj::PrincipalAuthenticator::logon()
メソッドを使用し、適切な認証
情報で BEA Tuxedo ドメインにログオンします。
注記 BEA Tuxedo CORBA では、CORBA インターオペラブル・ネーミング・サービス (INS) を利用してもセキュリティ・サービスの初期オブジェクト・リファレンスを取得できます。INS ブートストラップ処理メカニズムについては、『BEA Tuxedo CORBA プログラミング・リファレンス』を参照してください。
Security サンプル・アプリケーション
Security サンプル・アプリケーションは、パスワード認証を使用する方法を例示します。Security サンプル・アプリケーションでは、そのアプリケーションを使用する学生ごとに ID とパスワードが必要です。Security サンプル・アプリケーションは次のように機能します。
logon()
オペレーションがあります。このオペレーションでは、ドメインにログオンする過程で取得される PrincipalAuthenticator オブジェクトのオペレーションが呼び出されます。Registrar
オブジェクトの get_student_details()
オペレーションがインプリメントされます。ユーザが認証された後、ログオンが完了し、get_student_details()
オペレーションがクライアントのログオン処理で必要な学生情報を取得するためにデータベースの学生情報にアクセスします。注記 証明書の認証は、Secure Simpapp サンプル・アプリケーションで説明されます。
図 4-2 は、Security サンプル・アプリケーションを示しています。
図4-2 Security サンプル・アプリケーション
Security サンプル・アプリケーションのソース・ファイルは、BEA Tuxedo ソフトウェアの \samples
\corba
\university
ディレクトリにあります。Security サンプル・アプリケーションのビルドと実行については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
開発手順
表 4-1 は、認証セキュリティを採用する BEA Tuxedo CORBA アプリケーションの開発手順を示しています。
手順 |
説明 |
---|---|
1 |
コンフィギュレーション・ファイルでセキュリティ・レベルを定義します。 |
2 |
CORBA クライアント・アプリケーションを記述します。 |
ステップ 1: コンフィギュレーション・ファイルでのセキュリティ・レベルの定義
BEA Tuxedo ドメインのセキュリティ・レベルは、コンフィギュレーション・ファイルの RESOURCES
セクションの SECURITY
パラメータを目的のセキュリティ・レベルに設定することで定義します。表 4-2 は、SECURITY
パラメータのオプションを示しています。
Security サンプル・アプリケーションでは、SECURITY
パラメータが APP_PW
(アプリケーション・レベルのセキュリティ) に設定されます。BEA Tuxedo CORBA アプリケーションにセキュリティを追加する方法については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
ステップ 2: CORBA クライアント・アプリケーションの記述
次の処理を実行するクライアント・アプリケーション・コードを記述します。
get_auth_type()
オペレーションを
使用して、BEA Tuxedo ドメインが想定するタイプの認証を返します。
リスト 4-1 と リスト 4-2 は Security サンプル・アプリケーションの CORBA C++ クライアント・アプリケーションと CORBA Java クライアント・アプリケーションの一部分であり、セキュリティの開発手順を示しています。
リスト 4-1 CORBA C++ クライアント・アプリケーションのセキュリティの例
CORBA::Object_var var_security_current_oref =
bootstrap.resolve_initial_references("SecurityCurrent");
SecurityLevel2::Current_var var_security_current_ref =
SecurityLevel2::Current::_narrow(var_security_current_oref.in());
//PrincipalAuthenticator を取得
SecurityLevel2::PrincipalAuthenticator_var var_principal_authenticator_oref =
var_security_current_ref->principal_authenticator();
//PrincipalAuthenticator をナロー変換
Tobj::PrincipalAuthenticator_var var_bea_principal_authenticator =
Tobj::PrincipalAuthenticator::_narrow (
var_principal_authenticator_oref.in());
//セキュリティ・レベルを指定
Tobj::AuthType auth_type = var_bea_principal_authenticator->get_auth_type();
Security::AuthenticationStatus status = var_bea_principalauthenticator->logon(
user_name,
client_name,
system_password,
user_password,
0);
リスト 4-2 CORBA Java クライアント・アプリケーションのセキュリティの例
org.omg.CORBA.Object SecurityCurrentObj =
gBootstrapObjRef.resolve_initial_references("SecurityCurrent");
org.omg.SecurityLevel2.Current secCur =
org.omg.SecurityLevel2.CurrentHelper.narrow(SecurityCurrentObj);
//PrincipalAuthenticator を取得
org.omg.SecurityLevel2.PrincipalAuthenticator authlevel2 =
secCur.principal_authenticator();
//PrincipalAuthenticator をナロー変換
com.beasys.Tobj.PrincipalAuthenticatorObjRef gPrinAuthObjRef =
(com.beasys.Tobj.PrincipalAuthenticator)
org.omg.SecurityLevel2.PrincipalAuthenticatorHelper.narrow(authlevel2);
//セキュリティ・レベルを指定
com.beasys.Tobj.Authtype authType = gPrinAuthObjRef.get_auth_type();
org.omg.Security.AuthenticationStatus status = gPrinAuthObjRef.logon
(gUserName, ClientName, gSystemPassword, gUserPassword,0);
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|