Populating claim source attributes
Creating a claim type object makes the Active Directory forest aware of the claim type. However, claim type objects do not provide information held in the actual claims. When issuing claims, domain controllers retrieve that information from user and computer objects. Hence, in addition to claim type objects, user and computer objects must contain the information necessary for domain controllers to issue claims.
Attribute-based claim types define the attributes from which to source the claims. These are attributes of user and computer objects. Each claim type object specifies a certain attribute that the domain controller retrieves when creating and issuing claims of that type. During authentication of a user, the claim-aware domain controller reads all enabled claim types from the user’s Active Directory forest, and maps them to the attributes of the authenticating user or computer. Then, the domain controller retrieves information from the mapped attributes, and issues claims containing that information.
As domain controllers do not issue blank claims, you may encounter a situation where you have created a valid claim type but the domain controller does not issue the claim during authentication. This is because a claim type object merely maps claims to a certain attribute, directing the domain controller to issue claims based on the information present in that attribute. If the attribute of the authenticating user or computer does not contain information, the domain controller does not issue the claim.
Therefore, it is important that claim source attributes contain information. Additionally, as authorization decisions depend upon information found in claims, claim source attributes must contain valid information. Incorrect attribute information can lead to unexpected access to data using claims-based authorization.
To ensure that claim source attributes contain valid information, you could periodically inspect and, if needed, set or correct the properties of users and computers by using the Active Roles console or Web Interface. However, it would be more practical to leverage property generation and validation policies provided by Active Roles. You can use policies to:
- Auto-generate the appropriate values for user and computer properties upon creation of user and computer objects
- Prevent invalid values from being assigned to user and computer properties, by applying validation rules or creating immutable lists of suggested values
Property generation and validation policies allow you to specify, and enforce, conditions that the property values must meet, and determine default property values. For further information, see Property Generation and Validation in the Active Roles Administration Guide.
Managing and applying Access Rules
Access Rules are used in Active Roles to specify conditions for authorizing user access to securable objects (target objects) that involve user groups, user claims, device groups, device claims, and target object properties. When you apply an Access Template, you can specify an Access Rule to determine the conditions that must be satisfied for the permissions resulting from the Access Template to take effect.
When configuring an Access Rule, you use Conditional expression editor to build a conditional expression for that Access Rule. Conditional expressions are logical expressions that provide a True or False result. Once an Access Rule has been configured, you can apply the Access Rule to an Access Template link (see Applying an Access Rule), which causes the link to be dynamically enabled or disabled depending upon the evaluation result of the Access Rule’s conditional expression during permission check. If the expression evaluates to True, the link is enabled and permission check considers the Access Template permission settings; otherwise, the link is disabled and the Access Template permission settings are disregarded.
Conditional expression editor
The Access Rule management pages provide a built-in editor for configuring conditional expressions. Each Access Rule holds a certain conditional expression that evaluates during permission check. A conditional expression is composed of conditions combined using AND/OR logic. Each condition is a certain statement that specifies criteria allowing permission check to determine whether to apply a given Access Template.
When you configure a conditional expression, you need to add at least one condition, but you are not limited in the number of conditions that you can add. You can add, delete, and group conditions using various operators. It is possible to nest condition groups within other condition groups to achieve the results that you want.
A condition group contains one or more conditions connected by the same logical operator. By grouping conditions, you specify that those conditions should be evaluated as a single unit. The effect is the same as if you put parentheses around an expression in a mathematical equation or logic statement.
By default, a single condition group is created when you add a condition. You can create additional condition groups to group a set of conditions and nest grouped conditions within other condition groups.
In a condition group, conditions are connected using the AND or OR logical operator:
- AND group evaluates to TRUE if all conditions in the group are TRUE.
- OR group evaluates to TRUE if any condition in the group is TRUE.
By default, AND is the logical operator between the conditions in a condition group. It is possible to change the logical operator by converting the condition group to a different group type.
When you add a condition, the conditional expression editor first prompts you to specify what you want the condition to evaluate. The following options are available:
- Device claim Evaluate a computer claim, or groups the computer account is a member of. You can choose one of the existing computer claim types or, to evaluate groups, you can select the Group item in the claim type list provided by the condition builder.
- Target object property Evaluate a certain property of the object to which the authorizing user requests access. You can select the desired property from a list provided by the condition builder.
- User claim Evaluate a user claim, or groups the user account is a member of. You can select one of the existing user claim types or, to evaluate groups, you can select the Group item in the claim type list provided by the condition builder.
Once you have specified what you want the condition to evaluate, you can choose a comparison operator and specify a comparison value. The comparison operator determines the operation of comparing the claim, group membership, or property with the comparison value you specified, and causes the condition to evaluate to TRUE or FALSE depending on the outcome of that operation.
The following comparison operators are available:
- equals The condition evaluates to True if the comparison value evaluates to the exact value of the claim or property; otherwise, the condition evaluates to False.
- does not equal The condition evaluates to False if the comparison value evaluates to the exact value of the claim or property; otherwise, the condition evaluates to True.
- member of any The condition evaluates to True if the comparison value lists any of the groups the user (or computer) is a member of. If the user (or computer) is not a member of any of the groups listed in the comparison value, the condition evaluates to False.
- member of each The condition evaluates to True if the comparison value lists only the groups the user (or computer) is a member of. If the user (or computer) is not a member of each group listed in the comparison value, the condition evaluates to False.
- not member of any The condition evaluates to False if the comparison value lists any of the groups the user (or computer) is a member of. If the user (or computer) is not a member of any of the groups listed in the comparison value, the condition evaluates to True.
- not member of each The condition evaluates to False if the comparison value lists only the groups the user (or computer) is a member of. If the user (or computer) is not a member of each group listed in the comparison value, the condition evaluates to True.
You can choose from the following options to specify a comparison value:
- Device claim The comparison value is the value of a certain computer claim. You can select one of the existing computer claim types from the claim type list provided by the condition builder.
- Target object property The comparison value is the value of a certain property of the object to which the authorizing user requests access. You can select the desired property from a list provided by the condition builder.
- User claim The comparison value is the value of a certain user claim. You can select one of the existing user claim types from the claim type list provided by the condition builder.
- Value Depending on what the condition is intended to evaluate, this option allows you to specify a particular text string, integer, Boolean value (True or False), or a list of groups. In case of a claim type that provides a list of suggested values, the condition builder prompts you to select a value from the list.
Applying an Access Rule
You apply Access Rules to Access Template links. A single Access Rule or no Access Rule can be applied to a given link. By default, no Access Rule is applied, which configures an unconditional link. Applying an Access Rule creates a conditional link that has an effect only if the Access Rule’s conditional expression evaluates to True during permission check.
To apply an Access Rule, the Active Roles console provides the Access Rule tab in the Properties dialog box for an Access Template link. You can display a list of Access Template links in a number of ways:
- Right-click a container and then click Delegate Control. This displays a list of all Access Template links applied to that container or inherited from a higher-level container.
- Right-click a user or group and then click Delegated Rights. This displays a list of all Access Template links applied to that user or group or inherited from another security group.
- Right-click an Access Template and then click Links. This displays a list of all Access Template links referring to that Access Template.
In the list, double-click a link to open the Properties dialog box. The Access Rule tab in that dialog box includes the following items:
- Access Rule This field identifies the Access Rule that is currently applied to the Access Template link. If no Access Rule is applied, this field is empty; otherwise, the field displays the name of the Access Rule along with the path to the Access Rule object in the Configuration/Access Rules container.
- Change Click this button to select the Access Rule you want to apply to the link.
- Properties Click this button to view or change the Access Rule properties, including the Access Rule’s conditional expression.
- Clear Click this button if you want to remove the Access Rule from the Access Template link.
- To see if a given link has an Access Rule applied, refer to the Access Rule field in the list of Access Template links.