用户、组和访问权限管理 user-group-and-access-rights-administration
启用对CRX存储库的访问涉及几个主题:
基本元素包括:
用户帐户 - CRX通过根据用户帐户中保留的详细信息识别并验证用户(由该人员或其他应用程序)来验证访问权限。
在CRX中,每个用户帐户都是工作区中的一个节点。 CRX用户帐户具有以下属性:
-
它表示CRX的一名用户。
-
它包含用户名和密码。
-
适用于该工作区。
-
不能有子用户。 要获得分层访问权限,您应使用组。
-
您可以指定用户帐户的访问权限。
但是,为了简化管理,Adobe建议(在大多数情况下)为组帐户分配访问权限。 为每个用户分配访问权限会很快变得难以管理(当仅存在一两个实例时,某些系统用户例外)。
组帐户 — 组帐户是用户和/或其他组的集合。 这些权限用于简化管理,因为分配给组的访问权限更改会自动应用于该组中的所有用户。 用户不必属于任何组,但通常属于多个组。
在CRX中,组具有以下资产:
- 它表示一组具有共同访问权限的用户。 例如,作者或开发人员。
- 适用于该工作区。
- 它可以有成员;这些成员可以是个人用户或其他组。
- 可通过成员关系实现分层分组。 不能将组直接放在存储库中另一个组的下方。
- 您可以定义所有组成员的访问权限。
访问权限 - CRX使用访问权限来控制对存储库特定区域的访问。
这是通过将权限分配给允许或拒绝对存储库中的资源(节点或路径)的访问来完成的。 由于可以分配各种权限,因此必须评估这些权限以确定哪个组合适用于当前请求。
CRX允许您配置用户和组帐户的访问权限。 然后将同样的基本评估原则应用于两者。
如何评估访问权限 how-access-rights-are-evaluated
主体和主体 subjects-and-principals
在评估访问权限时,CRX使用两个关键概念:
-
主体 是一个具有访问权限的实体。 承担者包括:
-
用户帐户
-
组帐户
如果用户帐户属于一个或多个组,则它也会与每个组承担者相关联。
-
-
subject 用于表示请求的源。
它用于合并适用于该请求的访问权限。 这些源自:
-
用户主体
您直接分配给用户帐户的权限。
-
与该用户关联的所有组主体
所有权限都会分配给用户所属的任何组。
然后使用结果来允许或拒绝对请求资源的访问。
-
编译主体的访问权限列表 compiling-the-list-of-access-rights-for-a-subject
在CRX中,主题取决于:
- 用户主体
- 与该用户关联的所有组主体
适用于该主题的访问权限列表由以下内容构成:
- 您直接分配给用户帐户的权限
- 加上分配给用户所属任何组的所有权限
- CRX在编译列表时不考虑任何用户层次结构。
- 仅当您包括某个组作为另一个组的成员,CRX才使用组层次结构。 组权限没有自动继承。
- 指定组的顺序不会影响访问权限。
解决请求和访问权限 resolving-request-and-access-rights
CRX处理请求时,会将来自主体的访问请求与存储库节点上的访问控制列表进行比较:
因此,如果Linda请求更新以下存储库结构中的/features
节点:
优先顺序 order-of-precedence
CRX中的访问权限评估如下:
-
用户主体始终优先于组主体,不论如何:
- 在访问控制列表中的顺序
- 它们在节点层次结构中的位置
-
对于给定的主体,给定节点上最多有一个deny和1 allow条目。 该实施始终会清除冗余条目,并确保允许条目和拒绝条目中未列出相同的权限。
举两个例子,用户aUser
是组aGroup
的成员:
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ grandChildNode
在上例中:
- 未向
aUser
授予grandChildNode
的写入权限。
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
在本例中:
- 未向
aUser
授予grandChildNode
的写入权限。 aUser
的第二个ACE是多余的。
来自多个组主体的访问权限根据其顺序进行评估,无论是在层次结构中还是在单个访问控制列表中。
最佳实践 best-practices
下表列出了一些建议和最佳实践:
用户管理 user-administration
标准对话框用于 用户管理。
您必须登录到相应的工作区,然后才可以从以下两个位置访问该对话框:
- CRX主控制台上的 用户管理 链接
- CRX Explorer的 安全 菜单
属性
-
用户ID
访问CRX时所使用的帐户的简短名称。
-
主体名称
帐户的全文名称。
-
密码
使用此帐户访问CRX时需要。
-
ntlmhash
自动为每个新帐户分配,并在密码更改时更新。
-
您可以通过定义名称、类型和值来添加新属性。 单击每个新属性的“保存”(绿色勾号符号)。
组成员资格
这将显示帐户所属的所有组。 “已继承”列指示由于另一个组的成员资格而继承的成员资格。
单击GroupID(如果可用)将打开该组的组管理。
模拟者
借助模拟功能,用户可以代表其他用户工作。
这意味着用户帐户可以指定可以与其帐户一起操作的其他帐户(用户或组)。 换言之,如果允许用户B模拟用户A,则用户B可以使用用户A的完整帐户详细信息(包括ID、名称和访问权限)进行操作。
这允许模拟者帐户完成任务,就像他们使用自己所模拟的帐户一样;例如,在缺勤期间,或者在短期共享过多负载。
如果帐户模拟其他帐户,则很难查看。 日志文件不包含有关事件上已发生模拟的事实的信息。 因此,如果用户B模拟用户A,则所有事件看起来都像是用户A亲自执行的。
创建用户帐户 creating-a-user-account
-
打开 用户管理 对话框。
-
单击 创建用户。
-
然后,您可以输入属性:
- 用户ID 用作帐户名。
- 登录时需要 密码。
- 主体名称 以提供完整的文本名称。
- 中间路径,可用于形成树结构。
-
单击“保存”(绿色勾号)。
-
该对话框将展开,这样您便可以执行以下操作:
- 配置 属性。
- 查看 组成员资格。
- 定义 模拟者。
- 用户
- 拥有许多成员的组
更新用户帐户 updating-a-user-account
- 使用 用户管理 对话框,打开所有帐户的列表视图。
- 在树结构中导航。
- 单击所需的帐户,以便您可以打开它进行编辑。
- 进行更改,然后单击该条目的“保存”(绿色勾号符号)。
- 单击 关闭 完成,或单击 列表…… 返回所有用户帐户的列表。
删除用户帐户 removing-a-user-account
- 使用 用户管理 对话框,打开所有帐户的列表视图。
- 在树结构中导航。
- 选择所需的帐户并单击 删除用户;该帐户将立即删除。
定义属性 defining-properties
您可以为新帐户或现有帐户定义 属性:
- 打开相应帐户的 用户管理 对话框。
- 定义 属性 名称。
- 从下拉列表中选择 类型。
- 定义 值。
- 单击新属性的“保存”(Save) (绿色单击符号)。
现有属性可使用垃圾桶符号删除。
除“密码”外,属性无法编辑,必须删除并重新创建。
更改密码 changing-the-password
密码 是一个特殊属性,可以通过单击 更改密码 链接进行更改。
您还可以从CRX资源管理器的 安全 菜单更改您自己的用户帐户的密码。
定义模拟者 defining-an-impersonator
您可以为新帐户或现有帐户定义模拟者:
-
打开相应帐户的 用户管理 对话框。
-
指定要允许模拟该帐户的帐户。
您可以使用“浏览……”选择现有帐户。
-
单击新属性的“保存”(绿色勾号符号)。
组管理 group-administration
组管理 使用了标准对话框。
您必须登录到相应的工作区,然后才可以从以下两个位置访问该对话框:
- CRX主控制台上的 组管理 链接
- CRX Explorer的 安全 菜单
属性
-
组ID
组帐户的简短名称。
-
主体名称
组帐户的全文名称。
-
您可以通过定义名称、类型和值来添加新属性。 单击每个新属性的“保存”(绿色勾号符号)。
-
成员
您可以将用户或其他组添加为此组的成员。
组成员资格
这将显示当前组帐户所属的所有组。 “已继承”列指示由于另一个组的成员资格而继承的成员资格。
单击GroupID可打开该组的对话框。
成员
列出属于当前组的所有帐户(用户和/或组)。
Inherited 列指示已作为另一个组的成员资格而继承的成员资格。
mac-default-<foldername>
。创建组帐户 creating-a-group-account
-
打开 组管理 对话框。
-
单击 创建群组。
-
然后,您可以输入属性:
- 主体名称 以提供完整的文本名称。
- 中间路径,可用于形成树结构。
-
单击“保存”(绿色勾号)。
-
该对话框将展开,以便您可以:
- 配置 属性。
- 查看 组成员资格。
- 管理 成员。
更新组帐户 updating-a-group-account
- 使用 组管理 对话框,打开所有帐户的列表视图。
- 在树结构中导航。
- 单击所需的帐户,以便您可以打开它进行编辑。
- 进行更改,然后单击该条目的“保存”(绿色勾号符号)。
- 单击 关闭 完成,或单击 列表…… 返回所有组帐户的列表。
删除组帐户 removing-a-group-account
- 使用 组管理 对话框,打开所有帐户的列表视图。
- 在树结构中导航。
- 选择所需的帐户并单击 删除组;该帐户将立即删除。
定义属性 defining-properties-1
您可以为新帐户或现有帐户定义属性:
- 打开相应帐户的 组管理 对话框。
- 定义 属性 名称。
- 从下拉列表中选择 类型。
- 定义 值。
- 单击新属性的“保存”(绿色勾号符号)。
现有属性可使用垃圾桶符号删除。
成员 members
可以将成员添加到当前组:
-
打开相应帐户的 组管理 对话框。
-
可以任选其一:
- 输入所需成员的名称(用户或组帐户)。
- 或使用 浏览…… 来搜索和选择要添加的主体(用户或组帐户)。
-
单击新属性的“保存”(绿色勾号符号)。
或删除具有垃圾桶符号的现有成员。
访问权限管理 access-right-management
使用CRXDE Lite的 访问控制 选项卡,您可以定义访问控制策略并分配相关权限。
例如,对于 当前路径,在左窗格中选择所需的资源,在右下窗格的“访问控制”选项卡中:
这些策略根据以下条件进行分类:
-
适用的访问控制策略
可以应用这些策略。
这些策略可用于创建本地策略。 选择并添加适用的策略后,该策略将成为本地策略。
-
本地访问控制策略
这些是您已应用的访问控制策略。 然后,您可以更新、排序或移除它们。
本地策略会覆盖从父策略继承的任何策略。
-
有效的访问控制策略
这些是现在对任何访问请求都有效的访问控制策略。 它们显示从本地策略以及从父级继承的任何策略派生而来的聚合策略。
策略选择 policy-selection
可以为以下对象选择策略:
-
当前路径
如上面的示例所示,选择存储库中的资源。 此时将显示此“当前路径”的策略。
-
存储库
选择存储库级别的访问控制。 例如,在设置
jcr:namespaceManagement
权限时,该权限只与存储库相关,与节点无关。 -
主体
在存储库中注册的主体。
您可以键入 承担者 名称或单击字段右侧的图标以打开 选择承担者 对话框。
这允许您 搜索 用户 或 组 的。 从结果列表中选择所需的主体,然后单击 确定 将该值带回上一个对话框。
特权 privileges
添加访问控制条目时,可以选择以下权限(有关完整详细信息,请参阅安全API):
注册新权限 registering-new-privileges
您还可以注册新权限:
-
从工具栏中,选择 工具,然后选择 权限 以显示当前注册的权限。
-
使用 注册权限 图标(+)以定义权限:
-
单击 确定 进行保存。 该权限现在可供选择。
添加访问控制条目 adding-an-access-control-entry
-
选择您的资源并打开 访问控制 选项卡。
-
要添加新的 本地访问控制策略,请单击 适用的访问控制策略 列表右侧的 + 图标:
-
新条目出现在 本地访问控制策略: 下
-
单击 + 图标,以便添加条目:
note note NOTE 当前需要一种解决方法来指定空字符串。 为此,您必须使用 ""
。 -
定义您的访问控制策略,然后单击 确定 进行保存。 您的新策略为:
- 列在 本地访问控制策略 下
- 更改反映在 有效访问控制策略 中。
CRX将验证您的选择;对于给定主体,给定节点上至多存在一个拒绝和一个允许条目。 该实施始终会清除冗余条目,并确保允许条目和拒绝条目中未列出相同的权限。
订购本地访问控制策略 ordering-local-access-control-policies
列表中的顺序指示应用策略的顺序。
-
在 本地访问控制策略 的表中,选择所需的条目并将其拖到表中的新位置。
-
更改同时显示在 Local 和 有效访问控制策略 的表中。
删除访问控制策略 removing-an-access-control-policy
- 在 本地访问控制策略 的表中,单击条目右侧的红色图标(-)。
- 该项同时从 Local 和 有效访问控制策略 的表中删除。
测试访问控制策略 testing-an-access-control-policy
-
从CRXDE Lite工具栏中,选择 工具,然后选择 测试访问控制……。
-
将在右上角窗格中打开一个新对话框。 选择要测试的 路径 和/或 主体。
-
单击 测试 查看所选内容的结果: