Chapter 12. Authorization for Enrolling Certificates (Access Evaluators)
This chapter describes the authorization mechanism using access evaluators.
For instructions on how to edit certificate enrollment profiles, see Section 3.2, “Setting up certificate profiles”.
12.1. Authorization Mechanism Copy linkLink copied to clipboard!
In addition to the authentication mechanism, each enrollment profile can be configured to have its own authorization mechanism. The authorization mechanism is executed only after a successful authentication.
The authorization mechanism is provided by the Access Evaluator plug-in framework. Access evaluators are pluggable classes that are used for evaluating access control instructions (ACI) entries. The mechanism provides an evaluate method that takes a predefined list of arguments (that is, type
, op
, value
), evaluates an expression such as group='Certificate Manager Agents'
and returns a boolean depending on the result of evaluation.
12.2. Default Evaluators Copy linkLink copied to clipboard!
Red Hat Certificate System provides four default evaluators. The following entries are listed by default in the CS.cfg
file:
accessEvaluator.impl.group.class=com.netscape.cms.evaluators.GroupAccessEvaluator accessEvaluator.impl.ipaddress.class=com.netscape.cms.evaluators.IPAddressAccessEvaluator accessEvaluator.impl.user.class=com.netscape.cms.evaluators.UserAccessEvaluator accessEvaluator.impl.user_origreq.class=com.netscape.cms.evaluators.UserOrigReqAccessEvaluator
accessEvaluator.impl.group.class=com.netscape.cms.evaluators.GroupAccessEvaluator
accessEvaluator.impl.ipaddress.class=com.netscape.cms.evaluators.IPAddressAccessEvaluator
accessEvaluator.impl.user.class=com.netscape.cms.evaluators.UserAccessEvaluator
accessEvaluator.impl.user_origreq.class=com.netscape.cms.evaluators.UserOrigReqAccessEvaluator
The
group
access evaluator evaluates the group membership properties of a user. For example, in the following enrollment profile entry, only the CA agents are allowed to go through enrollment with that profile:authz.acl=group="Certificate Manager Agents"
authz.acl=group="Certificate Manager Agents"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
ipaddress
access evaluator evaluates the IP address of the requesting subject. For example, in the following enrollment profile entry, only the host bearing the specified IP address can go through enrollment with that profile:authz.acl=ipaddress="a.b.c.d.e.f"
authz.acl=ipaddress="a.b.c.d.e.f"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
user
access evaluator evaluates the user ID for exact match. For example, in the following enrollment profile entry, only the user matching the listed user is allowed to go through enrollment with that profile:authz.acl=user="bob"
authz.acl=user="bob"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
user_origreq
access evaluator evaluates the authenticated user against a previous matching request for equality. This special evaluator is designed specifically for renewal purpose to make sure the user requesting the renewal is the same user that owns the original request. For example, in the following renewal enrollment profile entry, the UID of the authenticated user must match the UID of the user requesting the renewal:authz.acl=user_origreq="auth_token.uid"
authz.acl=user_origreq="auth_token.uid"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
New evaluators can be written in the current framework and can be registered through the CS console. The default evaluators can be used as templates to expand and customize into more targeted plug-ins.