|
|
C++ セキュリティ・リファレンス
ここでは、CORBA セキュリティの C++ メソッドについて説明します。
SecurityLevel1::Current::get_attributes
概要
Current インターフェイスの属性を返します。
OMG IDL
定義
Security::AttributeList get_attributes(
in Security::AttributeTypeList attributes
);
};
引数
attributes
値が必要とされているセキュリティ属性 (権限属性タイプ) のセット。このリストが空の場合は、すべての属性が返されます。
説明
このメソッドは、プリンシパルのクリデンシャルから特権などの属性を Current インターフェイス用に取得します。
戻り値
次の表は、有効な戻り値について説明しています。
戻り値 |
説明 |
---|---|
|
空 (認証が実行されなかった場合は、Public が返されます)。 |
|
BEA Tuxedo ユーザ名を含む NULL 終了 ASCII 文字列。 |
|
BEA Tuxedo プリンシパル名を含む NULL 終了 ASCII 文字列。 |
注記 defining_authority
フィールドは常に空です。UBBCONFIG
ファイルで定義されているセキュリティ・レベルによって、get_attribute
メソッドの一部の値を使用できない場合があります。追加された 2 つの値 (Group Id
および Role
) は、UBBCONFIG
ファイルでセキュリティ・レベルが ACL
または MANDATORY_ACL
に設定されている場合に使用できます。
注記 この情報は、「CORBAservices: Common Object Services Specification」(1995 年 3 月 31 日改訂版、1997 年 11 月更新) の 15-103、104 ページから、OMG の許可を得て転載しています。
SecurityLevel2::PrincipalAuthenticator::authenticate
概要
プリンシパルを認証し、オプションでプリンシパルのクリデンシャルを取得します。
OMG IDL
定義
Security::AuthenticationStatus
authenticate(
in Security::AuthenticationMethodmethod
,
in Security::SecurityNamesecurity_name
,
in Security::Opaqueauth_data
,
in Security::AttributeListprivileges
,
out Credentialscreds
,
out Security::Opaquecontinuation_data
,
out Security::Opaqueauth_specific_data
);
引数
method
使用するセキュリティ・メカニズム。有効な値は、Tobj::TuxedoSecurity
および Tobj::CertificateBased
です。
security_name
プリンシパルの ID 情報 (ログオン情報など)。値は、プリンシパルのユーザ名を含む NULL 終了文字列へのポインタである必要があります。文字列は、NULL 文字を除いて 30 文字以内に制限されています。
証明書による認証を使用する場合、この名前は、LDAP を有効にしたディレクトリ・サービスで証明書をルックアップするのに使用します。また、この名前を基に、秘密鍵を格納するファイルの名前が決まります。次に例を示します。
milozzi@company.com
は、LDAP を有効にしたディレクトリ・サービスで証明書をルックアップするのに使用する電子メール・アドレス、milozzi_company.pem
は秘密鍵・ファイル名です。
auth_data
パスワードまたは秘密鍵などのプリンシパルの認証。Tobj:TuxedoSecurity
セキュリティ・メカニズムを指定した場合、この引数の値は、コンフィギュレーションされた認証のレベルによって異なります。Tobj::CertificateBased
引数を指定した場合、この引数の値は、プリンシパルの秘密鍵の復号化に使用するパス・フレーズです。
privileges
要求された特権属性。
creds
新しく作成された Credentials オブジェクトのオブジェクト・リファレンス。オブジェクト・リファレンスは、完全には初期化されません。したがって、オブジェクト・リファレンスは、SecurityLevel2::Current::authenticate
メソッドの戻り値が SecAuthSuccess
になるまで使用できません。
continuation_data
SecurityLevel2::Current::authenticate
メソッドの戻り値が SecAuthContinue
の場合、この引数は、継続する認証の試行情報を格納します。戻り値は常に空です。
auth_specific_data
使用する認証サービス固有の情報。戻り値は常に空です。
説明
SecurityLevel2::Current::authenticate
メソッドは、プリンシパルを認証し、BEA Tuxedo ドメインでのセッション時にプリンシパルで必要なオプションで特権属性を要求するために、クライアント・アプリケーションによって使用されます。
Tobj::TuxedoSecurity
セキュリティ・メカニズムを指定する場合、Tobj::PrincipalAuthenticator::logon
オペレーションを呼び出すことで同じ機能を取得できます。このオペレーションは、同じ機能を提供しますが、ATMI 認証セキュリティ・メカニズムで使用するための特別なオペレーションです。
戻り値
次の表は、有効な戻り値について説明しています。
SecurityLevel2::Current::set_credentials
概要
クリデンシャルのタイプを設定します。
OMG IDL
定義
void set_credentials(
in Security::CredentialType cred_type,
in Credentials creds
);
引数
cred_type
設定するクリデンシャルのタイプ (invocation、own、または non-repudiation)。
creds
Credentials オブジェクトに対するオブジェクト・リファレンス。これがデフォルトになります。
説明
このメソッドは、SecInvocationCredentials
にのみ設定できます。それ以外の値に設定すると、set_credentials
で CORBA::BAD_PARAM
が発生します。クリデンシャルは、以前の SecurityLevel2::Current::get_credentials
または SecurityLevel2::PrincipalAuthenticator::authenticate
の呼び出しで取得済みになっている必要があります。
戻り値
特にありません。
注記 この情報は、「CORBAservices: Common Object Services Specification」(1995 年 3 月 31 日改訂版、1997 年 11 月更新) の 15-104 ページから、OMG の許可を得て転載しています。
SecurityLevel2::Current::get_credentials
概要
クリデンシャルのタイプを取得します。
OMG IDL
定義
Credentials get_credentials(
in Security::CredentialType cred_type
);
引数
cred_type
取得するクリデンシャルのタイプ。
説明
この呼び出しは、SecInvocationCredentials
の取得にのみ使用できます。それ以外の場合に使用すると、get_credentials
で CORBA::BAD_PARAM
が発生します。クリデンシャルを使用できない場合、get_credentials
で CORBA::BAD_INV_ORDER
が発生します。
戻り値
クライアント・アプリケーションのアクティブなクリデンシャルのみを返します。
注記 この情報は、「CORBAservices: Common Object Services Specification」(1995 年 3 月 31 日改訂版、1997 年 11 月更新) の 15-105 ページから、OMG の許可を得て転載しています。
SecurityLevel2::Current::principal_authenticator
概要
PrincipalAuthenticator
を返します。
OMG IDL
定義
readonly attribute PrincipalAuthenticator
principal_authenticator;
説明
principal_authenticator
属性によって返された PrincipalAuthenticator
は、実際の型 Tobj::PrincipalAuthenticator
によるものです。したがって、Tobj::PrincipalAuthenticator
および SecurityLevel2::PrincipalAuthenticator
の双方として使用できます。
注記 このメソッドが不正な SecurityCurrent オブジェクトで呼び出された場合、CORBA::BAD_INV_ORDER
が発生します。
戻り値
PrincipalAuthenticator
を返します。
SecurityLevel2::Credentials
概要
プロセスに特有のプリンシパルのクリデンシャル情報を表します。SecurityLevel2::Credentials
インターフェイスをサポートする Credentials オブジェクトは、位置制約付きオブジェクトです。このオブジェクトの位置の外にリファレンスを渡そうとしたり、CORBA::ORB::object_to_string()
を使用してオブジェクトを外部化しようとしたりすると、CORBA::Marshall
例外が発生します。
OMG IDL
定義
#ifndef _SECURITY_LEVEL_2_IDL
#define _SECURITY_LEVEL_2_IDL
#include <SecurityLevel1.idl>
#pragma prefix "omg.org"
module SecurityLevel2
{
interface Credentials
{
attribute Security::AssociationOptions
invocation_options_supported;
attribute Security::AssociationOptions
invocation_options_required;
Security::AttributeList
get_attributes(
in Security::AttributeTypeList attributes );
boolean
is_valid(
out Security::UtcT expiry_time );
};
};
#endif /* _SECURITY_LEVEL_2_IDL */
C++ 宣言
class SecurityLevel2
{
public:
class Credentials;
typedef Credentials * Credentials_ptr;
class Credentials : public virtual CORBA::Object
{
public:
static Credentials_ptr _duplicate(Credentials_ptr obj);
static Credentials_ptr _narrow(CORBA::Object_ptr obj);
static Credentials_ptr _nil();
virtual Security::AssociationOptions
invocation_options_supported() = 0;
virtual void
invocation_options_supported(
const Security::AssociationOptions options ) = 0;
virtual Security::AssociationOptions
invocation_options_required() = 0;
virtual void
invocation_options_required(
const Security::AssociationOptions options ) = 0;
virtual Security::AttributeList *
get_attributes(
const Security::AttributeTypeList & attributes) = 0;
virtual CORBA::Boolean
is_valid( Security::UtcT_out expiry_time) = 0;
protected:
Credentials(CORBA::Object_ptr obj = 0);
virtual Credentials() { }
private:
Credentials( const Credentials&) { }
void operator=(const Credentials&) { }
}; //クラス Credentials
}; //クラス SecurityLevel2
SecurityLevel2::Credentials::get_attributes
概要
クリデンシャルに添付された属性リストを取得します。
OMG IDL
定義
Security::AttributeList get_attributes(
in AttributeTypeList attributes
);
引数
attributes
値が必要とされているセキュリティ属性 (権限属性タイプ) のセット。このリストが空の場合は、すべての属性が返されます。
説明
このメソッドは、プリンシパルのクリデンシャルに添付された属性リストを返します。属性タイプのリストでは、AttributeList
に返す属性タイプの値だけを含める必要があります。属性は現在、属性ファミリまたは ID に基づいて返されません。ほとんどの場合、どのインスタンスでもプリンシパルのクリデンシャルの有効なセットは 1 つしかないので、これは、SecurityLevel1::Current::get_attributes()
を呼び出した場合と同じ結果です。結果は、クリデンシャルが使用中でない場合には異なる可能性があります。
戻り値
属性リストを返します。
注記 この情報は、「CORBAservices: Common Object Services Specification」(1995 年 3 月 31 日改訂版、1997 年 11 月更新) の 15-97 ページから、OMG の許可を得て転載しています。
SecurityLevel2::Credentials::invocation_options_supported
概要
SSL 接続を確立して BEA Tuxedo ドメインでオブジェクトに対する呼び出しを実行する際に使用できるセキュリティ・オプションの最大数を示します。
OMG IDL
定義
attribute Security::AssociationOptions
invocation_options_supported
;
引数
特にありません。
説明
このメソッドは、SecurityLevel2::Credentials::invocation_options_required
メソッドと組み合わせて使用する必要があります。
以下のセキュリティ・オプションを指定できます。
戻り値
定義されたセキュリティ・オプションのリスト。
セキュリティの関連付けに Tobj::TuxedoSecurity
セキュリティ・メカニズムを使用する場合、NoProtection
、EstablishTrustInClient
、および SimpleDelegation
セキュリティ・オプションのみが返されます。BEA Tuxedo ドメインへのアクセスにパスワードが要求されるように CORBA アプリケーションのセキュリティ・レベルが定義された場合にのみ、EstablishTrustInClient
セキュリティ・オプションが表示されます。
注記 指定したセキュリティ・オプションが、CORBA アプリケーション用に定義されたセキュリティ・メカニズムでサポートされていない場合、CORBA::NO_PERMISSION
例外が返されます。この例外は、指定したセキュリティ・オプションが、SecurityLevel2::Credentials::invocation_options_required
メソッドで指定したセキュリティ・オプションよりも少ない機能しか持っていない場合にも発生します。
invocation_options_supported
属性には、set()
メソッドと get()
メソッドがあります。Tobj::TuxedoSecurity
セキュリティ・メカニズムを使用して Credentials オブジェクトを取得する場合には、set()
メソッドを使用できません。Tobj::TuxedoSecurity
セキュリティ・メカニズムで set()
メソッドを使用すると、CORBA::NO_PERMISSION
例外が返されます。
SecurityLevel2::Credentials::invocation_options_required
概要
SSL 接続を確立して BEA Tuxedo ドメインでターゲット・オブジェクトに対する呼び出しを実行する際に使用できるセキュリティ・オプションの最少数を指定します。
OMG IDL
定義
attribute Security::AssociationOptions
invocation_options_required
;
引数
特にありません。
説明
このメソッドを使用すると、プリンシパルと BEA Tuxedo ドメインの間の通信の保護を指定できます。このメソッドを使用すると、Credentials オブジェクトは、定義したセキュリティ・オプションのレベルの SSL プロトコルを使用してターゲット・オブジェクトに対する呼び出しを実行します。このメソッドは、SecurityLevel2::Credentials::invocation_options_supported
メソッドと組み合わせて使用する必要があります。
以下のセキュリティ・オプションを指定できます。
戻り値
定義されたセキュリティ・オプションのリスト。
セキュリティの関連付けに Tobj::TuxedoSecurity
セキュリティ・メカニズムを使用する場合、NoProtection
、EstablishTrustInClient
、および SimpleDelegation
セキュリティ・オプションのみが返されます。BEA Tuxedo ドメインへのアクセスにパスワードが要求されるように CORBA アプリケーションのセキュリティ・レベルが定義された場合にのみ、EstablishTrustInClient
セキュリティ・オプションが表示されます。
注記 指定したセキュリティ・オプションが、CORBA アプリケーション用に定義されたセキュリティ・メカニズムでサポートされていない場合、CORBA::NO_PERMISSION
例外が返されます。この例外は、指定したセキュリティ・オプションが、SecurityLevel2::Credentials::invocation_options_supported
メソッドで指定したセキュリティ・オプションよりも多い機能を持っている場合にも発生します。
invocation_options_required
属性には、set()
メソッドと get()
メソッドがあります。Tobj::TuxedoSecurity
セキュリティ・メカニズムを使用して Credentials オブジェクトを取得する場合には、set()
メソッドを使用できません。Tobj::TuxedoSecurity
セキュリティ・メカニズムで set()
メソッドを使用すると、CORBA::NO_PERMISSION
例外が返されます。
SecurityLevel2::Credentials::is_valid
概要
クリデンシャルのステータスをチェックします。
OMG IDL
定義
boolean is_valid(
out Security::UtcT expiry_time
);
説明
使用されたクリデンシャルがそのときにアクティブな場合、このメソッドは、TRUE
を返します。つまり、Tobj::PrincipalAuthenticator::logoff
または Tobj_Bootstrap::destroy_current
を呼び出していないということです。Tobj::PrincipalAuthenticator::logoff()
の後にこのメソッドが呼び出された場合、FALSE
が返されます。Tobj_Bootstrap::destroy_current()
の後にこのメソッドが呼び出された場合、CORBA::BAD_INV_ORDER
例外が発生します。
戻り値
返された有効期限には、maximum unsigned long long
値 (C++) および maximum long
(Java) が含まれています。unsigned long long
データ型が適用されると、ulonglong
が控えのデータ型になります。ulonglong
データ型は次のように定義します。
//ulonglong データ型の仮の定義
//これは、すべてのクライアント ORB による型の拡張の適用を保留
struct ulonglong {
unsigned long low;
unsigned long high;
};
注記 この情報は、「CORBAservices: Common Object Services Specification」(1995 年 3 月 31 日改訂版、1997 年 11 月更新) の 15-97 ページから、OMG の許可を得て転載しています。
SecurityLevel2::PrincipalAuthenticator
概要
プリンシパルを認証できるようにします。SecurityLevel2::PrincipalAuthenticator
インターフェイスをサポートする Principal Authenticator オブジェクトは、位置制約付きオブジェクトです。このオブジェクトの位置の外にリファレンスを渡そうとしたり、CORBA::ORB::object_to_string()
を使用してオブジェクトを外部化しようとしたりすると、CORBA::Marshall
例外が発生します。
OMG IDL
定義
#ifndef _SECURITY_LEVEL_2_IDL
#define _SECURITY_LEVEL_2_IDL
#include <SecurityLevel1.idl>
#pragma prefix "omg.org"
module SecurityLevel2
{
interface PrincipalAuthenticator
{ //位置制約付き
Security::AuthenticationStatus authenticate (
in Security::AuthenticationMethod method,
in Security::SecurityName security_name,
in Security::Opaque auth_data,
in Security::AttributeList privileges,
out Credentials creds,
out Security::Opaque continuation_data,
out Security::Opaque auth_specific_data
);
Security::AuthenticationStatus continue_authentication (
in Security::Opaque response_data,
in Credentials creds,
out Security::Opaque continuation_data,
out Security::Opaque auth_specific_data
);
};
};
#endif // SECURITY_LEVEL_2_IDL
#pragma prefix "beasys.com"
module Tobj
{
const Security::AuthenticationMethod
TuxedoSecurity = 0x54555800;
CertificateBased = 0x43455254;
};
C++ 宣言
class SecurityLevel2
{
public:
class PrincipalAuthenticator;
typedef PrincipalAuthenticator * PrincipalAuthenticator_ptr;
class PrincipalAuthenticator : public virtual CORBA::Object
{
public:
static PrincipalAuthenticator_ptr
_duplicate(PrincipalAuthenticator_ptr obj);
static PrincipalAuthenticator_ptr
_narrow(CORBA::Object_ptr obj);
static PrincipalAuthenticator_ptr _nil();
virtual Security::AuthenticationStatus
authenticate (
Security::AuthenticationMethod method,
const char * security_name,
const Security::Opaque & auth_data,
const Security::AttributeList & privileges,
Credentials_out creds,
Security::Opaque_out continuation_data,
Security::Opaque_out auth_specific_data) = 0;
virtual Security::AuthenticationStatus
continue_authentication (
const Security::Opaque & response_data,
Credentials_ptr & creds,
Security::Opaque_out continuation_data,
Security::Opaque_out auth_specific_data) = 0;
protected:
PrincipalAuthenticator(CORBA::Object_ptr obj = 0);
virtual PrincipalAuthenticator() { }
private:
PrincipalAuthenticator( const PrincipalAuthenticator&) { }
void operator=(const PrincipalAuthenticator&) { }
}; //クラス PrincipalAuthenticator
};
SecurityLevel2::PrincipalAuthenticator::continue_authentication
概要
常に失敗します。
OMG IDL
定義
Security::AuthenticationStatus continue_authentication(
in Security::Opaque response_data,
in Credentials creds,
out Security::Opaque continuation_data,
out Security::Opaque auth_specific_data
);
説明
BEA Tuxedo ソフトウェアは 1 つの手順で認証を実行するため、このメソッドは常に失敗し、Security::AuthenticationStatus::SecAuthFailure
を返します。
戻り値
常に Security::AuthenticationStatus::SecAuthFailure
を返します。
注記 この情報は、「CORBAservices: Common Object Services Specification」(1995 年 3 月 31 日改訂版、1997 年 11 月更新) の 15-92、93 ページから、OMG の許可を得て転載しています。
Tobj::PrincipalAuthenticator::get_auth_type
概要
BEA Tuxedo ドメインによって予測されている認証のタイプを取得します。
OMG IDL
定義
AuthType get_auth_type();
説明
このメソッドは、BEA Tuxedo ドメインによって予測されている認証のタイプを返します。
注記 このメソッドが不正な SecurityCurrent オブジェクトで呼び出された場合、CORBA::BAD_INV_ORDER
が発生します。
戻り値
Tobj_AuthType
列挙へのリファレンス。BEA Tuxedo ドメインへのアクセスに必要な認証のタイプを返します。次の表は、有効な戻り値について説明しています。
Tobj::PrincipalAuthenticator::logon
概要
プリンシパルを認証します。
OMG IDL
定義
Security::AuthenticationStatus logon(
in string user_name,
in string client_name,
in string system_password,
in string user_password,
in UserAuthData user_data
);
引数
user_name
BEA Tuxedo ユーザ名です。認証レベルは、TOBJ_NOAUTH
です。user_name
が NULL または空の場合、あるいは 30 文字を超えている場合、logon
で CORBA::BAD_PARAM
が発生します。
client_name
クライアント・アプリケーションの BEA Tuxedo 名です。認証レベルは、TOBJ_NOAUTH
です。client_name
が NULL または空の場合、あるいは 30 文字を超えている場合、logon で CORBA::BAD_PARAM
例外が発生します。
system_password
CORBA クライアント・アプリケーション・パスワードです。認証レベルは、TOBJ_SYSAUTH
です。クライアント名が NULL または空の場合、あるいは 30 文字を超えている場合、logon で CORBA::BAD_PARAM
例外が発生します。
注記 system_password
は、30 文字以内で指定します。
user_password
デフォルト BEA Tuxedo 認証サービスで使用するのに必要なユーザ・パスワードです。認証レベルは、TOBJ_APPAUTH
です。パスワードは 30 文字以内で指定します。
user_data
カスタム BEA Tuxedo 認証サービスで使用するのに必要なクライアント・アプリケーション固有のデータです。認証レベルは、TOBJ_APPAUTH
です。
注記 TOBJ_SYSAUTH
には、TOBJ_NOAUTH
に加えてクライアント・アプリケーション・パスワードの要件が含まれます。TOBJ_APPAUTH
には、TOBJ_SYSAUTH
に加えて、ユーザ・パスワードまたはユーザ・データなどの追加情報が含まれます。
注記 user_password
引数と user_data
引数は、相互に排他的であり、BEA Tuxedo ドメインのコンフィギュレーションで使用する認証サービスの要件によって異なります。BEA Tuxedo のデフォルト認証サービスでは、ユーザ・パスワードの方を予期します。カスタマイズされた認証サービスでは、ユーザ・データを要求するものもあります。user_password
と user_data
の両方が設定されている場合、ログオン呼び出しで CORBA::BAD_PARAM
例外が発生します。
説明
このメソッドは、プリンシパルが BEA Tuxedo ドメインにアクセスできるように IIOP リスナ/ハンドラを介してプリンシパルを認証します。このメソッドは SecurityLevel2::PrincipalAuthenticator::authenticate
と同じ機能ですが、引数は ATMI 認証指向です。
注記 このメソッドが不正な SecurityCurrent オブジェクトで呼び出された場合、CORBA::BAD_INV_ORDER
が発生します。
戻り値
次の表は、有効な戻り値について説明しています。
Tobj::PrincipalAuthenticator::logoff
概要
プリンシパルに関連付けられたセキュリティ・コンテキストを破棄します。
OMG IDL
定義
void logoff();
説明
この呼び出しは、セキュリティ・コンテキストを破棄しますが、BEA Tuxedo ドメインへのネットワーク接続を閉じません。Logoff
でも、現在のクリデンシャルを無効化できます。認証タイプが TUBJ_NOAUTH
でない場合、ログオフした後の既存のオブジェクト・リファレンスを使用した呼び出しは失敗します。
プリンシパルが現在 BEA Tuxedo ドメインに対して認証されている場合、Tobj_Bootstrap::destroy_current()
を呼び出すと、暗黙的に logoff
が呼び出されます。
注記 このメソッドが不正な SecurityCurrent オブジェクトで呼び出された場合、CORBA::BAD_INV_ORDER
が発生します。
戻り値
特にありません。
Tobj::PrincipalAuthenticator::build_auth_data
概要
SecurityLevel2::PrincipalAuthenticator::authenticate
で使用する認証データと属性を作成します。
OMG IDL
定義
void build_auth_data(
in string user_name,
in string client_name,
in string system_password,
in string user_password,
in UserAuthData user_data,
out Security::Opaque auth_data,
out Security::AttributeList privileges
);
引数
user_name
BEA Tuxedo ユーザ名です。
client_name
CORBA クライアント名です。
system_password
CORBA クライアント・アプリケーション・パスワードです。
user_password
デフォルト BEA Tuxedo 認証サービスで使用するユーザ・パスワードです。
user_data
カスタム BEA Tuxedo 認証サービスで使用するクライアント・アプリケーション固有のデータです。
auth_data
authenticate
で使用します。
privileges
authenticate
で使用します。
注記 user_name
、client_name
、または system_password
が NULL または空の場合、あるいは 30 文字を超えている場合、以降の authenticate
メソッド呼び出しで CORBA::BAD_PARAM
例外が発生します。
注記 user_password
パラメータと user_data
パラメータは、相互に排他的であり、BEA Tuxedo ドメインのコンフィギュレーションで使用する認証サービスの要件によって異なります。BEA Tuxedo のデフォルト認証サービスでは、ユーザ・パスワードの方を予期します。カスタマイズされた認証サービスでは、ユーザ・データを要求するものもあります。user_password
と user_data
の両方が設定されている場合、以降の認証呼び出しで CORBA::BAD_PARAM
例外が発生します。
説明
このメソッドは、SecurityLevel2::PrincipalAuthenticator::authenticate
で使用する認証データと属性を作成するヘルパ関数です。
注記 このメソッドが不正な SecurityCurrent オブジェクトで呼び出された場合、CORBA::BAD_INV_ORDER
が発生します。
戻り値
特にありません。
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|