|
注意: | この章では、認証の使い方を説明します。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
認証はまったく必要ありません。ただし、クライアント アプリケーションは認証を受け、ユーザ名とクライアント アプリケーション名を指定することができます。パスワードは不要です。
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 オンライン マニュアルの『Tuxedo CORBA プログラミング リファレンス』を参照してください。
図 4-1 は、BEA Tuxedo ドメインの CORBA セキュリティのしくみを示しています。
Tobj::PrincipalAuthenticator::get_auth_type()
メソッドを使用して BEA Tuxedo ドメインの認証レベルを取得します。Tobj::PrincipalAuthenticator::logon()
メソッドを使用し、適切な認証情報で BEA Tuxedo ドメインにログオンします。注意 : | BEA Tuxedo CORBA では、CORBA Interoperable Naming Service (INS) を利用してもセキュリティ サービスの初期オブジェクト参照を取得できます。INS ブートストラップ処理メカニズムについては、『Tuxedo CORBA プログラミング リファレンス』を参照してください。 |
Security サンプル アプリケーションは、パスワード認証を使用する方法を例示します。Security サンプル アプリケーションでは、そのアプリケーションを使用する学生ごとに ID とパスワードが必要です。Security サンプル アプリケーションは、以下のように動作します。
logon()
オペレーションがあります。このオペレーションでは、ドメインにログオンする過程で取得される PrincipalAuthenticator オブジェクトのオペレーションが呼び出されます。Registrar
オブジェクトの get_student_details()
オペレーションが実装されます。ユーザが認証された後、ログオンが完了し、get_student_details()
オペレーションがクライアントのログオン処理で必要な学生情報を取得するためにデータベースの学生情報にアクセスします。注意 : | 証明書の認証は、Secure Simpapp サンプル アプリケーションで説明されます。 |
図 4-2 では、Security サンプル アプリケーションのしくみを示します。
Security サンプル アプリケーションのソース ファイルは、BEA Tuxedo ソフトウェアの \samples\corba\university
ディレクトリにあります。Security サンプル アプリケーションのビルドと実行については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
表 4-1 は、認証セキュリティを採用する BEA Tuxedo CORBA アプリケーションの開発手順を示しています。
BEA Tuxedo ドメインのセキュリティ レベルは、コンフィグレーション ファイルの RESOURCES
セクションの SECURITY
パラメータを目的のセキュリティ レベルに設定することで定義します。表 4-2 は、SECURITY
パラメータのオプションを示しています。
Security サンプル アプリケーションの場合、SECURITY
パラメータをアプリケーション レベルのセキュリティの APP_PW
に設定します。BEA Tuxedo CORBA アプリケーションにセキュリティを追加する方法については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
次の処理を実行するクライアント アプリケーション コードを記述します。
コード リスト 4-1 は Security サンプル アプリケーションの 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);