ここでは、CORBAセキュリティのオートメーション・メソッドについて説明します。ここでは、次の内容について説明します。
注意:
|
オートメーション・セキュリティ・メソッドは、証明書による認証またはSSLプロトコルの使用をサポートしません。
|
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に関する技術的なサポートまたはドキュメントは提供していません。
ここでは、オートメーション・セキュリティ・サービスのメソッドについて説明します。
DISecurityLevel2_Currentオブジェクトは、CORBAセキュリティ・モデルのOracle実装です。Oracle Tuxedoソフトウェアのこのリリースでは、
get_attributes()メソッド、
set_credentials()メソッド、
get_credentials()メソッド、および
Principal_Authenticator()メソッドがサポートされます。
DISecurityLevel2_Current.get_attributes
HRESULT get_attributes(
[in] VARIANT attributes,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] VARIANT* returnValue);
Function get_attributes(attributes, [exceptionInfo])
値が必要とされているセキュリティ属性(権限属性タイプ)のセット。このリストが空の場合は、すべての属性が返されます。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
このメソッドは、クライアント・アプリケーションに対する資格証明の権限などの属性をCurrentインタフェースから取得します。
DISecurity_SecAttributeオブジェクトの配列を含むバリアント。次の表は、有効な戻り値について説明しています。
|
|
|
空(認証が実行されなかった場合は、Publicが返されます。)
|
|
Oracle Tuxedoユーザー名を含むNULL終了ASCII文字列。
|
|
Oracle Tuxedoクライアント・アプリケーション名を含むNULL終了ASCII文字列。
|
DISecurityLevel2_Current.set_credentials
HRESULT set_credentials(
[in] Security_CredentialType cred_type,
[in] DISecurityLevel2_Credentials* cred,
[in,out,optional] VARIANT* exceptionInfo);
Sub set_credentials(cred_type As Security_CredentialType,
cred As DISecurityLevel2_Credentials,
[exceptionInfo])
このメソッドは、
SecInvocationCredentialsの設定にのみ使用できます。それ以外の場合に使用すると、
set_credentialsで
CORBA::BAD_PARAMが発生します。資格証明は、以前の
DISecurityLevel2_Current.get_credentialsへの呼出しで取得済になっている必要があります。
設定する資格証明のタイプ(invocation、own、またはnon-repudiation)。
Credentialsオブジェクトに対するオブジェクト参照。これがデフォルトになります。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
DISecurityLevel2_Current.get_credentials
HRESULT get_credentials(
[in] Security_CredentialType cred_type,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] DISecurityLevel2_Credentials** returnValue);
Function get_credentials(cred_type As Security_CredentialType,
[exceptionInfo]) As DISecurityLevel2_Credentials
この呼出しは、
SecInvocationCredentialsの取得にのみ使用できます。それ以外の場合に使用すると、
get_credentialsで
CORBA::BAD_PARAMが発生します。資格証明を使用できない場合、
get_credentialsで
CORBA::BAD_INV_ORDERが発生します。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
クライアント・アプリケーションのみのアクティブな資格証明用の
DISecurityLevel2_Credentialsオブジェクト。
DISecurityLevel2_Current.principal_authenticator
PrincipalAuthenticatorを返します。
HRESULT principal_authenticator([out, retval]
DITobj_PrincipalAuthenticator** returnValue);
Property principal_authenticator As DITobj_PrincipalAuthenticator
principal_authenticatorプロパティによって返された
PrincipalAuthenticatorは、実際の型
DITobj_PrincipalAuthenticatorによるものです。したがって、これは
DISecurityLevel2_PrincipalAuthenticatorとして使用できます。
注意:
|
このメソッドが無効なSecurityCurrentオブジェクトで呼び出された場合、 CORBA::BAD_INV_ORDERが発生します。
|
DITobj_PrincipalAuthenticatorオブジェクト。
DITobj_PrincipalAuthenticator
DITobj_PrincipalAuthenticatorオブジェクトは、Oracle Tuxedoドメインに対するログインおよびログアウトに使用します。Oracle Tuxedoソフトウェアのこのリリースでは、
authenticateメソッド、
build_auth_data()メソッド、
continue_authentication()メソッド、
get_auth_type()メソッド、
logon()メソッド、および
logoff()メソッドが実装されています。
DITobj_PrincipalAuthenticator.authenticate
HRESULT authenticate(
[in] long method,
[in] BSTR security_name,
[in] VARIANT auth_data,
[in] VARIANT privileges,
[out] DISecurityLevel2_Credentials**
creds,
[out] VARIANT* continuation_data,
[out] VARIANT* auth_specific_data,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] Security_AuthenticationStatus* returnValue);
Function authenticate(method As Long, security_name As String,
auth_data, privileges, creds As DISecurityLevel2_Credentials,
continuation_data, auth_specific_data,
[exceptionInfo]) As Security_AuthenticationStatus
Tobj::TuxedoSecurityでなければなりません。
methodが
無効な場合、
authenticateで
CORBA::BAD_PARAMが発生します。
DITobj_PrincipalAuthenticator.build_auth_dataによって返されます。
auth_dataが無効な場合、
authenticateで
CORBA::BAD_PARAMが発生します。
DITobj_PrincipalAuthenticator.build_auth_dataによって返されます。
privilegesが無効な場合、
authenticateで
CORBA::BAD_PARAMが発生します。
SecurityCurrentオブジェクトに配置されます。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
このメソッドは、クライアント・アプリケーションがOracle TuxedoドメインにアクセスできるようにIIOPリスナー/ハンドラを介してクライアント・アプリケーションを認証します。
Security_AuthenticationStatus列挙値。次の表は、有効な戻り値について説明しています。
|
|
Security::AuthenticationStatus:: SecAuthSuccess
|
|
Security::AuthenticationStatus:: SecAuthFailure
|
認証が失敗したか、またはクライアント・アプリケーションがすでに認証済で、 Tobj::PrincipalAuthenticator:logoffまたは Tobj_Bootstrap::destroy_currentを呼び出さなかったことを示します。
|
DITobj_PrincipalAuthenticator.build_auth_data
DITobj_PrincipalAuthenticator.authenticateで使用する認証データと属性を作成します。
HRESULT build_auth_data(
[in] BSTR user_name,
[in] BSTR client_name,
[in] BSTR system_password,
[in] BSTR user_password,
[in] VARIANT user_data,
[out] VARIANT* auth_data,
[out] VARIANT* privileges,
[in,out,optional] VARIANT* exceptionInfo);
Sub build_auth_data(user_name As String, client_name As String,
system_password As String, user_password As String, user_data,
auth_data, privileges, [exceptionInfo])
CORBAクライアント・アプリケーションのパスワードです。
デフォルト認証サービスのユーザー・パスワードです。
カスタム認証サービスで使用するクライアント・アプリケーション固有のデータです。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
注意:
|
user_name、 client_name、または system_passwordがNULLまたは空の場合、あるいは30文字を超えている場合、以降の authenticateメソッド呼出しで CORBA::BAD_PARAM例外が発生します。
|
注意:
|
user_passwordパラメータと user_dataパラメータは相互に排他的であり、Oracle Tuxedoドメインの構成で使用する認証サービスの要件によってどちらを使用するかが決まります。デフォルトの認証サービスにはユーザー・パスワードが必要です。カスタマイズされた認証サービスにはユーザー・データが必要です。 user_passwordと user_dataの両方が指定されている場合、後続の認証呼出しで CORBA::BAD_PARAM例外が発生します。
|
このメソッドは、
DITobj_PrincipalAuthenticator.authenticateで使用する認証データと属性を作成するヘルパー関数です。
注意:
|
このメソッドが無効なSecurityCurrentオブジェクトで呼び出された場合、 CORBA::BAD_INV_ORDERが発生します。
|
DITobj_PrincipalAuthenticator.continue_authentication
常に
Security::AuthenticationStatus::SecAuthFailureを返します。
HRESULT continue_authentication(
[in] VARIANT response_data,
[in,out] DISecurityLevel2_Credentials** creds,
[out] VARIANT* continuation_data,
[out] VARIANT* auth_specific_data,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] Security_AuthenticationStatus* returnValue);
Function continue_authentication(response_data,
creds As DISecurityLevel2_Credentials, continuation_data,
auth_specific_data, [exceptionInfo]) As
Security_AuthenticationStatus
Oracle Tuxedoソフトウェアは1つの手順で認証を実行するため、このメソッドは常に失敗し、
Security::AuthenticationStatus::SecAuthFailureを返します。
DITobj_PrincipalAuthenticator.get_auth_type
Oracle Tuxedoドメインによって予測されている認証のタイプを取得します。
HRESULT get_auth_type(
[in, out, optional] VARIANT* exceptionInfo,
[out, retval] Tobj_AuthType* returnValue);
Function get_auth_type([exceptionInfo]) As Tobj_AuthType
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
このメソッドは、Oracle Tuxedoドメインによって予測されている認証のタイプを返します。
注意:
|
このメソッドが無効なSecurityCurrentオブジェクトで呼び出された場合、 CORBA::BAD_INV_ORDERが発生します。
|
Tobj_AuthType列挙への参照。次の表は、有効な戻り値について説明しています。
|
|
|
認証はまったく必要ありません。ただし、クライアント・アプリケーションは、ユーザー名とクライアント・アプリケーション名を指定することで認証を受けることができます。パスワードは不要です。
このセキュリティ・レベルを指定するには、 UBBCONFIGファイルの RESOURCESセクションにある SECURITYパラメータに NONE値を指定します。
|
|
クライアント・アプリケーションは、Oracle Tuxedoドメインに対して自身を認証する必要があります。また、ユーザー名、クライアント名、およびパスワードを指定する必要があります。
このセキュリティ・レベルを指定するには、 UBBCONFIGファイルの RESOURCESセクションにある SECURITYパラメータに APP_PW値を指定します。
|
|
クライアント・アプリケーションは、Oracle Tuxedoドメインに対してクライアント・アプリケーションを認証する証明資料を提供する必要があります。証明資料は、パスワードまたはデジタル証明書です。
このセキュリティ・レベルを指定するには、 UBBCONFIGファイルの RESOURCESセクションにある SECURITYパラメータに USER_AUTH値を指定します。
|
DITobj_PrincipalAuthenticator.logon
Oracle Tuxedoドメインにログインします。適切な入力パラメータは、認証レベルによって異なります。
HRESULT logon(
[in] BSTR user_name,
[in] BSTR client_name,
[in] BSTR system_password,
[in] BSTR user_password,
[in] VARIANT user_data,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] Security_AuthenticationStatus*
returnValue);
Function logon(user_name As String, client_name As String,
system_password As String, user_password As String,
user_data, [exceptionInfo]) As Security_AuthenticationStatus
リモートCORBAクライアント・アプリケーションの場合、このメソッドは、リモート・クライアント・アプリケーションがOracle TuxedoドメインにアクセスできるようにIIOPリスナー/ハンドラを介してクライアント・アプリケーションを認証します。このメソッドは、
DITobj_PrincipalAuthenticator.authenticateと同じ機能ですが、パラメータはセキュリティ指向です。
Oracle Tuxedoユーザー名です。このパラメータは、
TOBJ_NOAUTH、
TOBJ_SYSAUTH、および
TOBJ_APPAUTH認証レベルで必須です。
CORBAクライアント・アプリケーション名です。このパラメータは、
TOBJ_NOAUTH、
TOBJ_SYSAUTH、および
TOBJ_APPAUTH認証レベルで必須です。
CORBAクライアント・アプリケーションのパスワードです。このパラメータは、
TOBJ_SYSAUTHおよび
TOBJ_APPAUTH認証レベルで必須です。
デフォルト認証サービスのユーザー・パスワードです。このパラメータは、
TOBJ_APPAUTH認証レベルで必須です。
カスタム認証サービスで使用するアプリケーション固有のデータです。このパラメータは、
TOBJ_APPAUTH認証レベルで必須です。
注意:
|
user_name、 client_name、または system_passwordがNULLまたは空の場合、あるいは30文字を超えている場合、以降の authenticateメソッド呼出しで CORBA::BAD_PARAM例外が発生します。
|
注意:
|
認可レベルが TOBJ_APPAUTHの場合、 user_passwordまたは user_dataのいずれか1つを提供できます。
|
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
|
|
Security::AuthenticationStatus:: SecAuthSuccess
|
|
Security::AuthenticationStatus:: SecAuthFailure
|
認証が失敗したか、またはクライアント・アプリケーションがすでに認証済で、次のメソッドのいずれかを呼び出さなかったことを示します。
Tobj::PrincipalAuthenticator:logoff
Tobj_Bootstrap::destroy_current
|
DITobj_PrincipalAuthenticator.logoff
CORBAクライアント・アプリケーションに関連付けられた現在のセキュリティ・コンテキストを破棄します。
HRESULT logoff([in, out, optional] VARIANT* exceptionInfo);
Sub logoff([exceptionInfo])
この呼出しは、CORBAクライアント・アプリケーションに関連付けられたコンテキストを破棄しますが、Oracle Tuxedoドメインへのネットワーク接続を閉じません。
Logoffでも、現在の資格証明を無効化できます。認証タイプが
TOBJ_NOAUTHでない場合、ログオフした後の既存のオブジェクト参照を使用した呼出しは失敗します。
クライアント・アプリケーションが現在Oracle Tuxedoドメインに対して認証されている場合、
Tobj_Bootstrap.destroy_current()を呼び出すと、暗黙的に
logoffが呼び出されます。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
DISecurityLevel2_Credentials
DISecurityLevel2_Credentialsオブジェクトは、CORBAセキュリティ・モデルのOracle実装です。Oracle Tuxedoソフトウェアのこのリリースでは、
get_attributes()メソッドおよび
is_valid()メソッドがサポートされます。
DISecurityLevel2_Credentials.get_attributes
HRESULT get_attributes(
[in] VARIANT attributes,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] VARIANT* returnValue);
Function get_attributes(attributes, [exceptionInfo])
値が必要とされているセキュリティ属性(権限属性タイプ)のセット。このリストが空の場合は、すべての属性が返されます。
エラー発生時にクライアント・アプリケーションが追加例外データを取得できるようにするオプションの入力引数。
このメソッドは、クライアント・アプリケーションの資格証明に添付された属性リストを返します。属性タイプのリストでは、
AttributeListに返す属性タイプの値のみを含める必要があります。属性は現在、属性ファミリまたはIDに基づいて返されません。ほとんどの場合、どのインスタンスでもクライアント・アプリケーションの資格証明の有効なセットは1つのみであるため、これは、
DISecurityLevel2.Current::get_attributes()を呼び出した場合と同じ結果です。結果は、資格証明が使用中でない場合には異なる可能性があります。
DISecurity_SecAttributeオブジェクトの配列を含むバリアント。
DISecurityLevel2_Credentials.is_valid
HRESULT is_valid(
[out] IDispatch** expiry_time,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] VARIANT_BOOL* returnValue
Function is_valid(expiry_time As Object,
[exceptionInfo]) As Boolean
使用された資格がそのときにアクティブな場合、このメソッドは、
TRUEを返します。つまり、
DITobj_PrincipalAuthenticator.logoffまたは
destroy_currentを呼び出していないということです。
DITobj_PrincipalAuthenticator.logoff()の後にこのメソッドが呼び出された場合、
FALSEが返されます。
destroy_current()の後にこのメソッドが呼び出された場合、
CORBA::BAD_INV_ORDER例外が発生します。
DITimeBase_UtcTオブジェクトが
maxに設定された場合に、
expiry_timeが出力されます。