Sun WBEM SDK API を使用して、ネームスペースのアクセス制御または個々のユーザーのアクセス制御を設定できます。次のセキュリティクラスが root¥security ネームスペースに格納されています。
Solaris_Acl - Solaris アクセス制御リスト (Access Control List: ACL) の基底クラス。このクラスは、文字列プロパティ capability を定義し、そのデフォルト値を r (読み取り権のみ) に設定する
Solaris_UserAcl - 指定されたネームスペース内の CIM オブジェクトに対してユーザーが持つアクセス制御を表す
Solaris_NamespaceAcl - ネームスペースに対するアクセス制御を表す
Solaris_UserACL クラスのインスタンスを作成し、続いて API を使用してそのインスタンスに対するアクセス権を変更することにより、ネームスペース内の CIM オブジェクトに対して個々のユーザーのアクセス制御を設定できます。同様に、Solaris_NameSpaceACL クラスのインスタンスを作成し、続いて setInstance メソッドのような API を使用してそのインスタンスへのアクセス権を設定することにより、ネームスペースのアクセス制御を設定できます。
これらの 2 つのクラスを効率よく使用するには、まず Solaris_NameSpaceACL クラスを使用してネームスペース内のオブジェクトに対し全ユーザーのアクセス権を制限します。続いて、Solaris_UserACL クラスを使用して、選択したユーザーにそのネームスペースに対するアクセス権を与えます。
Solaris_UserAclクラスは、Solaris_Acl 基底クラスを拡張したサブクラスです。Solaris_UserAcl クラスは、この基底クラスからデフォルト値 r (読み取り権のみ) を持つ文字列プロパティ capability を継承します。
capability プロパティには、次に示すアクセス権のいずれかを設定できます。
アクセス権 | 説明 |
---|---|
r |
読み取り権 |
rw |
読み取り権と書き込み権 |
w |
書き込み権 |
none |
アクセス不可 |
Solaris_UserAcl クラスは、次の 2 つキープロパティを定義します。ネームスペースに存在できるのは、ネームスペースとユーザー名の ACL ペアのインスタンス 1 つだけです。
プロパティ | データ型 | 目的 |
---|---|---|
nspace |
文字列 |
この ACL が適用されるネームスペースを識別する |
username |
文字列 |
この ACL が適用されるユーザーを識別する |
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(); ... |
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")); ... |
インスタンスを更新します。次に例を示します。
... // 更新されたインスタンスを CIM Object Manager に渡す。 cc.setInstance(new CIMObjectPath(), ci); ... |
Solaris_NamespaceAcl は、Solaris_Acl 基底クラスを拡張したサブクラスです。Solaris_NamespaceAcl は、この基底クラスからデフォルト値 r (GUEST およびすべてのユーザーの読み取り権) を持つ文字列プロパティ capability を継承します。Solaris_NamespaceAcl クラスは、次のキープロパティを定義します。
プロパティ | データ型 | 目的 |
---|---|---|
nspace |
文字列 |
このアクセス制御リストが適用されるネームスペースを識別する。ネームスペースに存在できるのは、ネームスペース ACL のインスタンス 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(); ... |
capability プロパティに目的のアクセス権を設定します。次に例を示します。
... /* root¥molly ネームスペースに対するアクセス権 (capability) を rw (読み取り権と書き込み権) に変更 */ ci.updatePropertyValue("capability",new CIMValue("rw")); ci.updatePropertyValue("nspace",new CIMValue("root¥molly")); ... |
インスタンスを更新します。次に例を示します。
// 更新されたインスタンスを CIM Object Manager に渡す。 cc.setInstance(new CIMObjectPath(), ci); |