访问控制
# 概述
根据应用程序的用例,可能需要限制对文档操作的特定功能的访问权限。CKEditor 协作服务器提供了一个功能,允许为特定用户设置特定文档的特定权限。该功能是 令牌 的一部分,该令牌从 令牌端点 返回。因此,应用程序完全控制权限。
为了更轻松地管理基本权限,CKEditor 协作服务器提供了三个预定义的角色:reader
、commentator
和 writer
。这些角色在安全指南的专用 角色部分 中进行了更详细的描述。如果需要创建更具体的角色,CKEditor 协作服务器允许设置特定的权限,这些权限已在 角色和权限 指南中进行了描述。
请记住,每个用户的权限和角色是分别设置的,因此选择正确角色或权限的逻辑必须作为后端应用程序中 令牌端点 的一部分来实现。
# 示例
# 限制文档编辑
假设需要允许 ID 为 user284
的用户仅读取以 -read
后缀命名的文档。但是,他们也应该能够编辑以 -edit
后缀命名的文档。以下示例显示了在这种情况下 令牌 应该是什么样子
{
aud: 'your_environment_id',
sub: 'user284',
auth: {
collaboration: {
'*-read': {
'permissions': [
'document:read',
'comment:read'
]
},
'*-edit': {
'permissions': [
'document:read',
'comment:read',
'document:write',
'comment:write'
]
}
}
}
}
在上面的示例中,*-read
和 *-edit
属性表示文档/频道 ID 的模式,因此对于 ID 为 my-document-read
的文档/频道,ID/子项为 user284
的用户将只能读取该文档。但是,对于 ID 为 my-document-edit
的文档/频道,他们也将能够编辑它。
使用这些权限,ID 为 user284
的用户将无法打开任何其他文档,除了与匹配 *-edit
或 *-read
文档/频道 ID 模式匹配的文档。
# 删除评论线程
还可能需要创建一个用户,该用户具有从整个环境中删除其他用户创建的整个评论线程的权限。ID 为 user284
的用户应该能够添加评论以及从文档中删除整个评论线程,但应该不能编辑文档内容。
{
aud: 'your_environment_id',
sub: 'user284',
auth: {
collaboration: {
'*': {
'permissions': [
'document:read',
'comment:read',
'comment:write',
'comment:admin'
]
}
}
}
}
在所提供的示例中,ID 为 user284
的用户可以读取环境中的所有文档并对其进行评论。此外,该用户有权删除任何其他用户创建的评论线程,但仍然不能编辑或删除特定评论。