注意:
|
この章では、認証の使用方法を説明します。CORBAセキュリティ環境で利用可能なセキュリティ機能の説明、およびそれらの機能を実装する方法については、Oracle Tuxedoオンライン・ドキュメントの 『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
|
Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、サポートされなくなりました。Oracle Tuxedo CORBA JavaクライアントおよびOracle Tuxedo CORBA JavaクライアントORBのテキスト参照、関連するコード・サンプルはすべて、サード・パーティのJava ORBライブラリの実装/実行の支援と、プログラマによる参照のみに使用する必要があります。
サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。
Oracle Tuxedo製品のCORBA環境では、CORBAサービスのセキュリティ・サービスに基づくセキュリティ・モデルが提供されます。Oracle Tuxedo CORBAのセキュリティ・モデルでは、CORBAサービスのセキュリティ・サービスの認証部分が実装されます。
CORBA環境では、ドメイン単位でセキュリティ情報を定義します。ドメインのセキュリティ・レベルは、構成ファイルで定義します。クライアント・アプリケーションでは、SecurityCurrentオブジェクトを使用してOracle Tuxedoドメインにログオンするための認証情報を提示します。
認証はまったく必要ありません。ただし、クライアント・アプリケーションは認証を受け、ユーザー名とクライアント・アプリケーション名を指定することができます。パスワードは不要です。
クライアント・アプリケーションはOracle Tuxedoドメインの認証を受け、ユーザー名、クライアント・アプリケーション名、およびアプリケーション・パスワードを指定する必要があります。
TOBJ_SYSAUTH情報のほかに、クライアント・アプリケーションはアプリケーション固有の情報を指定する必要があります。デフォルトのOracle Tuxedo CORBA認証サービスがアプリケーション構成で使用される場合、クライアント・アプリケーションはユーザー・パスワードを指定する必要があります。それ以外の場合、クライアント・アプリケーションはそのアプリケーションのカスタム認証サービスによって解釈される認証データを指定します。
注意:
|
クライアント・アプリケーションが認証を受けず、セキュリティ・レベルが TOBJ_NOAUTHの場合、Oracle TuxedoドメインのIIOPリスナー/ハンドラはそのIIOPリスナー/ハンドラに送信されるユーザー名とクライアント・アプリケーション名にクライアント・アプリケーションを登録します。
|
Oracle Tuxedo CORBAセキュリティ環境では、SecurityCurrentオブジェクトのプロパティとしてPrincipalAuthenticatorと資格証明だけがサポートされます。
SecurityLevel1::Currentインタフェースと
SecurityLevel2::Currentインタフェースの詳細は、Oracle Tuxedoオンライン・ドキュメントの
『CORBAプログラミング・リファレンス』を参照してください。
図4-1は、Oracle TuxedoドメインのCORBAセキュリティのしくみを示しています。
1.
|
クライアント・アプリケーションが、Bootstrapオブジェクトを使用してOracle TuxedoドメインのSecurityCurrentオブジェクトのオブジェクト参照を取得します。
|
2.
|
クライアント・アプリケーションが、PrincipalAuthenticatorを取得します。
|
3.
|
クライアント・アプリケーションが、 Tobj::PrincipalAuthenticator::get_auth_type()メソッドを使用してOracle Tuxedoドメインの認証レベルを取得します。
|
4.
|
適切な認証レベルがクライアント・アプリケーションに返されます。
|
5.
|
クライアント・アプリケーションが Tobj::PrincipalAuthenticator::logon()メソッドを使用し、適切な認証情報でOracle Tuxedoドメインにログオンします。
|
注意:
|
Oracle Tuxedo CORBAでは、CORBA Interoperable Naming Service (INS)を利用してもセキュリティ・サービスの初期オブジェクト参照を取得できます。INSブートストラップ処理メカニズムについては、 『CORBAプログラミング・リファレンス』を参照してください。
|
Securityサンプル・アプリケーションは、パスワード認証を使用する方法を例示します。Securityサンプル・アプリケーションでは、そのアプリケーションを使用する学生ごとにIDとパスワードが必要です。Securityサンプル・アプリケーションは、以下のように動作します。
•
|
クライアント・アプリケーションには logon()操作があります。この操作では、ドメインにログオンする過程で取得されるPrincipalAuthenticatorオブジェクトの操作が呼び出されます。
|
•
|
サーバー・アプリケーションでは、学生についての情報を戻す Registrarオブジェクトの get_student_details()操作が実装されます。ユーザーが認証された後、ログオンが完了し、 get_student_details()操作がクライアントのログオン処理で必要な学生情報を取得するためにデータベースの学生情報にアクセスします。
|
•
|
Securityサンプル・アプリケーションのデータベースには、コースと学生に関する情報が格納されています。
|
注意:
|
証明書の認証は、Secure Simpappサンプル・アプリケーションで説明されます。
|
図4-2に、Securityサンプル・アプリケーションを示します。
Securityサンプル・アプリケーションのソース・ファイルは、Oracle Tuxedoソフトウェアの
\samples\corba\universityディレクトリにあります。Securityサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの
『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
表4-1は、認証セキュリティを採用するOracle Tuxedo CORBAアプリケーションの開発手順を示しています。
表4-1
セキュリティを備えるOracle Tuxedo CORBAアプリケーションの開発手順
|
|
|
|
|
CORBAクライアント・アプリケーションを記述します。
|
ステップ1:構成ファイルでのセキュリティ・レベルの定義
Oracle Tuxedoドメインのセキュリティ・レベルは、構成ファイルの
RESOURCESセクションの
SECURITYパラメータを目的のセキュリティ・レベルに設定することで定義します。
表4-2は、
SECURITYパラメータのオプションを示しています。
|
|
|
ドメインでセキュリティは実装されません。このオプションはデフォルトです。このオプションは、 TOBJ_NOAUTHレベルの認証に対応します。
|
|
クライアント・アプリケーションでは、初期化時にアプリケーション・パスワードを提示することが必要です。 tmloadcfコマンドでは、アプリケーション・パスワードの入力が要求されます。このオプションは、 TOBJ_SYSAUTHレベルの認証に対応します。
|
|
アプリケーション・パスワードが必要です。クライアント・アプリケーションの初期化時にユーザー単位の認証が実行されます。このオプションは、 TOBJ_APPAUTHレベルの認証に対応します。
|
Securityサンプル・アプリケーションの場合、
SECURITYパラメータをアプリケーション・レベルのセキュリティの
APP_PWに設定します。Oracle Tuxedo CORBAアプリケーションにセキュリティを追加する方法については、Oracle Tuxedoオンライン・ドキュメントの
『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
ステップ2: CORBAクライアント・アプリケーションの記述
次の処理を実行するクライアント・アプリケーション・コードを記述します。
1.
|
Bootstrapオブジェクトを使用し、指定したOracle TuxedoドメインでSecurityCurrentオブジェクトのリファレンスを取得します。
|
2.
|
SecurityCurrentオブジェクトからPrincipalAuthenticatorオブジェクトを取得します。
|
3.
|
PrincipalAuthenticatorオブジェクトの get_auth_type()操作を使用して、Oracle 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());
//Get the PrincipalAuthenticator
SecurityLevel2::PrincipalAuthenticator_var var_principal_authenticator_oref =
var_security_current_ref->principal_authenticator();
//Narrow the PrincipalAuthenticator
Tobj::PrincipalAuthenticator_var var_bea_principal_authenticator =
Tobj::PrincipalAuthenticator::_narrow (
var_principal_authenticator_oref.in());
//Determine the security level
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);