|
ここでは、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() メソッドがサポートされます。
HRESULT get_attributes(
[in] VARIANT attributes,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] VARIANT* returnValue);
Function get_attributes(attributes, [exceptionInfo])
attributes
exceptioninfo
このメソッドは、クライアント アプリケーションに対する資格の特権などの属性を Current インタフェースから取得します。
DISecurity_SecAttribute オブジェクトの配列を含むバリアント。次の表は、有効な戻り値について説明しています。
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 の呼び出しで取得済みになっている必要があります。
cred_type
cred
exceptioninfo
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 が発生します。
cred_type
exceptioninfo
クライアント アプリケーションのみのアクティブな資格用の DISecurityLevel2_Credentials オブジェクト。
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 オブジェクトは、Oracle Tuxedo ドメインに対するログインおよびログアウトに使用します。Oracle Tuxedo ソフトウェアのこのリリースでは、authenticate メソッド、build_auth_data() メソッド、continue_authentication() メソッド、get_auth_type() メソッド、logon() メソッド、および logoff() メソッドが実装されています。
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
method
security_name
auth_data
DITobj_PrincipalAuthenticator.build_auth_data によって返されます。auth_data が無効な場合、authenticate で CORBA::BAD_PARAM が発生します。
privileges
DITobj_PrincipalAuthenticator.build_auth_data によって返されます。privileges が無効な場合、authenticate で CORBA::BAD_PARAM が発生します。
creds
continuation_data
auth_specific_data
exceptioninfo
説明
このメソッドは、クライアント アプリケーションが Oracle Tuxedo ドメインにアクセスできるように IIOP リスナ/ハンドラを介してクライアント アプリケーションを認証します。
Security_AuthenticationStatus Enum 値。次の表は、有効な戻り値について説明しています。
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])
引数
user_name
client_name
system_password
user_password
user_data
auth_data
privileges
exceptioninfo
| 注意 : | 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 が発生します。 |
常に 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 を返します。
Oracle Tuxedo ドメインによって予測されている認証のタイプを取得します。
HRESULT get_auth_type(
[in, out, optional] VARIANT* exceptionInfo,
[out, retval] Tobj_AuthType* returnValue);
Function get_auth_type([exceptionInfo]) As Tobj_AuthType
exceptioninfo
このメソッドは、Oracle Tuxedo ドメインによって予測されている認証のタイプを返します。
| 注意 : | このメソッドが無効な SecurityCurrent オブジェクトで呼び出された場合、CORBA::BAD_INV_ORDER が発生します。 |
Tobj_AuthType 列挙へのリファレンス。次の表は、有効な戻り値について説明しています。
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 と同じ機能ですが、パラメータはセキュリティ指向です。
user_name
client_name
user_password
TOBJ_APPAUTH 認証レベルで必須です。
| 注意 : | user_name、client_name、または system_password が NULL または空の場合、あるいは 30 文字を超えている場合、以降の authenticate メソッド呼び出しで CORBA::BAD_PARAM 例外が発生します。 |
| 注意 : | 認可レベルが TOBJ_APPAUTH の場合、user_password または user_data のいずれか 1 つを提供できます。 |
exceptioninfo
CORBA クライアント アプリケーションに関連付けられた現在のセキュリティ コンテキストを破棄します。
HRESULT logoff([in, out, optional] VARIANT* exceptionInfo);
この呼び出しは、CORBA クライアント アプリケーションに関連付けられたコンテキストを破棄しますが、Oracle Tuxedo ドメインへのネットワーク接続を閉じません。Logoff でも、現在の資格を無効化できます。認証タイプが TOBJ_NOAUTH でない場合、ログオフした後の既存のオブジェクト参照を使用した呼び出しは失敗します。
クライアント アプリケーションが現在 Oracle Tuxedo ドメインに対して認証されている場合、Tobj_Bootstrap.destroy_current() を呼び出すと、暗黙的に logoff が呼び出されます。
exceptioninfo
DISecurityLevel2_Credentials オブジェクトは、CORBA セキュリティ モデルの Oracle 実装です。Oracle Tuxedo ソフトウェアのこのリリースでは、get_attributes() メソッドおよび is_valid() メソッドがサポートされます。
HRESULT get_attributes(
[in] VARIANT attributes,
[in,out,optional] VARIANT* exceptionInfo,
[out,retval] VARIANT* returnValue);
Function get_attributes(attributes, [exceptionInfo])
attributes
exceptioninfo
このメソッドは、クライアント アプリケーションの資格に添付された属性リストを返します。属性タイプのリストでは、AttributeList に返す属性タイプの値だけを含める必要があります。属性は現在、属性ファミリまたは ID に基づいて返されません。ほとんどの場合、どのインスタンスでもクライアント アプリケーションの資格の有効なセットは 1 つしかないので、これは、DISecurityLevel2.Current::get_attributes() を呼び出した場合と同じ結果です。結果は、資格が使用中でない場合には異なる可能性があります。
DISecurity_SecAttribute オブジェクトの配列を含むバリアント。
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 が出力されます。
|