Sitecore安全性第1部分:自定义角色和权限
安全性是任何Sitecore构建的重要组成部分。它可确保您的内容作者具有适当级别的访问权限,以管理他们拥有的内容,并授予他们访问不同Sitecore功能的权限。
Sitecore附带了许多提供功能访问的开箱即用角色。对于本文,我们将忽略开箱即用的角色以及对特定Sitecore功能的权限。相反,我们将专注于您通常需要创建自己的自定义角色并实现自定义安全性的区域,或者更具体地说,内容作者编辑内容所需的权限。
- 对您尝试编辑的内容项的写访问权。这些项目是您站点中的页面,组件的数据源,媒体库中的媒体等。
- 语言写入您正在进行编辑的语言的访问权限
- 工作流程写入对当前项目的工作流程状态的访问权限

如果内容作者缺少任何这些权限,则他们无法编辑项目。
作为最佳实践,我们将树的每个区域分别保护到我们创建的自定义角色。我们创建了一个内容项角色,一个语言访问角色(如果有多种语言在运行)和一个工作流访问角色。通过保持角色分离而不是保护单个角色的所有权限,我们可以创建一个非常精细的安全实现,尤其是随着构建复杂性的增加。例如,当您推出其他网站或开始将您的单个网站保护到所有权区域时,您可以创建其他内容项角色,当您开始支持站点中的多种语言时,您可以创建其他语言角色,并且随着工作流中状态的数量的增加,您可以创建其他工作流角色。
这在实践中看起来像什么?这里是一个例子,说明使用上面的图表作为基础,对应于三个支柱中每个支柱的示例角色的实际实现可能是什么样的:

在这种情况下,假设您的内容树区域是安全的,以便只有属于人力资源部门的人员才能编辑内容。您可能需要更改编辑权限的分配以满足以下方案:
- 场景#1:人力资源,仅限法语,在线编辑
- 场景#2:人力资源,包括法语和英语,Web Publisher
- 场景#3:人力资源,仅限英语,Web Publisher
以下是使用上述角色实现这些方案(以及更多)的方法,同时保留编辑内容所需的所有先决条件:
场景#1

场景#2

场景#3

如场景#2所示,您甚至可以从单个支柱添加多个角色来扩展该区域的权限。在这种情况下,我们通过使内容作者成为Content Author English和Content Author French角色的成员,为内容作者授予了对这两种语言的权限。
我应该补充一点,虽然这种方法提供了精细的安全实现,但如果您有一个特定的安全方案在大量用户中重复,您可以通过创建超级角色来让您的生活更轻松。例如,对于场景#1,您可以创建一个自定义角色,该角色是所有三个人力资源,内容作者法语和在线编辑器的成员角色。您可以简单地将用户分配给超级角色,而不是将所有三个角色分配给单个用户,并且将应用来自其他角色的所有权限。这种方法可以保持您的安全粒度,同时可以快速分配常见职责。
正如您所看到的,此特定模型可以非常灵活,可以通过将安全性隔离到这些特定于柱的角色来帮助将来证明您的安全性。
Sitecore安全性第1部分:自定义角色和权限的更多相关文章
- 在微服务系统开发部署中使用Azure RBAC自定义角色
Azure的官方文档介绍了如何创建用于Azure基于角色的访问控制的自定义角色(RBAC Role). 我们也可以根据同样的原理把RBAC细粒度资源管理运用于微服务产品的开发部署中.(https:// ...
- Azure自定义角色实现RBAC
简要说明: 当前Azure Portal上只能针对订阅或具体某一资源,实现访问控制,也就是对某一具体资源实现访问/使用/删除,但无法实现创建.例如:当前的需求为,新添加用户只具有对CDN服务的管理使用 ...
- SpringSecurity 自定义用户 角色 资源权限控制
SpringSecurity 自定义用户 角色 资源权限控制 package com.joyen.learning.security; import java.sql.ResultSet; impor ...
- oracle管理角色和权限
介绍 这一部分主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里. 当刚刚建立用户时,用户没有任何权限,也不能执行任何操作.如果要执行某种特定的数据库操作,则必需为其授予系统的权限:如果 ...
- ASP.NET MVC 基于角色的权限控制系统的示例教程
上一次在 .NET MVC 用户权限管理示例教程中讲解了ASP.NET MVC 通过AuthorizeAttribute类的OnAuthorization方法讲解了粗粒度控制权限的方法,接下来讲解基于 ...
- C#_MVC 自定义AuthorizeAttribute实现权限管理
随笔- 28 文章- 31 评论- 16 MVC 自定义AuthorizeAttribute实现权限管理 在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Autho ...
- MVC 自定义AuthorizeAttribute实现权限管理
在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Authorize] public ActionResult TestAuthorize() { return View() ...
- Membership角色与权限管理
安全性:成员资格与角色:验证与授权. 一.建数据库:在VS工具中用DOS环境执行ASPNET_REGSQL 二.配置程序访问数据库: > 在web.config之中加入 <connecti ...
- ORACLE - 用户和角色的权限管理
在ORACLE中,创建用户后需要授权才能使用. 一.用户管理 1. 用户和角色信息查询 --查询所有用户 SQL> select * from dba_users; --经授予的用户或角色的系统 ...
随机推荐
- SpringMVC拦截器执行流程
1:MyInterceptor1.MyInterceptor2这2个拦截器都放行 MyInterceptor1......preHandleMyInterceptor2......preHandle ...
- Go发送Email
使用Go发送邮件,目前官网GO 1.12的版本的文档中,包 "net/smtp" 仅支持支持两种SMTP的认证方式.CRAM-MD5和PLAIN 认证方式. CRAM-MD5 是基 ...
- linux部署docker镜像
安装git yum install git 生成ssh秘钥 cat ~/.ssh/id_rsa.pub //查看是否有秘钥 ssh-keygen -t rsa -C "" //生成 ...
- 【servlet】Servlet的API和生命周期]
创建时间:6.15 一.Servlet的API(生命周期) (1)Servlet接口中的方法 1)init(ServletConfig config) 何时执行:servlet对象创建的时候执行 Se ...
- javascript打开窗口
项目中javascript代码,早期使用了只有ie支持的方法:Window createPopup() 方法 那个时候是2009年,而现在已经是2019-12-11了.如何改造这个早期的代码呢? 找到 ...
- json转dataframe格式
方法1:利用pandas自带的read_json直接解析字符串 方法2:利用json的loads和pandas的json_normalize进行解析 方法3:利用json的loads和pandas的D ...
- AjAX 异步通信
<!DOCTYPE html> <html lang="en"> <head> <title>xmlhttprequest ajax ...
- @TableField
@TableField 描述:字段注解(非主键) 属性 类型 必须指定 默认值 描述 value String 否 "" 字段名 el String 否 "" ...
- centos7+docker 安装和部署crawlab分布式爬虫平台,并使用docker-compose管理docker
1.先决条件centos7+docker最新版本 sudo yum updat 2.配置一下镜像源,创建/etc/docker/daemon.conf文件,在其中输入如下内容 { "regi ...
- java 构造实例
Person父类 package com.oracle.demo03; public class Person { private String name; private int age; //需要 ...