注意: | この章では、認証の使用方法を説明します。CORBAセキュリティ環境で利用可能なセキュリティ機能の説明、およびそれらの機能を実装する方法については、Oracle Tuxedoオンライン・ドキュメントの『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ドメインにログオンするための認証情報を提示します。
TOBJ_NOAUTH
認証はまったく必要ありません。ただし、クライアント・アプリケーションは認証を受け、ユーザー名とクライアント・アプリケーション名を指定することができます。パスワードは不要です。
TOBJ_SYSAUTH
クライアント・アプリケーションはOracle Tuxedoドメインの認証を受け、ユーザー名、クライアント・アプリケーション名、およびアプリケーション・パスワードを指定する必要があります。
TOBJ_APPAUTH
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セキュリティのしくみを示しています。
Tobj::PrincipalAuthenticator::get_auth_type()
メソッドを使用してOracle Tuxedoドメインの認証レベルを取得します。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()
オペレーションがクライアントのログオン処理で必要な学生情報を取得するためにデータベースの学生情報にアクセスします。注意: | 証明書の認証は、Secure Simpappサンプル・アプリケーションで説明されます。 |
図4-2では、Securityサンプル・アプリケーションのしくみを示します。
Securityサンプル・アプリケーションのソース・ファイルは、Oracle Tuxedoソフトウェアの\samples\corba\university
ディレクトリにあります。Securityサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの『Tuxedo CORBAアプリケーションのセキュリティ機能』を参照してください。
表4-1は、認証セキュリティを採用するOracle Tuxedo CORBAアプリケーションの開発手順を示しています。
Oracle Tuxedoドメインのセキュリティ・レベルは、構成ファイルのRESOURCES
セクションのSECURITY
パラメータを目的のセキュリティ・レベルに設定することで定義します。表4-2は、SECURITY
パラメータのオプションを示しています。
Securityサンプル・アプリケーションの場合、SECURITY
パラメータをアプリケーション・レベルのセキュリティのAPP_PW
に設定します。Oracle Tuxedo CORBAアプリケーションにセキュリティを追加する方法については、Oracle 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());
//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);