WBEM SDK の API (SDK API) を使って、名前空間、またはユーザー単位でアクセス制御を設定できます。これらのセキュリティクラスは、root\security 名前空間に格納されます。
Solaris_Acl – Solaris OS アクセス制御リスト (ACL) の基底クラス。このクラスは、文字列プロパティ capability を定義し、そのデフォルト値を r (読み取り専用) に設定する
Solaris_UserAcl – ユーザーが、指定された名前空間内の CIM オブジェクトに対して保持するアクセス制御を示す
Solaris_NamespaceAcl – 名前空間に対するアクセス制御を示す
Solaris_UserACL クラスのインスタンスを作成することにより、名前空間内の CIM オブジェクトに対して、個々のユーザーのアクセス制御を設定できます。次に、API を使って、そのインスタンスのアクセス権を変更します。同様に、最初に Solaris_NameSpaceACL クラスのインスタンスを作成することにより、名前空間のアクセス制御を設定できます。次に、createInstance メソッドなどの API を使って、そのインスタンスのアクセス権を設定します。
この 2 つのクラスを組み合わせて使用することもできます。まず Solaris_NameSpaceACL クラスを使用して、名前空間内のオブジェクトへのすべてのユーザーのアクセスを制限します。次に、Solaris_UserACL クラスを使用して、選択したユーザーに名前空間へのアクセスを許可します。
Solaris_UserAcl クラスは、Solaris_Acl クラスから、デフォルト値 r (読み取り専用) の文字列型プロパティ capability を継承します。
capability プロパティを次のいずれかの値に設定することで、アクセス権を設定できます。
アクセス権 |
説明 |
---|---|
r |
読み取り |
rw |
読み取りおよび書き込み |
w |
書き込み |
なし |
アクセス権なし |
Solaris_UserAcl クラスは、次の 2 つのキープロパティを定義します。名前空間内には、名前空間とユーザー名を組み合わせた 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 クラスから、デフォルト値 r (すべてのユーザーに読み取り専用アクセスを適用) の文字列型プロパティ capability を継承します。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);