|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ibm.itim.apps.policy.SeparationOfDutyPolicyManager
public class SeparationOfDutyPolicyManager
Provides aggregate separation of duty policy management capabilities. These capabilities include the creation of a separation of duty policy.
Constructor Summary | |
---|---|
SeparationOfDutyPolicyManager(PlatformContext platform,
javax.security.auth.Subject subject)
Constructs the manager with a platform context and a subject. |
Method Summary | |
---|---|
java.lang.Boolean |
checkAccess(OrganizationalContainerMO container,
java.lang.String operation)
Check to see if the given signed in user can perform a given change. |
Request |
createPolicy(OrganizationalContainerMO container,
SeparationOfDutyPolicy policy,
java.util.Date scheduleTime)
Creates a separation of duty policy in the provisioning platform with the specified attributes within the given container. |
IHierarchyConflicts |
detectHierarchyConflicts(java.util.Set<java.lang.String> currentRoles,
java.util.Set<java.lang.String> desiredRoles)
Validates whether a given set of roles can coexist with an existing set of roles in a separation of duty policy rule. |
java.util.Map<Person,java.util.Collection<IPolicyResult>> |
evaluateViolations(java.util.Collection<Person> persons)
For a particular person, evaluate the role violations against the separation of duty policies of the system. |
java.util.Collection<IPolicyResult> |
evaluateViolations(Person person)
For a given person, evaluate the role violations against the separation of duty policies of the system. |
void |
exempt(IRuleViolation violation,
java.lang.String justification)
Exempt the passed-in violation and audit the submitter and their justification for this call. |
java.util.Collection<SeparationOfDutyPolicy> |
getPolicies(java.lang.String roleName)
Returns the separation of duty policies(s) that have exclusion rules which match the given role name. |
SeparationOfDutyPolicyMO |
getPolicyByURI(OrganizationalContainerMO container,
java.lang.String uri)
Returns the separation of duty policy for the given Uniform Resource Identifier (URI) within the specified parent container. |
void |
revoke(IRuleExemption exemption,
java.lang.String justification)
Revoke the passed-in exemption and audit the submitter and their justification for this call. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SeparationOfDutyPolicyManager(PlatformContext platform, javax.security.auth.Subject subject)
platform
- PlatformContext holding platform connection information.subject
- Subject representing the authenticated caller.Method Detail |
---|
public Request createPolicy(OrganizationalContainerMO container, SeparationOfDutyPolicy policy, java.util.Date scheduleTime) throws java.rmi.RemoteException, AuthorizationException, ApplicationException
container
- OrganizationalContainerMO within which the the separation of
duty policy is to be placed.policy
- The separation of duty policy to create.scheduleTime
- The scheduled starting time of the process. If null, the
process will start immediately. If this method is invoked
remotely, passing this parameter as the current date/time of
the client machine is not a safe technique to use, since the
date/time of the client machine may not match the
date/time of the Tivoli Identity Manager server machine.
java.rmi.RemoteException
- Thrown if unable to communicate with the platform.
AuthorizationException
- Thrown if the client is unauthorized to create the policy in
the given container.
ApplicationException
- Thrown if unable to create the separation of duty policy.
This might be caused if another client removes the container
before the call.public java.lang.Boolean checkAccess(OrganizationalContainerMO container, java.lang.String operation) throws java.rmi.RemoteException, AuthorizationException, ApplicationException
container
- OrganizationalContainerMO within which the the separation of
duty policy will be placed/removed/added.operation
- The operation is being checked.
java.rmi.RemoteException
- Thrown if unable to communicate with the platform.
AuthorizationException
- Thrown if the client is unauthorized to perform an operation in
the given container.
ApplicationException
- Thrown if unable to check if the operation should be
allowed. This might be caused if another client removed the container
before the call.for valid operation
values.
,
Permission
public SeparationOfDutyPolicyMO getPolicyByURI(OrganizationalContainerMO container, java.lang.String uri) throws java.rmi.RemoteException, ApplicationException
container
- OrganizationalContainerMO representing the parent container to
scope the search.uri
- String representing the Provisioning policy URI.
java.rmi.RemoteException
- Thrown if unable to communicate with platform.
ApplicationException
- Thrown if unable to obtain the separation of duty policy. This might
be caused by the container being removed by
another client previous to this call. This exception might also be thrown
if the container object is null or represents the tenant,
no policy is found for the given URI within the container,
or more than one policy is found for the given URI
within the container.public java.util.Collection<SeparationOfDutyPolicy> getPolicies(java.lang.String roleName) throws java.rmi.RemoteException, ApplicationException
roleName
- Role name to search for which are part of separation of duty policy exclusion rules.
A role name LDAP pattern is used to search and uses the RFC2254 format.
(E.g. myrole* for all roles with start with 'myrole'.)
SeparationOfDutyPolicy
representing the matching policies.
java.rmi.RemoteException
- Thrown if unable to communicate with the platform.
ApplicationException
- Thrown if unable to obtain the provisioning policy. This
might be caused if another client removes the container
prior to the call.public java.util.Collection<IPolicyResult> evaluateViolations(Person person) throws java.rmi.RemoteException, ApplicationException
DistinguishedName
.
Creating new SeparationOfDutyPolicyMO
for each DistinguishedName
allows for reading
each policy (via getData() method) given that the client user has proper authorization to search.
The separation of duty policy evaluation also takes into account a role hierarchy. Consider the following example:
There are two parent roles, A and B, which have 1 child each. Role A has child Role Z, while Role B has child
Role Y. If a separation of duty policy has a rule which separates Role A from Role B, a person with the following
role combinations would be in violation of this policy (where order does not matter):
Person
- to evaluate the roles of, for separation of duty policy violations.
java.rmi.RemoteException
- Thrown if unable to communicate with the platform.
ApplicationException
- Thrown if unable to obtain the person. This
might occur if another client removed the person
prior to the call.public java.util.Map<Person,java.util.Collection<IPolicyResult>> evaluateViolations(java.util.Collection<Person> persons) throws java.rmi.RemoteException, ApplicationException
DistinguishedName
.
Creating new SeparationOfDutyPolicyMO
for each DistinguishedName
allows for reading
each policy (via getData() method) given that the client user has proper authorization to search.
The separation of duty policy evaluation also takes into account a role hierarchy. Consider the following example:
There are two parent roles, A and B, which have 1 child each. Role A has child Role Z, while Role B has child
Role Y. If a separation of duty policy has a rule which separates Role A from Role B, a person with the following
role combinations would be in violation of this policy (where order does not matter):
Collection
- of person to evaluate the roles of, for separation of duty policy violations.
java.rmi.RemoteException
- Thrown if unable to communicate with the platform.
ApplicationException
- Thrown if unable to obtain the person. This
might occur if another client removes the person
prior to this call.public IHierarchyConflicts detectHierarchyConflicts(java.util.Set<java.lang.String> currentRoles, java.util.Set<java.lang.String> desiredRoles) throws ApplicationException, java.rmi.RemoteException
currentRoles
- The set of roles that are currently added to a rule.desiredRoles
- The set of roles that are to be added to a rule.
ApplicationException
- If there is an application error that prevented the conflicts from being detected.
java.rmi.RemoteException
- If there is an error connecting with the server.public void revoke(IRuleExemption exemption, java.lang.String justification) throws java.rmi.RemoteException, ApplicationException
exemption
- The exemption to revoke.justification
- The reason for the revocation.
ApplicationException
- Thrown when an application-level error occurs.
AuthorizationException
- Thrown if the user is not authorized to perform the operation.
java.rmi.RemoteException
public void exempt(IRuleViolation violation, java.lang.String justification) throws java.rmi.RemoteException, ApplicationException
exemption
- The violation to exempt.justification
- The reason for the exemption.
ApplicationException
- Thrown when application-level error occurs.
AuthorizationException
- Thrown if the user is not authorized to perform the operation.
java.rmi.RemoteException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |