Tuxedo CORBA アプリケーション入門

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

セキュリティの使い方

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

注意: この章では、認証の使い方を説明します。CORBA セキュリティ環境で利用可能なセキュリティ機能の説明、およびそれらの機能を実装する方法については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
注意 : BEA Tuxedo CORBA Java クライアントと BEA Tuxedo CORBA Java クライアント ORB は Tuxedo 8.1 で非推奨になり、今後はサポートされなくなりました。BEA Tuxedo CORBA Java クライアントおよび BEA Tuxedo CORBA Java クライアント ORB のテキスト参照、関連するコード サンプルはすべてサードパーティの Java ORB ライブラリの実装/実行の簡易化とプログラマによる参照だけに使用する必要があります。
注意 : サード パーティの CORBA Java ORB のテクニカル サポートは、各ベンダによって提供されます。BEA Tuxedo では、サード パーティの CORBA Java ORB に関する技術的なサポートやマニュアルは提供していません。

 


セキュリティ サービスの概要

BEA Tuxedo 製品の CORBA 環境では、CORBA サービスのセキュリティ サービスに基づくセキュリティ モデルが提供されます。BEA Tuxedo CORBA のセキュリティ モデルでは、CORBA サービスのセキュリティ サービスの認証部分が実装されます。

CORBA 環境では、ドメイン単位でセキュリティ情報を定義します。ドメインのセキュリティ レベルは、コンフィグレーション ファイルで定義します。クライアント アプリケーションでは、SecurityCurrent オブジェクトを使用して BEA Tuxedo ドメインにログオンするための認証情報を提示します。

利用できる認証レベルは以下のとおりです。

注意 : クライアント アプリケーションが認証を受けず、セキュリティ レベルが TOBJ_NOAUTH の場合、BEA Tuxedo ドメインの IIOP リスナ/ハンドラはその IIOP リスナ/ハンドラに送信されるユーザ名とクライアント アプリケーション名で CORBA クライアント アプリケーションを登録します。

BEA Tuxedo CORBA セキュリティ環境では、SecurityCurrent オブジェクトのプロパティとして PrincipalAuthenticator と Credentials だけがサポートされます。SecurityLevel1::Current インタフェースと SecurityLevel2::Current インタフェースの詳細については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA プログラミング リファレンス』を参照してください。

 


セキュリティのしくみ

図 4-1 は、BEA Tuxedo ドメインの CORBA セキュリティのしくみを示しています。

図 4-1 BEA Tuxedo ドメインの CORBA セキュリティのしくみ

BEA Tuxedo ドメインの CORBA セキュリティのしくみ

CORBA セキュリティは、次のステップで実現されます。

  1. クライアント アプリケーションが、Bootstrap オブジェクトを使用して BEA Tuxedo ドメインの SecurityCurrent オブジェクトのオブジェクト参照を取得します。
  2. クライアント アプリケーションが、PrincipalAuthenticator を取得します。
  3. クライアント アプリケーションが、Tobj::PrincipalAuthenticator::get_auth_type() メソッドを使用して BEA Tuxedo ドメインの認証レベルを取得します。
  4. 適切な認証レベルがクライアント アプリケーションに返されます。
  5. クライアント アプリケーションが Tobj::PrincipalAuthenticator::logon() メソッドを使用し、適切な認証情報で BEA Tuxedo ドメインにログオンします。
注意 : BEA Tuxedo CORBA では、CORBA Interoperable Naming Service (INS) を利用してもセキュリティ サービスの初期オブジェクト参照を取得できます。INS ブートストラップ処理メカニズムについては、『Tuxedo CORBA プログラミング リファレンス』を参照してください。

 


Security サンプル アプリケーション

Security サンプル アプリケーションは、パスワード認証を使用する方法を例示します。Security サンプル アプリケーションでは、そのアプリケーションを使用する学生ごとに ID とパスワードが必要です。Security サンプル アプリケーションは、以下のように動作します。

注意 : 証明書の認証は、Secure Simpapp サンプル アプリケーションで説明されます。

図 4-2 では、Security サンプル アプリケーションのしくみを示します。

図 4-2 Security サンプル アプリケーション

Security サンプル アプリケーション

Security サンプル アプリケーションのソース ファイルは、BEA Tuxedo ソフトウェアの \samples\corba\university ディレクトリにあります。Security サンプル アプリケーションのビルドと実行については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

 


開発手順

表 4-1 は、認証セキュリティを採用する BEA Tuxedo CORBA アプリケーションの開発手順を示しています。

表 4-1 セキュリティを備える BEA Tuxedo CORBA アプリケーションの開発手順
手順
説明
1
コンフィグレーション ファイルでセキュリティ レベルを定義します。
2
CORBA クライアント アプリケーションを記述します。

ステップ 1: コンフィグレーション ファイルでのセキュリティ レベルの定義

BEA Tuxedo ドメインのセキュリティ レベルは、コンフィグレーション ファイルの RESOURCES セクションの SECURITY パラメータを目的のセキュリティ レベルに設定することで定義します。表 4-2 は、SECURITY パラメータのオプションを示しています。

表 4-2 SECURITY パラメータのオプション
オプション
説明
NONE
ドメインでセキュリティは実装されません。このオプションはデフォルトです。このオプションは、TOBJ_NOAUTH レベルの認証に対応します。
APP_PW
クライアント アプリケーションでは、初期化時にアプリケーション パスワードを提示することが必要です。tmloadcf コマンドでは、アプリケーション パスワードの入力が要求されます。このオプションは、TOBJ_SYSAUTH レベルの認証に対応します。
USER_AUTH
アプリケーション パスワードが必要です。クライアント アプリケーションの初期化時にユーザ単位の認証が実行されます。このオプションは、TOBJ_APPAUTH レベルの認証に対応します。

Security サンプル アプリケーションの場合、SECURITY パラメータをアプリケーション レベルのセキュリティの APP_PW に設定します。BEA Tuxedo CORBA アプリケーションにセキュリティを追加する方法については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

ステップ 2: CORBA クライアント アプリケーションの記述

次の処理を実行するクライアント アプリケーション コードを記述します。

  1. Bootstrap オブジェクトを使用し、指定した BEA Tuxedo ドメインで SecurityCurrent オブジェクトのリファレンスを取得します。
  2. SecurityCurrent オブジェクトから PrincipalAuthenticator オブジェクトを取得します。
  3. PrincipalAuthenticator オブジェクトの get_auth_type() オペレーションを使用して、BEA Tuxedo ドメインが想定するタイプの認証を返します。

コード リスト 4-1 は Security サンプル アプリケーションの CORBA C++ クライアント アプリケーションの一部分であり、セキュリティの開発手順を示しています。

コード リスト 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);

  ページの先頭       前  次