1 karl 1.1 // ===================================================================
2 // Title: User-Security Privilege Management Service
3 // $State: Preliminary $
4 // $Date: 2004/06/25 17:56:15 $
5 // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/User_PrivilegeManagementService.mof,v $
6 // $Revision: 1.2 $
7 // ===================================================================
8 //#pragma inLine ("Includes/copyright.inc")
9 // Copyright 2003-2004 Distributed Management Task Force, Inc. (DMTF).
10 // All rights reserved.
11 // DMTF is a not-for-profit association of industry members dedicated
12 // to promoting enterprise and systems management and interoperability.
13 // DMTF specifications and documents may be reproduced for uses
14 // consistent with this purpose by members and non-members,
15 // provided that correct attribution is given.
16 // As DMTF specifications may be revised from time to time,
17 // the particular version and release date should always be noted.
18 //
19 // Implementation of certain elements of this standard or proposed
20 // standard may be subject to third party patent rights, including
21 // provisional patent rights (herein "patent rights"). DMTF makes
22 karl 1.1 // no representations to users of the standard as to the existence
23 // of such rights, and is not responsible to recognize, disclose, or
24 // identify any or all such third party patent right, owners or
25 // claimants, nor for any incomplete or inaccurate identification or
26 // disclosure of such rights, owners or claimants. DMTF shall have no
27 // liability to any party, in any manner or circumstance, under any
28 // legal theory whatsoever, for failure to recognize, disclose, or
29 // identify any such third party patent rights, or for such party's
30 // reliance on the standard or incorporation thereof in its product,
31 // protocols or testing procedures. DMTF shall have no liability to
32 // any party implementing such standard, whether such implementation
33 // is foreseeable or not, nor to any patent owner or claimant, and shall
34 // have no liability or responsibility for costs or losses incurred if
35 // a standard is withdrawn or modified after publication, and shall be
36 // indemnified and held harmless by any party implementing the
37 // standard from any and all claims of infringement by a patent owner
38 // for such implementations.
39 //
40 // For information about patents held by third-parties which have
41 // notified the DMTF that, in their opinion, such patent may relate to
42 // or impact implementations of DMTF standards, visit
43 karl 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
44 //#pragma inLine
45 // ===================================================================
46 // Description: The User Model extends the management concepts that
47 // are related to users and security.
48 // This file defines the concepts and classes related to
49 // hardware World Wide Names used as credentials
50 // for accessing Storage services and credentials.
51 //
52 // The object classes below are listed in an order that
53 // avoids forward references. Required objects, defined
54 // by other working groups, are omitted.
55 // ===================================================================
56 // Change Log for v2.9 Preliminary
57 // CR1342 - Add PrivilegeManagementService.ChangeAccess
58 // Add PrivilegeManagementService.ShowAccess
59 //
60 // Change Log for v2.8 Final
61 // CR1186 - Modified AssignAccess to be atomic, clarified Description,
62 // and used AuthorizedPrivilege as an input template
63 // CR1221 - Promoted PrivilegeManagementService to Final
64 karl 1.1 // CR1229 - Removed ArrayType from properties that are not arrays
65 // CR1235 - Corrected copyright, changed RemoveAccess's return value
66 // from "Unknown" to "Unspecified Error", and corrected
67 // ValueMap/Values entries for the enumerated parameters of
68 // AssignAccess / Clarified that methods apply to Authorized
69 // Privilege and not the Privilege superclass
70 //
71 // Change Log for v2.8 Preliminary (Company Review)
72 // CR1102 - Fixed PrivilegeManagementService for application to
73 // Storage LUN Masking.
74 //
75 // Change Log for v2.8 Preliminary -
76 // CR1017 - Created this file
77 // ===================================================================
78
79 #pragma Locale ("en_US")
80
81
82 // ==================================================================
83 // PrivilegeManagementService
84 // ==================================================================
85 karl 1.1 [Version ( "2.8.0" ), Description (
86 "The PrivilegeManagementService is responsible for creating, "
87 "deleting, and associating AuthorizedPrivilege instances. "
88 "References to 'subject' and 'target' define the entities that "
89 "are associated with an AuthorizedPrivilege instance via the "
90 "relationships, AuthorizedSubject and AuthorizedTarget, "
91 "respectively. When created, an AuthorizedPrivilege instance is "
92 "related to this (PrivilegeManagement)Service via the "
93 "association, ConcreteDependency.")]
94 class CIM_PrivilegeManagementService : CIM_AuthorizationService {
95
96 [Description (
97 "ChangeAccess updates the specified Subject's rights to the "
98 "Target according to the parameters of this call. The method "
99 "may be called to update the propagation of Privileges, "
100 "and/or to define new Privileges for a Subject/Target pair. "
101 "Because the Subject/Target pair is required in any usage "
102 "scenario, these parameters are defined as Required. \n"
103 "\n"
104 "If an instance of Privilege is created, it is associated to "
105 "this Service via ConcreteDependency. Further, if the "
106 karl 1.1 "Privilege is an AuthorizedPrivilege, it is linked to the "
107 "specified Subject and Target via the AuthorizedSubject and "
108 "AuthorizedTarget associations, respectively."),
109 ValueMap { "0", "1", "2", "3", "4", "5", "..", "16000", "16001",
110 "16002", "16003", "16004", "16005..31999", "32000..65535" },
111 Values { "Success", "Not Supported", "Unknown", "Timeout",
112 "Failed", "Invalid Parameter", "DMTF Reserved",
113 "Unsupported Subject", "Unsupported Privilege",
114 "Unsupported Target", "Authorization Error",
115 "NULL not supported", "Method Reserved", "Vendor Specific" }]
116 uint32 ChangeAccess (
117
118 [Required, IN, Description (
119 "The Subject parameter is required and references an "
120 "instance of ManagedElement. The result of this operation "
121 "is that the Subject SHALL be authorized to access or "
122 "define the authorization rights for the Target, via one "
123 "or more instances of the Privilege class - where the "
124 "Privileges represent the cumulative rights of this "
125 "Subject. The distinction between the Privileges "
126 "specified in this method call and the 'cumulative "
127 karl 1.1 "rights' is that the implementation returns all rights "
128 "that the Subject has in regards to the Target (that the "
129 "requestor is authorized to review), versus the specific "
130 "subset that may be specified in this method call. The "
131 "exception to the above is when there are no remaining "
132 "rights between the Subject and Target. In that case, the "
133 "Privilege instance MAY be deleted. \n"
134 "\n"
135 "Note that even if the Subject element is a Collection, "
136 "the operation is only applied to the Collection itself "
137 "and NOT its members via MemberOfCollection unless an "
138 "appropriate PolicyPropagationRule is specified. In "
139 "either case, the output parameters for this method "
140 "pertain only to the specified Subject/Collection and "
141 "Target, and do not provide details on the individual "
142 "members of the Collection. If this information is "
143 "needed, use the ShowAccess method. \n"
144 "\n"
145 "As noted in the method Description, if the resultant "
146 "Privileges are AuthorizedPrivileges, then "
147 "AuthorizedSubject associations SHALL be created.")]
148 karl 1.1 CIM_ManagedElement REF Subject,
149
150 [Required, IN, Description (
151 "The Target parameter is required and references an "
152 "instance of ManagedElement. The result of this operation "
153 "is that the Subject SHALL be authorized to access or "
154 "define the authorization rights for the Target, via one "
155 "or more instances of the Privilege class - where the "
156 "Privileges represent the cumulative rights of this "
157 "Subject. The distinction between the Privileges "
158 "specified in this method call and the 'cumulative "
159 "rights' is that the implementation returns all rights "
160 "that the Subject has in regards to this Target (that the "
161 "requestor is authorized to review), versus the specific "
162 "subset that may be specified in this method call. The "
163 "exception to the above is when there are no remaining "
164 "rights between the Subject and Target. In that case, the "
165 "Privilege instance MAY be deleted. \n"
166 "\n"
167 "Note that even if the Target element is a Collection, "
168 "the operation is only applied to the Collection itself "
169 karl 1.1 "and NOT its members via MemberOfCollection unless an "
170 "appropriate PolicyPropagationRule is specified. In "
171 "either case, the output parameters for this method "
172 "pertain only to the specified Subject and "
173 "Target/Collection, and do not provide details on the "
174 "individual members of the Collection. If this "
175 "information is needed, use the ShowAccess method. \n"
176 "\n"
177 "As noted in the method Description, if the resultant "
178 "Privileges are AuthorizedPrivileges, then "
179 "AuthorizedTarget associations SHALL be created.")]
180 CIM_ManagedElement REF Target,
181
182 [IN, Description (
183 "If supplied, PropagationPolicy defines the policy rules "
184 "that govern how the specified access rights are "
185 "propagated to instances associated with the named "
186 "Subject and/or Target. If a policy rule is not supplied, "
187 "the rights defined in the Privilege are only granted or "
188 "denied between the named Subject and Target.")]
189 CIM_PrivilegePropagationRule REF PropagationPolicies[],
190 karl 1.1
191 [IN, OUT, Description (
192 "A set of zero or more instances of CIM_Privilege (or a "
193 "subclass of Privilege) that are passed 'by value' as "
194 "embedded objects. An embedded object is used since the "
195 "Privilege may only define a subset of the total rights "
196 "that should be assigned or revoked. On input, "
197 "Privilege.PrivilegeGranted MAY be set to False to "
198 "indicate that the enclosed rights are denied. On return, "
199 "the embedded Privilege objects represent the cumulative "
200 "rights granted between the specified Subject and Target "
201 "(filtered to return the information that the requestor "
202 "is authorized to view). If the Privileges array is "
203 "empty, then there exist NO rights that the requestor is "
204 "authorized to view between the Subject/Target pair."),
205 EmbeddedObject]
206 string Privileges[]);
207
208 [Description (
209 "ShowAccess reports the Privileges (i.e., rights) granted to "
210 "a particular Subject and/or Target pair. Either a Subject, "
211 karl 1.1 "a Target or both MUST be specified. In the case where only "
212 "one is specified, the method will return all rights to all "
213 "Targets for the specified Subject, or all rights for all "
214 "subjects which apply to the specified Target. \n"
215 "\n"
216 "ShowAccess returns the cumulative rights granted between "
217 "the OutSubjects and OutTargets at the same array index "
218 "(filtered to return the information that the requestor is "
219 "authorized to view). If a specific array entry is NULL, "
220 "then there exist NO rights that the requestor is authorized "
221 "to view between the Subject/Target pair. \n"
222 "\n"
223 "Note that the Privileges returned by this method MAY NOT "
224 "correspond to what is actually instantiated in the model, "
225 "and MAY be optimized for ease of reporting. Hence, the data "
226 "is passed 'by value', as embedded objects. Also, note that "
227 "multiple Privileges MAY be defined for a given "
228 "Subject/Target pair. \n"
229 "\n"
230 "Other mechanisms MAY also be used to retrieve this "
231 "information. CIM Operations' EnumerateInstances MAY be used "
232 karl 1.1 "to return all Privileges currently instantiated within a "
233 "namespace. Also, if the AuthorizedPrivilege subclass is "
234 "instantiated, the CIM Operation Associators MAY be used to "
235 "navigate from the Privilege to AuthorizedSubjects and "
236 "AuthorizedTargets. These CIM Operations will not generally "
237 "provide the functionality or optimizations available with "
238 "ShowAccess."),
239 ValueMap { "0", "1", "2", "3", "4", "5", "..", "16000", "16002",
240 "16003", "16004", "16005..31999", "32000..65535" },
241 Values { "Success", "Not Supported", "Unknown", "Timeout",
242 "Failed", "Invalid Parameter", "DMTF Reserved",
243 "Unsupported Subject", "Unsupported Target",
244 "Authorization Error", "NULL not supported",
245 "Method Reserved", "Vendor Specific" }]
246 uint32 ShowAccess (
247
248 [IN, Description (
249 "The Subject parameter references an instance of "
250 "ManagedElement. The result of this operation is that the "
251 "cumulative rights of the Subject to access or define "
252 "authorization rights for the Target will be reported. If "
253 karl 1.1 "no Subject is specified, then a Target MUST be supplied "
254 "and ALL Subjects that have rights to access or define "
255 "authorizations for the Target will be reported. (It "
256 "should be noted that the information reported MUST be "
257 "filtered by the rights of the requestor to view that "
258 "data.) If the Subject element is a Collection, then the "
259 "operation will specifically report the Privileges for "
260 "all elements associated to the Collection via "
261 "MemberOfCollection. These elements will be reported "
262 "individually in the returned OutSubjects array."),
263 ModelCorrespondence {
264 "CIM_PrivilegeManagementService.ShowAccess.Target" }]
265 CIM_ManagedElement REF Subject,
266
267 [IN, Description (
268 "The Target parameter references an instance of "
269 "ManagedElement. The result of this operation is that the "
270 "cumulative rights of the Subject to access or define "
271 "authorization rights for the Target will be reported. If "
272 "no Target is specified, then a Subject MUST be supplied "
273 "and ALL Targets for which that the Subject has rights to "
274 karl 1.1 "access or define authorization will be reported. (It "
275 "should be noted that the information reported MUST be "
276 "filtered by the rights of the requestor to view that "
277 "data.) If the Target element is a Collection, then the "
278 "operation will be applied to all elements associated to "
279 "the Collection via MemberOfCollection. These elements "
280 "will be reported individually in the returned OutTargets "
281 "array."),
282 ModelCorrespondence {
283 "CIM_PrivilegeManagementService.ShowAccess.Subject" }]
284 CIM_ManagedElement REF Target,
285
286 [IN ( false ), OUT, Description (
287 "The array of Subject REFs corresponding to the "
288 "individual Privileges and OutTargets arrays. The "
289 "resulting OutSubjects, Privileges and OutTargets arrays "
290 "define the cumulative rights granted between the "
291 "Subject/Target at the corresponding index (filtered to "
292 "return the information that the requestor is authorized "
293 "to view)."),
294 ArrayType ( "Indexed" ),
295 karl 1.1 ModelCorrespondence {
296 "CIM_PrivilegeManagementService.ShowAccess.Subject",
297 "CIM_PrivilegeManagementService.ShowAccess.Privileges",
298 "CIM_PrivilegeManagementService.ShowAccess.OutTargets" }]
299 CIM_ManagedElement REF OutSubjects[],
300
301 [IN ( false ), OUT, Description (
302 "The array of Target REFs corresponding to the individual "
303 "Privileges and OutSubjects arrays. The resulting "
304 "OutSubjects, Privileges and OutTargets arrays define the "
305 "cumulative rights granted between the Subject/Target at "
306 "the corresponding index (filtered to return the "
307 "information that the requestor is authorized to view)."),
308 ArrayType ( "Indexed" ),
309 ModelCorrespondence {
310 "CIM_PrivilegeManagementService.ShowAccess.Target",
311 "CIM_PrivilegeManagementService.ShowAccess.Privileges",
312 "CIM_PrivilegeManagementService.ShowAccess.OutSubjects" }]
313 CIM_ManagedElement REF OutTargets[],
314
315 [IN ( false ), OUT, Description (
316 karl 1.1 "The returned Privilege objects represent the cumulative "
317 "rights granted between the OutSubjects and OutTargets at "
318 "the same array index (filtered to return the information "
319 "that the requestor is authorized to view). If a specific "
320 "array entry is NULL, then there exist NO rights that the "
321 "requestor is authorized to view between the "
322 "Subject/Target pair."),
323 EmbeddedObject, ArrayType ( "Indexed" ),
324 ModelCorrespondence {
325 "CIM_PrivilegeManagementService.ShowAccess.OutTargets",
326 "CIM_PrivilegeManagementService.ShowAccess.OutSubjects" }]
327 string Privileges[]);
328
329 [Description (
330 "When this method is called, a provider updates the "
331 "specified Subject's rights to the Target according to the "
332 "parameters of this call. The rights are modeled via an "
333 "AuthorizedPrivilege instance. If an AuthorizedPrivilege "
334 "instance is created as a result of this call, it MUST be "
335 "linked to the Subject and Target via the AuthorizedSubject "
336 "and AuthorizedTarget associations, respectively. When "
337 karl 1.1 "created, the AuthorizedPrivilege instance is associated to "
338 "this PrivilegeManagementService via ConcreteDependency. If "
339 "the execution of this call results in no rights between the "
340 "Subject and Target, then they MUST NOT be linked to a "
341 "particular AuthorizedPrivilege instance via "
342 "AuthorizedSubject and AuthorizedTarget respectively. \n"
343 "\n"
344 "Note that regardless of whether specified via parameter, or "
345 "template, the Activities, ActivityQualifiers and "
346 "QualifierFormats, are mutually indexed. Also note that "
347 "Subject and Target references MUST be supplied. \n"
348 "\n"
349 "The successful completion of the method SHALL create any "
350 "necessary AuthorizedSubject, AuthorizedTarget, "
351 "AuthorizedPrivilege, HostedDependency, and "
352 "ConcreteDependency instances."),
353 ValueMap { "0", "1", "2", "3", "4", "5", "6..15999", "16000",
354 "16001", "16002", "16003", "16004", "16005..31999",
355 "32000..65535" },
356 Values { "Success", "Not Supported", "Unspecified Error",
357 "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
358 karl 1.1 "Unsupported Subject", "Unsupported Privilege",
359 "Unsupported Target", "Authorization Error",
360 "NULL not supported", "Method Reserved", "Vendor Specific" }]
361 uint32 AssignAccess (
362
363 [Required, IN, Description (
364 "The Subject parameter is a reference to a ManagedElement "
365 "instance. This parameter MUST be supplied.")]
366 CIM_ManagedElement REF Subject,
367
368 [IN, Description (
369 "MUST be NULL unless Privilege is NULL on input. The "
370 "PrivilegeGranted flag indicates whether the rights "
371 "defined by the parameters in this call should be granted "
372 "or denied to the named Subject/Target pair."),
373 ModelCorrespondence {
374 "CIM_AuthorizedPrivilege.PrivilegeGranted",
375 "CIM_PrivilegeManagementService.AssignAccess.Privilege" }]
376 boolean PrivilegeGranted,
377
378 [IN, Description (
379 karl 1.1 "MUST be NULL unless the Privilege is NULL on input. This "
380 "parameter specifies the activities to be granted or "
381 "denied."),
382 ValueMap { "1", "2", "3", "4", "5", "6", "7", "..",
383 "16000..65535" },
384 Values { "Other", "Create", "Delete", "Detect", "Read",
385 "Write", "Execute", "DMTF Reserved", "Vendor Reserved" },
386 ArrayType ( "Indexed" ),
387 ModelCorrespondence { "CIM_AuthorizedPrivilege.Activities",
388 "CIM_PrivilegeManagementService.AssignAccess.Privilege" }]
389 uint16 Activities[],
390
391 [IN, Description (
392 "MUST be NULL unless Privilege is NULL on input. This "
393 "parameter defines the activity qualifiers for the "
394 "Activities to be granted or denied."),
395 ArrayType ( "Indexed" ),
396 ModelCorrespondence {
397 "CIM_AuthorizedPrivilege.ActivityQualifers",
398 "CIM_PrivilegeManagementService.AssignAccess.Privilege" }]
399 string ActivityQualifiers[],
400 karl 1.1
401 [IN, Description (
402 "MUST be NULL unless Privilege is NULL on input. This "
403 "parameter defines the qualifier formats for the "
404 "corresponding ActivityQualifiers."),
405 ValueMap { "2", "3", "4", "5", "6", "7", "8", "9",
406 "10..15999", "16000..65535" },
407 Values { "Class Name", "<Class.>Property", "<Class.>Method",
408 "Object Reference", "Namespace", "URL",
409 "Directory/File Name", "Command Line Instruction",
410 "DMTF Reserved", "Vendor Reserved" },
411 ArrayType ( "Indexed" ),
412 ModelCorrespondence {
413 "CIM_AuthorizedPrivilege.QualifierFormats",
414 "CIM_PrivilegeManagementService.AssignAccess.Privilege" }]
415 uint16 QualifierFormats[],
416
417 [Required, IN, Description (
418 "The Target parameter is a reference to an instance of "
419 "ManagedElement. This parameter MUST be supplied.")]
420 CIM_ManagedElement REF Target,
421 karl 1.1
422 [IN, OUT, Description (
423 "On input, this reference MUST be either NULL or refer to "
424 "an instance of AuthorizedPrivilege that is used as a "
425 "template. The rights granted by corresponding entries in "
426 "the Activities, ActivityQualifiers and QualifierFormats "
427 "array properties are applied incrementally and do not "
428 "affect unnamed rights. If the property, "
429 "PrivilegeGranted, is false, then the named rights are "
430 "removed. If PrivilegeGranted is True, then the named "
431 "rights are added. (Note that the RemoveAccess method "
432 "SHOULD be used to completely remove all privileges "
433 "between a subject and a target. On output, this property "
434 "references an AuthorizedPrivilege instance that "
435 "represents the resulting rights between the named "
436 "Subject and the named Target. AuthorizedPrivilege "
437 "instances used as a templates in this property SHOULD "
438 "have a HostedDependency association to the "
439 "PriviligeManagementService and SHOULD NOT have any "
440 "AuthorizedTarget or AuthorizedSubject associations to "
441 "it.")]
442 karl 1.1 CIM_AuthorizedPrivilege REF Privilege );
443
444 [Description (
445 "This method revokes a specific AuthorizedPrivilege or all "
446 "privileges for a particular target, subject, or "
447 "subject/target pair. If an AuthorizedPrivilege instance is "
448 "left with no AuthorizedTarget associations, it SHOULD be "
449 "deleted. The successful completion of the method SHALL "
450 "remove the directly or indirectly requested "
451 "AuthorizedSubject, AuthorizedTarget and AuthorizedPrivilege "
452 "instances."),
453 ValueMap { "0", "1", "2", "3", "4", "5", "6..15999", "16000",
454 "16001", "16002", "16003", "16004..32767", "32768..65535" },
455 Values { "Success", "Not Supported", "Unspecified Error",
456 "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
457 "Unsupported Privilege", "Unsupported Target",
458 "Authorization Error", "Null parameter not supported",
459 "Method Reserved", "Vendor Specific" }]
460 uint32 RemoveAccess (
461 [IN, Description (
462 "The Subject parameter is a reference to a ManagedElement "
463 karl 1.1 "instance (associated via AuthorizedSubject) for which "
464 "privileges are to be revoked.")]
465 CIM_ManagedElement REF Subject,
466
467 [IN, Description (
468 "A reference to the AuthorizedPrivilege to be revoked.")]
469 CIM_AuthorizedPrivilege REF Privilege,
470
471 [IN, Description (
472 "The Target parameter is a reference to a ManagedElement "
473 "(associated via AuthorizedTarget) which will no longer "
474 "be protected via the AuthorizedPrivilege.")]
475 CIM_ManagedElement REF Target );
476 };
477
478
479 // ===================================================================
480 // end of file
481 // ===================================================================
|