ユーザーまたは名前空間ごとに、アクセス制御を設定できます。次のアクセス制御クラスは、root\security 名前空間に格納されます。
Solaris_Acl – Solaris アクセス制御リスト (ACL) の基底クラス。このクラスは、文字列プロパティ capability を定義し、そのデフォルト値を r (読み取り専用) に設定する
Solaris_UserAcl – 指定の名前空間内の CIM オブジェクトに対するユーザーのアクセス制御を示す
Solaris_NamespaceAcl – 名前空間に対するアクセス制御を示す
名前空間内の CIM オブジェクトに対するアクセス制御は、ユーザーごとに設定できます。Solaris_UserACL クラスのインスタンスを作成し、そのアクセス権を変更します。同様に、Solaris_NameSpaceACL クラスのインスタンスを作成し、createInstance メソッドを使用してそのインスタンスへのアクセス権を設定することにより、名前空間へのアクセス制御を設定できます。
Solaris_NameSpaceACL クラスを使ってこの 2 つのクラスの使用方法を組み合わせ、まずは、名前空間内のオブジェクトに対するすべてのユーザーのアクセスを制限します。次に、Solaris_UserACL クラスを使用して、選択したユーザーに名前空間へのアクセスを許可します。
Solaris_UserAcl クラスは、Solaris_Acl 基底クラスを拡張したクラスです。Solaris_UserAcl クラスは、 Solaris_Acl 基底クラスから文字列プロパティ capability をデフォルト値 r (読み取り専用) で継承します。capability プロパティには、次の表に示すアクセス特権の値を設定できます。
|
アクセス権 |
説明 |
|---|---|
|
r |
読み取り |
|
rw |
読み取りおよび書き込み |
|
w |
書き込み |
|
なし |
アクセス権なし |
次の表に、Solaris_UserAcl クラスが定義するキープロパティを示します。名前空間内には、名前空間とユーザー名 ACL のペアのインスタンスを 1 つだけ入れることができます。
|
プロパティ |
データ型 |
目的 |
|---|---|---|
|
nspace |
string |
ACL を適用する名前空間を示す |
|
username |
string |
ACL を適用するユーザーを示す |
Solaris_UserAcl クラスのインスタンスを作成します。
...
/* ローカルホスト上に root\security (名前空間の名前)
で初期化した名前空間オブジェクトを作成する */
CIMNameSpace cns = new CIMNameSpace("", "root\security");
// root ユーザーとして root\security 名前空間に接続する
cc = new CIMClient(cns, user, user_passwd);
// Solaris_UserAcl クラスを取得する
cimclass = cc.getClass(new CIMObjectPath("Solaris_UserAcl");
// Solaris_UserAcl の新しいインスタンスを作成する
class ci = cimclass.newInstance();
...
capability プロパティを目的のアクセス権に設定します。
...
/* root\molly 名前空間内のオブジェクトに対するユーザー Guest の
アクセス権 (capability) を読み取りおよび書き込みに変更する */
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 オブジェクトマネージャに渡す cc.createInstance(new CIMObjectPath(), ci); ...
Solaris_NamespaceAcl クラスは、 Solaris_Acl 基底クラスを拡張したクラスであり、文字列プロパティ capability をデフォルト値 r (すべてのユーザーに対し読み取り専用) で継承します。Solaris_NamespaceAcl クラスは、次のキープロパティを定義します。
|
プロパティ |
データ型 |
目的 |
|---|---|---|
|
nspace |
string |
アクセス制御リストを適用する名前空間を示す。名前空間内には、名前空間 ACL のインスタンスを 1 つだけ指定できる |
Solaris_namespaceAcl クラスのインスタンスを作成します。
...
/* ローカルホスト上に root\security (名前空間の名前)
で初期化した名前空間オブジェクトを作成する*/
CIMNameSpace cns = new CIMNameSpace("", "root\security");
// root ユーザーとして root\security 名前空間に接続する
cc = new CIMClient(cns, user, user_passwd);
// Solaris_namespaceAcl クラスを取得する
cimclass = cc.getClass(new CIMObjectPath("Solaris_namespaceAcl");
// Solaris_namespaceAcl の新しいインスタンスを作成する
class ci = cimclass.newInstance();
...
capability プロパティを目的のアクセス権に設定します。
...
/* root\molly 名前空間のアクセス権 (capability)
を読み取り/書き込みに変更する */
ci.setProperty("capability", new CIMValue(new String("rw"));
ci.setProperty("nspace", new CIMValue(new String("root\molly"));
...
// 更新されたインスタンスを CIM オブジェクトマネージャに渡す cc.createInstance(new CIMObjectPath(), ci);