Solaris WBEM Services の管理

API によるアクセス制御の設定

Sun WBEM SDK API を使用して、ネームスペースのアクセス制御または個々のユーザーのアクセス制御を設定できます。次のセキュリティクラスが root¥security ネームスペースに格納されています。

Solaris_UserACL クラスのインスタンスを作成し、続いて API を使用してそのインスタンスに対するアクセス権を変更することにより、ネームスペース内の CIM オブジェクトに対して個々のユーザーのアクセス制御を設定できます。同様に、Solaris_NameSpaceACL クラスのインスタンスを作成し、続いて setInstance メソッドのような API を使用してそのインスタンスへのアクセス権を設定することにより、ネームスペースのアクセス制御を設定できます。

これらの 2 つのクラスを効率よく使用するには、まず Solaris_NameSpaceACL クラスを使用してネームスペース内のオブジェクトに対し全ユーザーのアクセス権を制限します。続いて、Solaris_UserACL クラスを使用して、選択したユーザーにそのネームスペースに対するアクセス権を与えます。

Solaris_UserAcl クラス

Solaris_UserAclクラスは、Solaris_Acl 基底クラスを拡張したサブクラスです。Solaris_UserAcl クラスは、この基底クラスからデフォルト値 r (読み取り権のみ) を持つ文字列プロパティ capability を継承します。

capability プロパティには、次に示すアクセス権のいずれかを設定できます。

 アクセス権 説明

r

読み取り権 

rw

読み取り権と書き込み権 

w

書き込み権 

none

アクセス不可 

Solaris_UserAcl クラスは、次の 2 つキープロパティを定義します。ネームスペースに存在できるのは、ネームスペースとユーザー名の ACL ペアのインスタンス 1 つだけです。

 プロパティ データ型 目的

nspace 

文字列 

この ACL が適用されるネームスペースを識別する 

username 

文字列 

この ACL が適用されるユーザーを識別する 

ユーザーに対するアクセス制御を設定する方法
  1. Solaris_UserAcl クラスのインスタンスを作成します。次に例を示します。


    ...
    /* ネームスペースオブジェクトをローカルホストに作成し、root¥security
      (ネームスペースの名前) で初期化する。 */
    
    CIMNameSpace cns = new CIMNameSpace("", "root¥security");
    
    // root で root¥security ネームスペースに接続する。
    cc = new CIMClient(cns, "root", "root_password");
    
    // Solaris_UserAcl クラスを取得
    cimclass = cc.getClass(new CIMObjectPath("Solaris_UserAcl");
    
    // Solaris_UserAcl クラスの新しいインスタンスを作成
    ci = cimclass.newInstance();
    ...
  2. capability プロパティに目的のアクセス権を設定します。次に例を示します。


    ...
    /* root¥molly ネームスペースのオブジェクトに対するユーザー Guest の
    アクセス権 (capability) を rw (読み取り権と書き込み権) に変更 */
    ci.setProperty("capability", new CIMValue(new String("rw"));
    ci.setProperty("nspace", new CIMValue(new String("root¥molly"));
    ci.setProperty("username", new CIMValue(new String("guest"));
    ...
  3. インスタンスを更新します。次に例を示します。


    ...
    // 更新されたインスタンスを CIM Object Manager に渡す。
    cc.setInstance(new CIMObjectPath(), ci);
    ...

Solaris_NamespaceAcl クラス

Solaris_NamespaceAcl は、Solaris_Acl 基底クラスを拡張したサブクラスです。Solaris_NamespaceAcl は、この基底クラスからデフォルト値 r (GUEST およびすべてのユーザーの読み取り権) を持つ文字列プロパティ capability を継承します。Solaris_NamespaceAcl クラスは、次のキープロパティを定義します。

 プロパティ データ型 目的

nspace

文字列 

このアクセス制御リストが適用されるネームスペースを識別する。ネームスペースに存在できるのは、ネームスペース ACL のインスタンス 1 つだけである 

ネームスペースに対するアクセス制御を設定する方法
  1. Solaris_namespaceAcl クラスのインスタンスを作成します。次に例を示します。


    ...
    /* ネームスペースオブジェクトをローカルホストに作成し、root¥security
        (ネームスペースの名前) で初期化する。 */
        CIMNameSpace cns = new CIMNameSpace("", "root¥security");
    
    // root で root¥security ネームスペースに接続する。
    cc = new CIMClient(cns, "root", "root_password");
    
    // Solaris_namespaceAcl クラスを取得
    cimclass = cc.getClass(new CIMObjectPath("Solaris_namespaceAcl");
    
    // Solaris_namespaceAcl クラスの新しいインスタンスを作成
    ci = cimclass.newInstance();
    ...
  2. capability プロパティに目的のアクセス権を設定します。次に例を示します。


    ...
    /* root¥molly ネームスペースに対するアクセス権 (capability) を
    rw (読み取り権と書き込み権) に変更  */
    
    ci.updatePropertyValue("capability",new CIMValue("rw"));  
    ci.updatePropertyValue("nspace",new CIMValue("root¥molly"));
    ...
  3. インスタンスを更新します。次に例を示します。


    // 更新されたインスタンスを CIM Object Manager に渡す。
    cc.setInstance(new CIMObjectPath(), ci);