Basic privileges which allow the user to write content (as in functionality only).

Does not allocate any privileges to the /content tree - these must be specifically allocated for the individual groups or users.

dam-users

Group

Out-of-the-box reference group for a typical AEM Assets user. Members of this group have appropriate privileges to enable uploading/sharing of assets and collections.

everyone

Group

Every user in AEM is a member of the group everyone, even though you may not see the group or the membership relation in all tools.

This group can be thought of as the default rights as it can be used to apply permissions for everyone, even users that will be created in the future.

Do not modify or delete this group.

Modifying this account has additional security implications.

tag-administrators

Group

Group that is allowed to edit tags.

user-administrators

Group

Authorizes user administration, that is, the right to create users and groups.

workflow-editors

Group

Group that is allowed to create and modify workflow models.

workflow-users

Group

A user participating in a workflow must be member of group workflow-users. This gives him or her full access to: /etc/workflow/instances so that he or she can update the workflow instance.

The group is included in the standard installation, but you must manually add your users to the group.

Permissions in AEM

AEM uses ACLs to determine what actions a user or group and can take and where it can perform those actions.

Permissions and ACLs

Permissions define who is allowed to perform which actions on a resource. The permissions are the result of access control evaluations.

You can change the permissions granted/denied to a given user by selecting or clearing the checkboxes for the individual AEM actions. A check mark indicates that an action is allowed. No checkmark indicates that an action is denied.

Where the checkmark is located in the grid also indicates what permissions users have in what locations within AEM (that is, which paths).

Actions

Actions can be performed on a page (resource). For each page in the hierarchy, you can specify which action the user is allowed to take on that page. Permissions enable you to allow or deny an action.

Action

Description

Read

The user is allowed to read the page and any child pages.

Modify

The user can:

modify existing content on the page and on any child pages.

create new paragraphs on the page or on any child page.

/li>

At the JCR level, users can modify a resource by modifying its properties, locking, versioning, nt-modifications, and they have complete write permission on nodes defining a jcr:content child node, for example cq:Page, nt:file, cq:Asset.

Create

The user can:

create a new page or child page.

If modify is denied the subtrees below jcr:content are specifically excluded because the creation of jcr:content and its child nodes are considered a page modification. This only applies to nodes defining a jcr:content child node.

Delete

The user can:

delete existing paragraphs from the page or any child page.

delete a page or child page.

If modify is denied any subtrees below jcr:content are specifically excluded as removing jcr:content and its child nodes is considered a page modification. This only applies to nodes defining a jcr:content child node.

Read ACL

The user can read the access control list of the page or child pages.

Edit ACL

The user can modify the access control list of the page or any child pages.

Replicate

The user can replicate content to another environment (for example, the Publish environment). The privilege is also applied to any child pages.

Access Control Lists and how they are evaluated

AEM WCM uses Access Control Lists (ACLs) to organize the permissions being applied to the various pages.

Access Control Lists are made up of the individual permissions and are used to determine the order in which these permissions are actually applied. The list is formed according to the hierarchy of the pages under consideration. This list is then scanned bottom-up until the first appropriate permission to apply to a page is found.

Note:

There are ACLs that are included with the samples. It is recommended that you review and determine what is appropriate for your applications. To review the ACLs that are included, go to CRXDE and select the Access Control tab for the following nodes:

Your custom application may set access for other relationships, such as */social/relationships/friend/* or */social/relationships/pending-following/*.

When you create ACLs specific to communities, members joining those communities may be granted additional permissions. For example, this could be the case when users join the communities at /content/geometrixx-outdoors/en/community/hiking or /content/geometrixx-outdoors/en/community/winter-sports.

Permission States

Note:

For CQ 5.3 users:

In contrast to previous CQ versions, create and delete should no longer be granted if a user only needs to modify pages. Instead, grant the modify action only if you want users to be able to create, modify, or delete components on existing pages.

For backwards compatibility reasons, the tests for actions does not take the special treatment of nodes defining jcr:content into account.

Action

Description

Allow (Check mark)

AEM WCM allows the user to perform the action on this page or on any child pages.

Deny (No checkmark)

AEM WCM does not allow the user to perform the action on this page nor on any child pages.

The permissions are also applied to any child pages.

If a permission is not inherited from the parent node but has at least one local entry for it, then the following symbols are appended to the check box. A local entry is one that is created in the CRX 2.2 interface (Wildcard ACLs currently can only be created in CRX.)

For an action at a given path:

* (asterisk)

There is at least one local entry (either effective or ineffective). These wildcard ACLs are defined in CRX.

! (exclamation mark)

There is at least one entry that currently has no effect.

When you hover over the asterisk or exclamation mark, a tooltip provides more details about the declared entries. The tooltip is split into two parts:

Upper part

Lists the effective entries.

Lower part

Lists the noneffective entries that may have an effect somewhere else in the tree (as indicated by a special attribute present with the corresponding ACE limiting the scope of the entry). Alternatively, this is an entry whose effect has been revoked by another entry defined at the given path or at an ancestor node.

Note:

If no permissions are defined for a page then all actions are denied.

The following are recommendations about managing access control lists:

Do not assign permissions directly to users. Assign them only to groups.

This will simplify the maintenance, as the number of groups is much smaller than the number of users, and also less volatile.

If you want a group/user to be able only to modify pages, do not grant them create or deny rights. Only grant them modify and read rights.

Use Deny sparingly. As far as possible use only Allow.

Using deny can cause unexpected effects if the permissions are applied in a different order than the order expected. If a user is a member of more than one group, the Deny statements from one group may cancel the Allow statement from another group or vice versa. It is hard to keep an overview when this happens and can easily lead to unforeseen results, whereas Allow assignments do not cause such conflicts.

Adobe recommends that you work with Allow rather than Deny see Best Practices.

Before modifying either permission, be sure you understand how they work and inter-relate. See the CRX documentation to illustrate how AEM WCM evaluates access rights and examples on setting up access control lists.

Permissions

You browse permissions by path by expanding/collapsing the nodes and you can track the permission inheritance up to the root node.

You allow or deny permissions by selecting or clearing the appropriate check boxes.

Viewing Detailed Permission Information

Along with the grid view, AEM provides a detailed view of permissions for a selected user/group at a given path. The detail view provides additional information.

In addition to viewing information, you can also include or exclude the current user or group from a group. See Adding Users or Groups while Adding Permissions. Changes made here are immediately reflected in the upper portion of the detailed view.

To access the Detail view, in the Permissions tab, click Details for any selected group/user and path.

Details are split into two parts:

Upper part

Repeats the information you see in the tree grid. For each action, an icon shows whether the action is allowed or denied:

no icon = no declared entry

(tick) = declared action (allow)

(-) = declared action (deny)

Lower part

Shows the grid of users and groups that does the following:

Declares an entry for the given path AND

Is the given authorizable OR is a group

Impersonating another User

With the Impersonate functionality a user can work on behalf of another user.

This means that a user account can specify other accounts that can operate with their account. In other words, if user-B is allowed to impersonate user-A, then user-B can take actions using the full account details of user-A.

This allows the impersonator accounts to complete tasks as if they were using the account they are impersonating; for example, during an absence or to share an excessive load short-term.

Caution:

If one account impersonates another it is very difficult to see. An entry is made in the audit log when the impersonation starts and ends, but the other log files (such as the access log) hold no information about the fact that impersonation has occurred on the events. So if user-B is impersonating user-A all events will look as if they were performed by user-A personally.

Best Practices

The following describes best practices when working with permissions and privileges:

Rule

Reason

Use Groups.

Avoid assigning access rights on a user-by-user basis. There are several reasons for this:

You have many more users than groups, so groups simplify the structure.

Groups help provide an overview over all accounts.

Inheritance is simpler with groups.

Users come and go. Groups are long-term.

Be Positive.

Always use Allow statements to specify the group’s rights (wherever possible). Avoid using a Deny statement.

Groups are evaluated in order, and the order may be defined differently per user.

In other words: You may have little control over the order in which the statements are implemented and evaluated. If you use only Allow statements, the order does not matter.

Keep It Simple

Investing some time and thought when configuring a new installation will be well repaid.

Applying a clear structure will simplify the ongoing maintenance and administration, ensuring that both your current colleagues and/or future successors can easily understand what is being implemented.

Test

Use a test installation to practice and ensure that you understand the relationships between the various users and groups.

Default Users/Groups

Always update the Default Users and Groups immediately after installation to help prevent any security issues.

Managing Users and Groups

Users include people using the system and foreign systems making requests to the system.

A group is a set of users.

Both can be configured using the User Administration functionality within the Security Console.

Accessing User Administration with the Security Console

You access all users, groups, and associated permissions using the Security console. All the procedures described in this section are performed in this window.

To access AEM WCM security, do one of the following:

From the Welcome screen or various locations in AEM, click the security icon:

Navigate directly to http://<server>:<port>/useradmin. Be sure you log into AEM as an administrator.

The following window displays:

The left tree lists all the users and groups currently in the system. You can select the columns you want displayed, sort the contents of the columns, and even change the order in which the columns are displayed by dragging the column-header to a new position.

Filtering Users and Groups

You can filter the list by entering a filter expression, which hides all the users and groups that do not match the expression. You can also hide users and groups by using the Hide User and Hide Group buttons.

To filter users or groups:

In the left tree list, type your filter expression in the space provided. For example, entering admin displays all users and groups containing this string.

Click the magnifying glass to filter the list.

Click the x when you want to remove all filters.

Hiding Users and Groups

Hiding users or groups is another way to filter the list of all users and groups in a system. There are two toggle mechanisms. Clicking Hide User hides all users from view and clicking Hide Groups hides all groups from view (you cannot hide both users and groups at the same time). To filter the list by using a filter expression, see Filtering users and groups.

To make either users or groups reappear, click the corresponding button again.

Creating Users and Groups

To create a new user or group:

In the Security console tree list, click Edit and then either Create User or Create Group.

Enter the required details, according to whether you are creating a user or a group.

If you select Create User, you enter the Login ID, first and last name, e-mail address and a password. By default, AEM creates a path based on the first letter of the last name, but you can select another path.

If you select Create Group, you enter a group ID and an optional description.

Click Create. The user or group you created appears in the tree list.

Deleting Users and Groups

To delete a user or group:

In the Security console, select the user or group you want to delete. If you want to delete multiple items, Shift+click or Control+click to select them.

Modifying User and Group Properties

In the Security console, double-click the user or group name you want to modify.

Click the Properties tab, make the required changes, and click Save.

Note:

The path of the user is displayed at the bottom of the user properties. It cannot be modified.

Changing a User Password

Use the following procedure to modify a user's password.

Note:

You cannot use the Security console to change the admin password. To change the password for the admin account, use the Users console that Granite Operations provides.

In the Security console, double-click the user name you want to change the password for.

Click the Properties tab (if not already active).

Click Set Password. The Set Password window opens where you can change your password.

Enter the new password twice; as they are not displayed in clear text this is for confirmation - if they do not match, the system shows an error.

Click Set to activate the new password for the account.

Adding Users or Groups to a Group

AEM offers three different ways to add users or groups to an existing group:

When you are in the group, you can add members (either users or groups).

When you are in the member, you can add members to groups.

When you are working on Permissions, you can add members to groups.

Groups - Adding Users or Groups to a Group

The Groups tab shows you which groups the current account belongs to. You can use it to add the selected account to a group:

Double-click the name of the account (user or group) that you want to assign to a group.

Click the Groups tab. You see a list of groups that the account already belongs to.

In the tree list, click the name of the group you want to add to the account to and drag it to the Groups pane. (If you want to add multiple users, Shift+click or Control+click those names and drag them.)

Click Save to save your changes.

Members - Adding Users or Groups to a Group

The Members tab only works for groups and shows you which users and groups belong to the current group. You can used it to add accounts to a group:

Double-click the name of the group you want to add members to.

Click the Members tab. You see a list of members that already belong to this group.

In the tree list, click the name of the member you want to add to the group and drag it to the Members pane. (If you want to add multiple users, Shift+click or Control+click those names and drag them.)

Click Save to save your changes.

Adding Users or Groups while Adding Permissions

To add members to a group at in a certain path:

Double-click the name of the group or user that you want to add users to.

Click the Permissions tab.

Navigate to the path you want to add permissions to and click Details. The lower part of the details window provides information about who has permissions for that page.

Select the check box in the Member column for the members you want to have permissions to that path. Clear the check box for member you want to remove permissions for. A red triangle appears in the cell you made changes to.

Click OK to save your changes.

Removing Users or Groups from Groups

AEM offers three different ways to remove users or groups from a group:

When you are in the group profile, you can remove members (either users or groups).

When you are in the member profile, you can remove members from groups.

When you are working on Permissions, you can remove members from groups.

Groups - Removing Users or Groups from Groups

To remove a user or group account from a group:

Double-click the name of the group or user account you want to remove from a group.

Click the Groups tab. You see what groups the selected account belongs to.

In the Groups pane, click the name of the user or group you want to remove from the group and click Remove. (If you want to remove multiple accounts, Shift+click or Control+click those names and click Remove.)

Click Save to save your changes.

Members - Removing Users or Groups from Groups

To remove accounts from a group:

Double-click the name of the group you want to remove members from.

Click the Members tab. You see a list of members that already belong to this group.

In the Members pane, click the name of the member you want to remove from the group and click Remove. (If you want to remove multiple users, Shift+click or Control+click those names and and click Remove.)

Click Save to save your changes.

Removing Users or Groups while Adding Permissions

To remove members from a group at a certain path:

Double-click the name of the group or user that you want to remove users from.

Click the Permissions tab.

Navigate to the path you want to remove permissions to and click Details. The lower part of the details window provides information about who has permissions for that page.

Select the check box in the Member column for the members you want to have permissions to that path. Clear the check box for member you want to remove permissions for. A red triangle appears in the cell you made changes to.

Click OK to save your changes.

User Synchronization

When the deployment is a publish farm, users and groups need to be synchronized among all publish nodes.

Managing Permissions

This section describes how to set permissions, including replication privileges.

Setting Permissions

Permissions allow users to perform certain actions on resources at certain paths. It also includes the ability to create or delete pages.

To add, modify, or delete permissions:

In the Security console, double-click the name of the user or group you want to set permissions for or search for nodes.

Click the Permissions tab.

In the tree grid, select a check box to allow the selected user or group to perform an action or clear a check box to deny the selected user or group to perform an action. For more information click Details.

When finished, click Save.

Setting Replication Privileges

Replication privilege is the right to publish content, and it can be set for groups and users.

Note:

Any replication rights applied to a group apply to all the users in that group.

The Allow replication rights have a higher precedence than the Deny replication rights. See Permissions in AEM for more information.

To set replication privileges:

Select the user or group from the list, double-click to open, and click Permissions.

In the grid, navigate to the path where you want the user to have replication privileges or search for nodes.

In the Replicate column at the path selected, select a check box to add the replication privilege for that user or group, or clear the check box to remove the replication privilege. AEM displays a red triangle anywhere you have made changes that have not yet been saved.

Click Save to save your changes.

Searching for nodes

When adding or removing permissions, you can either browse or search for the node.

There are two different types of path search:

Path search - If the search string starts with a "/" then the search will search for the direct sub-nodes of the given path:

In the search box, you can do the following:

Right arrow key

Selects a sub-node in the search result

Down arrow key

Starts the search again.

Enter (Return) key

Selects a subnode and loads it in the treegrid

FullText search - If the search string does not start with a "/" then a fulltext search is executed on all the nodes under the path "/content."

To perform a search on paths or fulltext:

In the Security console, select a user or group and then click the Permissions tab.

In the Search box, enter a term to search for.

Impersonating Users

You can specify one or more users that are allowed to impersonate the current user. This means they can switch their account settings to those of the current user and act on behalf of this user.

Use this function with caution as it may allow users to perform actions that their own user cannot. When impersonating a user, users are notified that they are not logged in as themselves.

There are various scenarios when you may want to use this functionality, including:

If you are out of the office, you can let another person impersonate you while you are away. By using this feature, you can make sure that somebody has your access rights and you do not need to modify a user profile or give out your password.

You can use it for debugging purposes. For example, to see how the Web site looks for a user with restricted access rights. Also, if a user complains about technical problems, you can impersonate that user to diagnose and fix the problem.

To impersonate an existing user:

In the tree list, select the name of the person who you want to assign other users to impersonate. Double-click to open.

Click the Impersonators tab.

Click the user you want to be able to impersonate the selected user. Drag the user (who will impersonate) from the list to the Impersonate pane. The name appears in the list.

Click Save.

Setting User and Group Preferences

To set user and group preferences, including language, window management, and toolbar preferences:

Select the user or group whose preferences you want to change in the left-hand tree. To select multiple users or groups, Ctrl+click or Shift+click your selections.

Click the Preferences tab.

Make changes, as necessary to the group or user preferences and click Save when finished.

Setting users or administrators to have the privilege to manage other users

To set users or administrators to have the privileges to delete/activate/deactivate other users:

Add the user you want to give privileges to manage other users to the administrator group and save your changes.

In the user's Permissions tab, navigate to "/" and in the Replicate column, select the check box to allow replication at "/" and click Save.

The selected user now has the ability to deactivate, activate, delete, and create users.

Extending Privileges on a Project Level

If you plan to implement application-specific privileges, the following information describes what you need to know to implement a custom privilege and how to enforce it throughout CQ:

The hierarchy-modification privilege is covered by a combination of jcr-privileges. The replication privilege is named crx:replicate that is stored/evaluated along with other privileges on the jcr repository. It is, however, not enforced on the jcr level.

The definition and registration of custom privileges is officially part of the Jackrabbit API as of version 2.4 (see also JCR-2887). Further usage is covered by JCR Access Control Management such as definedby JSR 283 (section 16). In addition, the Jackrabbit API defines a couple of extensions.

The privilege registration mechanism is reflected in the UI under Repository Configuration.

The registration of new (custom) privileges is itself protected by a built-in privilege that must be granted on the repository level (in JCR: passing 'null' as the 'absPath' parameter in the ac mgt api, see jsr 333 for details). By default, admin and all members of administrators have that privilege granted.

Note:

While the implementation takes care of validating and evaluating custom privileges, it cannot enforce them unless they are aggregates of built-in privileges.

Twitter™ and Facebook posts are not covered under the terms of Creative Commons.