本章介绍如何配置和维护用户授权,并介绍如何在AEM中进行身份验证和授权工作的原理。
本节将更详细地介绍各种实体和相关概念,以帮助您配置易于维护的用户管理概念。
用户将使用其帐户登录AEM。 每个用户帐户都是唯一的,它包含基本帐户详细信息以及分配的权限。
用户通常是组的成员,这可以简化这些权限和/或权限的分配。
组是用户和/或其他组的集合;这些都称为群组成员。
其主要目的是通过减少要更新的实体数来简化维护过程,因为对组所做的更改会应用于组的所有成员。 群体通常反映:
因此,组通常保持稳定,而用户来来去的频率更高。
通过规划和清晰的结构,使用组可以反映您的结构,从而为您提供清晰的概述和高效的更新机制。
AEM WCM安装大量用户和组。 在安装后首次访问安全控制台时,将会看到这些内容。
下表列出了每个项目及:
请更改所有默认密码 (如果在某些情况下不删除帐户本身)。
用户 ID | 类型 | 描述 | 推荐 |
管理员 默认密码:管理员 |
用户 | 具有完全访问权限的系统管理帐户。 此帐户用于AEM WCM和CRX之间的连接。 如果意外删除了此帐户,则在重新启动存储库(在默认设置中)时,将重新创建此帐户。 管理员帐户是AEM平台的一项要求。 因此,无法删除此帐户。 |
Adobe强烈建议将此用户帐户的密码从默认值更改为。 最好在安装时,尽管可以在安装后完成。 注意:不要将此帐户与CQ Servlet引擎的管理员帐户混淆。 |
匿名
|
用户 | 保留对实例的未经身份验证访问的默认权限。 默认情况下,此设置将保留最低访问权限。 如果意外删除了此帐户,则会在启动时重新创建该帐户。 无法永久删除,但可以禁用。 |
请避免删除或禁用此帐户,因为这将对创作实例的功能产生负面影响。 如果存在要求您删除该文件的安全要求,请确保首先正确测试该文件对系统的影响。 |
作者 默认密码:作者 |
用户 | 允许作者帐户写入/content。 包含参与者和冲浪者权限。 可以用作Webmaster,因为它有权访问整个/content树。 这不是内置用户,而是另一个geometrixx演示用户 |
Adobe建议完全删除帐户,或从默认值更改密码。 最好在安装时,尽管可以在安装后完成。 |
管理员 | 组 | 为其所有成员授予管理员权限的组。 只允许管理员编辑此群组。 具有完全访问权限。 |
如果您在节点上设置“deny-everyone”,则只有在再次为该组启用该属性时,管理员才具有访问权限。 |
content-authors | 组 | 负责内容编辑的组。 需要读取、修改、创建和删除权限。 |
您可以创建自己的内容创作组,并具有项目特定的访问权限,前提是您添加读取、修改、创建和删除权限。 |
contributor | 组 | 允许用户写入内容的基本权限(仅在功能中)。 不向/content树分配任何权限 — 必须专门为各个组或用户分配这些权限。 |
|
dam-users | 组 | 典型AEM Assets用户的现成引用组。 此组的成员具有相应权限,可启用资产和收藏集的上传/共享。 | |
每个 | 组 | AEM中的每个用户都是组中每个人的成员,即使您可能看不到该组或所有工具中的成员资格关系。 此组可以被视为默认权限,因为它可用于为每个人(甚至是将来创建的用户)应用权限。 |
请勿修改或删除此组。 修改此帐户会涉及其他安全问题。 |
标记管理员 | 组 | 允许编辑标记的组。 | |
用户管理员 | 组 | 授权用户管理,即创建用户和群组的权限。 | |
工作流编辑器 | 组 | 允许创建和修改工作流模型的组。 | |
工作流用户 | 组 | 参与工作流的用户必须是组工作流用户的成员。 这样,他/她就可以完全访问:/etc/workflow/instances,以便他/她可以更新工作流实例。 该组包含在标准安装中,但您必须手动将用户添加到该组。 |
AEM使用ACL来确定用户或组可以执行哪些操作以及可以在何处执行这些操作。
权限定义允许谁对资源执行哪些操作。 权限是访问控制评估的结果。
您可以通过选中或清除单个AEM actions对应的复选框,来更改授予/拒绝给定用户的权限。 复选标记表示允许执行操作。 无复选标记表示操作被拒绝。
复选标记位于网格中的位置还指示用户在AEM中的哪些位置(即哪些路径)拥有哪些权限。
可以对页面(资源)执行操作。 对于层次结构中的每个页面,您可以指定允许用户对该页面执行哪项操作。 🔗 允许您允许或拒绝某个操作。
操作 | 描述 |
读取 | 允许用户读取页面和任何子页面。 |
修改 | 用户可以:
在JCR级别,用户可以通过修改资源的属性、锁定、版本控制、nt-modification来修改资源,并且他们对定义jcr:content子节点的节点(例如cq:Page、nt:file、cq:Asset)具有完全写入权限。 |
创建 | 用户可以:
如果拒绝modify,则明确排除jcr:content下的子树,因为创建jcr:content及其子节点被视为页面修改。 这仅适用于定义jcr:content子节点的节点。 |
删除 | 用户可以:
如果拒绝modify,则明确排除jcr:content下的任何子树作为删除jcr:content,其子节点将被视为页面修改。 这仅适用于定义jcr:content子节点的节点。 |
读取 ACL | 用户可以读取页面或子页面的访问控制列表。 |
编辑 ACL | 用户可以修改页面或任何子页面的访问控制列表。 |
复制 | 用户可以将内容复制到其他环境(例如,发布环境)。 该权限也应用于任何子页面。 |
AEM会自动为Collections中的角色分配(所有者、编辑者、查看者)生成用户组。 但是,手动为此类组添加ACL可能会在AEM中引入安全漏洞。 Adobe建议您避免手动添加ACL。
AEM WCM使用访问控制列表(ACL)来组织应用于各个页面的权限。
访问控制列表由各个权限组成,用于确定实际应用这些权限的顺序。 根据所考虑页面的层次结构形成列表。 然后,将从下到上扫描此列表,直到找到应用于页面的第一个适当权限为止。
示例中包含一些ACL。 建议您查看并确定适合您的应用程序的内容。 要查看包含的ACL,请转到CRXDE ,并为以下节点选择Access Control选项卡:
/etc/cloudservices/facebookconnect/geometrixx-outdoorsfacebookapp
:允许每个人读取访问权限。
/etc/cloudservices/twitterconnect/geometrixx-outdoors-twitter-app
:允许每个人读取访问权限。
/home/users/geometrixx-outdoors
:允许每个人读取*/profile*
和
*/social/relationships/following/*
。
您的自定义应用程序可以设置对其他关系(如*/social/relationships/friend/*
或*/social/relationships/pending-following/*
)的访问权限。
创建特定于社区的ACL时,加入这些社区的成员可能会被授予额外的权限。 例如,当用户在/content/geometrixx-outdoors/en/community/hiking
或/content/geometrixx-outdoors/en/community/winter-sports
处加入社区时,可能会出现这种情况。
对于CQ 5.3用户:
与以前的CQ版本相比,如果用户只需要修改页面,则不应再授予create和delete。 相反,仅当您希望用户能够在现有页面上创建、修改或删除组件时,才应授予modify操作。
出于向后兼容性的考虑,操作测试未考虑定义jcr:content的节点的特殊处理。
操作 | 描述 |
---|---|
允许(复选标记) | AEM WCM允许用户在此页面或任何子页面上执行操作。 |
拒绝(无复选标记) | AEM WCM不允许用户在此页面上或任何子页面上执行操作。 |
权限也会应用于任何子页面。
如果权限不是从父节点继承的,但至少具有一个本地条目,则以下符号会附加到复选框中。 本地条目是在CRX 2.2接口中创建的条目(通配符ACL当前只能在CRX中创建。)
对于给定路径上的操作:
*(星号) | 至少有一个本地条目(有效或无效)。 这些通配符ACL在CRX中定义。 |
! (感叹号) | 至少有一个条目当前无效。 |
将鼠标悬停在星号或感叹号上时,工具提示会提供有关声明条目的更多详细信息。 工具提示分为两部分:
上部 | 列出有效条目。 |
下部 | 列出可能在树中其他位置产生影响的无效条目(如具有相应ACE的特殊属性所表示,该属性限制了条目的范围)。 或者,这是一个条目,其效果已被在给定路径或上级节点上定义的另一个条目撤消。 |
如果未为页面定义权限,则所有操作都将被拒绝。
以下是有关管理访问控制列表的建议:
请勿直接将权限分配给用户。 仅将其分配给组。
这将简化维护过程,因为组数量远小于用户数量,而且波动性也较小。
如果您希望组/用户只能修改页面,请勿授予他们创建或拒绝权限。 仅授予他们修改和读取权限。
少用拒绝。 尽可能仅使用允许。
如果按与预期顺序不同的顺序应用权限,则使用拒绝可能会导致意外影响。 如果用户是多个组的成员,则来自一个组的Deny语句可以取消来自另一个组的Allow语句,反之亦然。 发生此情况时,很难保留概览,并且很容易导致意外结果,而“允许”分配不会导致此类冲突。
Adobe建议您使用“允许”而不是“拒绝”,请参阅最佳实践。
在修改任一权限之前,请确保您了解这些权限的工作方式和相互关系。 请参阅CRX文档,以说明AEM WCM 如何评估访问权限以及有关设置访问控制列表的示例。
通过这些权限,用户和群组有权访问AEM页面上的AEM功能。
通过展开/折叠节点按路径浏览权限,并可跟踪到根节点的权限继承。
您可以通过选中或清除相应的复选框来允许或拒绝权限。
除了网格视图之外,AEM还提供给定路径下选定用户/群组权限的详细视图。 详细信息视图提供其他信息。
除了查看信息外,您还可以包含当前用户或组或将其从组中排除。 请参阅添加权限时添加用户或组。 此处所做的更改会立即反映在详细视图的上部。
要访问“详细信息”视图,请在权限选项卡中,单击任何选定组/用户和路径的详细信息。
详细信息分为两部分:
上部 | 重复在树网格中看到的信息。 对于每个操作,都会显示一个图标,显示是允许还是拒绝该操作:
|
下部 | 显示执行以下操作的用户和组的网格:
|
借助模拟功能,用户可以代表其他用户工作。
这意味着用户帐户可以指定其他可以使用其帐户运行的帐户。 换言之,如果允许用户B模拟用户A,则用户B可以使用用户A的完整帐户详细信息执行操作。
这样,模拟员帐户就可以像使用模拟员帐户一样完成任务;例如,在缺勤期间或在短期内共享过多负载。
为了模拟为非管理员用户工作,模拟器(在上述示例中为user-B)需要在/home/users
路径中具有READ权限。
有关如何实现此操作的更多信息,请参阅AEM🔗中的权限。
如果一个帐户模拟另一个帐户,则很难查看。 模拟开始和结束时,审核日志中会有一个条目,但其他日志文件(如访问日志)不包含有关事件上发生模拟的事实的信息。 因此,如果用户B模拟用户A,则所有事件看起来都像是用户A个人执行的。
模拟用户身份时可以执行页面锁定。但是,以这种方式锁定的页面随后只能由被模拟的用户或拥有管理员权限的用户解锁。
不能通过模拟锁定页面的用户的身份来解锁页面。
以下介绍了使用权限和权限时的最佳实践:
规则 | 原因 |
---|---|
使用群组 | 避免按用户分配访问权限。 原因有多种:
|
积极 | 始终使用Allow语句指定组的权限(尽可能)。 避免使用Deny语句。 按顺序评估组,并且顺序可以按用户不同进行定义。 换句话说:您可能对语句的实施和评估顺序几乎没有控制权。 如果仅使用Allow语句,则顺序无关紧要。 |
保持简单 | 在配置新安装时花一些时间和时间思考就能得到很好的回报。 应用清晰的结构将简化持续的维护和管理,确保您的当前同事和/或未来继任者都能够轻松了解正在实施的内容。 |
测试 | 使用测试安装来实践并确保您了解各种用户和组之间的关系。 |
默认用户/组 | 请始终在安装后立即更新默认用户和组,以帮助防止出现任何安全问题。 |
用户包括使用系统的人员和向系统发出请求的外国系统。
群组是一组用户。
这两种配置都可以使用安全控制台中的用户管理功能进行配置。
您可以使用安全控制台访问所有用户、组和关联的权限。 本节中描述的所有过程都将在此窗口中执行。
要访问AEM WCM安全性,请执行以下操作之一:
https://<server>:<port>/useradmin
。 确保您以管理员身份登录AEM。此时将显示以下窗口:
左侧树列出了系统中当前的所有用户和组。 您可以选择要显示的列,对列的内容进行排序,甚至通过将列标题拖动到新位置来更改列的显示顺序。
通过选项卡,可以访问各种配置:
选项卡· | 描述 |
---|---|
过滤器框 | 用于筛选列出的用户和/或组的机制。 请参阅筛选用户和组。 |
隐藏用户 | 一个切换开关,将隐藏列出的所有用户,仅保留群组。 请参阅隐藏用户和组。 |
隐藏组 | 一个切换开关,将隐藏列出的所有组,仅保留用户。 请参阅隐藏用户和组。 |
编辑 | 用于创建和删除以及激活和停用用户或组的菜单。 请参阅创建用户和组和删除用户和组。 |
属性 | 列出有关用户或组的信息,这些信息可以包含电子邮件信息、描述和名称信息。 还允许您更改用户的密码。 请参阅创建用户和组、修改用户和组属性和更改用户密码。 |
组 | 列出选定用户或组所属的所有组。 您可以将选定的用户或组分配给其他组或从组中删除它们。 请参阅组。 |
成员 | 仅适用于组。 列出特定组的成员。 请参阅成员。 |
权限 | 您可以向用户或群组分配权限。 允许您控制以下内容: |
模拟者 | 允许其他用户模拟该帐户。 当您需要用户代表其他用户执行操作时,此变量非常有用。 请参阅模拟用户。 |
首选项 | 设置组或用户🔗的首选项。 例如,语言首选项。 |
您可以通过输入过滤器表达式来过滤列表,该表达式会隐藏与表达式不匹配的所有用户和组。 您还可以使用隐藏用户和隐藏群组按钮来隐藏用户和群组。
要筛选用户或组,请执行以下操作:
在左树列表中,在提供的空格中键入过滤器表达式。 例如,输入admin将显示包含此字符串的所有用户和组。
单击放大镜以过滤列表。
如果要删除所有过滤器,请单击x。
隐藏用户或组是筛选系统中所有用户和组列表的另一种方法。 有两种切换机制。 单击“隐藏用户”可隐藏视图中的所有用户,单击“隐藏组”可隐藏视图中的所有组(您不能同时隐藏用户和组)。 要使用过滤器表达式过滤列表,请参阅过滤用户和组。
要隐藏用户和群组,请执行以下操作:
在Security控制台中,单击隐藏用户或隐藏组。 选定按钮将突出显示。
要使用户或组重新显示,请再次单击相应的按钮。
要创建新用户或群组,请执行以下操作:
在Security控制台树列表中,单击Edit,然后单击Create User或Create Group。
根据您是创建用户还是群组,输入所需的详细信息。
单击创建。创建的用户或组将显示在树列表中。
要删除用户或组,请执行以下操作:
要修改用户和群组属性,请执行以下操作:
在Security控制台中,双击要修改的用户或组名称。
单击属性选项卡,进行所需的更改,然后单击保存。
用户的路径显示在用户属性的底部。 无法修改。
请按照以下过程修改用户的密码。
您无法使用安全控制台更改管理员密码。 要更改管理员帐户的密码,请使用Granite Operations提供的Users console。
在Security控制台中,双击要更改其密码的用户名。
单击属性选项卡(如果尚未激活)。
单击设置密码。 “Set Password(设置密码)”窗口将打开,您可以在其中更改密码。
输入新密码两次;由于它们未以明文显示,因此这是为了进行确认 — 如果它们不匹配,则系统会显示错误。
单击设置以激活帐户的新密码。
AEM提供了三种将用户或组添加到现有组的不同方法:
组选项卡显示当前帐户所属的组。 您可以使用它将所选帐户添加到群组:
双击要分配给群组的帐户(用户或群组)名称。
单击Groups选项卡。 您会看到帐户已属于的组列表。
在树列表中,单击要添加到帐户的组名称,并将其拖动到组窗格。 (如果要添加多个用户,请按住Shift并单击或按住Control并单击这些名称并拖动它们。)
单击Save以保存更改。
成员选项卡仅适用于组,并显示哪些用户和组属于当前组。 您可以使用它将帐户添加到群组:
双击要向其添加成员的组的名称。
单击Members选项卡。 您会看到已属于此组的成员列表。
在树列表中,单击要添加到组的成员的名称,并将其拖动到Members窗格。 (如果要添加多个用户,请按住Shift并单击或按住Control并单击这些名称并拖动它们。)
单击Save以保存更改。
要将成员添加到特定路径中的组,请执行以下操作:
双击要将用户添加到的组或用户的名称。
单击权限选项卡。
导航到要添加权限的路径,然后单击Details。 详细信息窗口的下半部分提供有关谁具有该页面权限的信息。
选中成员列中要拥有该路径权限的成员的复选框。 清除要删除其权限的成员的复选框。 在您对进行更改的单元格中,会出现一个红色三角形。
单击确定以保存您的更改。
AEM提供了三种从群组中删除用户或组的不同方法:
要从群组中删除用户或组帐户,请执行以下操作:
双击要从群组中删除的群组或用户帐户的名称。
单击Groups选项卡。 您会看到选定帐户所属的组。
在组窗格中,单击要从组中删除的用户或组的名称,然后单击删除。 (如果要删除多个帐户,请按住Shift键并单击或按住Control键并单击这些名称,然后单击删除。)
单击Save以保存更改。
要从组中删除帐户,请执行以下操作:
双击要从中删除成员的组名称。
单击Members选项卡。 您会看到已属于此组的成员列表。
在成员窗格中,单击要从组中删除的成员的名称,然后单击删除。 (如果要删除多个用户,请按住Shift并单击或按住Control并单击这些名称,然后单击删除。)
单击Save以保存更改。
要从特定路径的组中删除成员:
双击要从中删除用户的组或用户的名称。
单击权限选项卡。
导航到要删除权限的路径,然后单击Details。 详细信息窗口的下半部分提供有关谁具有该页面权限的信息。
选中成员列中要拥有该路径权限的成员的复选框。 清除要删除其权限的成员的复选框。 在您对进行更改的单元格中,会出现一个红色三角形。
单击确定以保存您的更改。
当部署为发布场时,需要在所有发布节点之间同步用户和组。
要了解用户同步及其启用方法,请参阅用户同步。
本节介绍如何设置权限,包括复制权限。
权限允许用户在特定路径上对资源执行特定操作。 它还包括创建或删除页面的功能。
要添加、修改或删除权限,请执行以下操作:
在Security控制台中,双击要为或搜索节点设置权限的用户或组的名称。
单击权限选项卡。
在树网格中,选中一个复选框,以允许选定的用户或组执行某项操作,或清除一个复选框以拒绝选定的用户或组执行某项操作。 有关详细信息,请单击详细信息。
完成后,单击Save。
复制权限是发布内容的权限,它可以为组和用户设置。
要设置复制权限,请执行以下操作:
从列表中选择用户或组,双击以打开,然后单击权限。
在网格中,导航到希望用户具有复制权限的路径或搜索节点。🔗
在选定路径的复制列中,选中用于添加该用户或组的复制权限的复选框,或清除用于删除复制权限的复选框。 AEM会在您所做更改但尚未保存的位置显示一个红色三角形。
单击Save以保存更改。
添加或删除权限时,您可以浏览或搜索节点。
路径搜索有两种不同类型:
在搜索框中,您可以执行以下操作:
操作 | 它的作用 |
---|---|
向右箭头键 | 在搜索结果中选择子节点 |
向下箭头键 | 再次开始搜索。 |
Enter(Return)键 | 选择子节点并将其加载到树状网格中 |
要对路径或全文执行搜索,请执行以下操作:
在“安全”控制台中,选择一个用户或组,然后单击权限选项卡。
在搜索框中,输入要搜索的术语。
您可以指定一个或多个允许模拟当前用户的用户。 这意味着他们可以将其帐户设置切换为当前用户的帐户设置,并代表此用户执行操作。
使用此函数时请务必谨慎,因为此函数可能允许用户执行其自己用户无法执行的操作。 模拟用户时,系统会通知用户他们未以自己的身份登录。
您可能希望使用此功能的各种情况,包括:
要模拟现有用户,请执行以下操作:
在树列表中,选择要为其他用户分配模拟身份的人员的姓名。 双击以打开。
单击模拟器选项卡。
单击您希望能够模拟选定用户的用户。 将用户(将模拟的用户)从列表拖到“模拟”窗格。 该名称会显示在列表中。
单击保存。
要设置用户和组首选项,包括语言、窗口管理和工具栏首选项:
在左侧树中选择要更改其首选项的用户或组。 要选择多个用户或组,请按住Ctrl或Shift并单击您的选择。
单击首选项选项卡。
根据需要对组或用户首选项进行更改,完成后单击保存。
要将用户或管理员设置为具有删除/激活/取消激活其他用户的权限,请执行以下操作:
将要授予权限以管理其他用户的用户添加到管理员组并保存更改。
在用户的Permissions选项卡中,导航到“/”,在“复制”列中,选中允许复制的复选框,然后单击Save。
现在,所选用户能够停用、激活、删除和创建用户。
如果您计划实施特定于应用程序的权限,以下信息将描述您在实施自定义权限时需要了解的信息以及如何在整个CQ中强制实施该权限:
层次结构修改权限由jcr权限的组合覆盖。 复制权限名为crx:replicate,该权限与jcr存储库的其他权限一起存储/评估。 但是,它并未在jcr级别上强制执行。
自定义权限的定义和注册正式包含在Jackrabbit API版本2.4中(另请参阅JCR-2887)。 JCR访问控制管理涵盖进一步的使用,如JSR 283(第16节)定义的。 此外,Jackrabbit API还定义了几个扩展。
权限注册机制反映在Repository Configuration下的UI中。
新(自定义)权限的注册本身受必须在存储库级别(在JCR中:在ac mgt api中将“null”作为“absPath”参数传递,有关详细信息,请参阅jsr 333)。 默认情况下,admin和管理员的所有成员都具有该权限。
虽然实施会负责验证和评估自定义权限,但除非这些权限是内置权限的聚合,否则将无法强制执行这些权限。