Sun WBEM SDK 開発ガイド

CIM Object Manager への接続

クライアントアプリケーションは、WBEM のオペレーション (CIM クラスの作成や CIM インスタンスの更新など) を実行する必要があるたびに、CIM Object Manager に接続します。アプリケーションは、CIMClient クラスを使用して CIM Object Manager 上のクライアントのインスタンスを作成します。CIMClient クラスには、次の 3 つの引数を指定できます。

CIM Object Manager への接続が完了すると、その後の CIMClient オペレーションはすべて指定されたネームスペース内で発生します。

例 — CIM Object Manager への接続

次の例は、CIMClient インタフェースを使用して CIM Object Manager に接続する 2 つの方法を示しています。

例 4–2 では、アプリケーションはすべてデフォルト値を使用しています。つまり、デフォルトのユーザーアカウントとパスワード guest を使用し、ローカルホスト (クライアントアプリケーションが動作しているホスト) のデフォルトのネームスペース (root\cimv2) で動作している CIM Object Manager に接続します。


例 4–2 デフォルトのネームスペースへの接続

/* パスワード guest を持つユーザー guest として 
ローカルホスト上の root\cimv2 ネームスペースに接続 */ 
 
cc = new CIMClient();


例 4–3 のアプリケーションは、ローカルホストのデフォルトネームスペース (root\cimv2) で動作している CIM Object Manager に接続し、root アカウントの UserPrincipal オブジェクトを作成します。このオブジェクトは、デフォルトネームスペース内のすべての CIM オブジェクトに対する読み取り/書き込みアクセス権を備えています。


例 4–3 root アカウントへの接続

{
    ...

    root としてのホスト。2 つの null 文字列によって初期化される
    ネームスペースオブジェクトを作成する。2 つの null 文字列は
    デフォルトのホスト (ローカルホスト) とデフォルトの
    ネームスペース (root\cimiv2) を表す */
 
    CIMNameSpace cns = new CIMNameSpace("", "");

    UserPrincipal up = new UserPrincipal("root");
	   PasswordCredential pc = new PasswordCredential("root_password"); 
    /* root パスワードを使い、root として
    ネームスペースに接続する */
 
    CIMClient cc = new CIMClient(cns, up, pc");
    ...
}


例 4–4 では、アプリケーションはホスト happy 上のネームスペース A に接続します。アプリケーションは、初めにこのネームスペースの文字列名 (A) を含むためにネームスペースのインスタンスを作成します。続いて、CIMClient クラスを使用して CIM Object Manager に接続し、ネームスペースオブジェクト、ユーザー名、およびホスト名を渡します。


例 4–4 デフォルト以外のネームスペースへの接続

{
    ...
    /* ホスト happy 上のA (ネームスペース名) に
    よって初期化されるネームスペースオブジェクトを作成する */
    CIMNameSpace cns = new CIMNameSpace("happy", "A");
    UserPrincipal up = new UserPrincipal("Mary");
    PasswordCredential pc = new PasswordCredential("marys_password");
     
    // このネームスペースにユーザー Mary として接続
    cc = new CIMClient(cns, "Mary", "marys_password");
    ...

} 



例 4–5 RBAC の役割としての認証

ユーザーの役割を認証するには、SolarisUserPrincipalSolarisPasswordCredential クラスを使用する必要があります。次のコード例では、Mary の役割を Admin として認証します。

{
...
CIMNameSpace cns = new CIMNameSpace("happy", "A");
SolarisUserPrincipal sup = new SolarisUserPrincipal("Mary", "Admin");
SolarisPasswordCredential spc = new
        SolarisPasswordCredential("marys_password", "admins_password");
CIMClient cc = new CIMClient(cns, sup, spc);