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; --经授予的用户或角色的系统 ...
随机推荐
- bugku insertsql
题目链接 0X00题目给出的PHP代码 error_reporting(0); function getIp(){ $ip = ''; if(isset($_SERVER['HTTP_X_FORWAR ...
- android自定义圆角实线边框,圆角虚线边框,直实线,虚实线,半圆角边框
先上图 在现实项目开发中,单纯的Button,EditText等控件远远不能满足我们项目的UI设计需求,这时候,我们就需要自己动手丰衣足食啦.接下来先给大家介绍一些属性,备注写的都非常清楚啦,我就不啰 ...
- 面试官问我,为什么老司机建议MySQL列属性尽量用 NOT NULL ?
本文阅读时间大约6分钟. 其实写这篇文章,也是来自一个知识星球读者的提问,他在二面的过程中被问到了,由于他简历中写道有 MySQL 调优经验,但这个问题没有回答好,二面被刷了. 其实我们刚学习 C 语 ...
- springBoot配置druid监控报错Failed to bind properties under 'spring.datasource.druid' to javax.sql.DataSource
报错信息: Description: Failed to bind properties under 'spring.datasource.druid' to javax.sql.DataSource ...
- jenkins中 Slave使用Docker
原因就不说了,网上的自动化测试Docker教程太不靠谱,还是学学官网吧. 目的: 在现在各种虚拟化的大条件下,还在建立N个节点机器或节点机器搞N个并发,是不是太不方便了. 如果一个机器搞N个并发,在自 ...
- AtCoder Grand Contest 033 题解
传送门 我比赛的时候怕不是在睡觉啊-- \(A\ Darker\ and\ Darker\) 我是不是想得太复杂了--根本没必要像我这样做吧-- 首先问题可以转化成令\(p_{i,j}\)表示到\(( ...
- python基础之三:int、bool、str
一.数据类型之整型的函数使用 i = print("该整型数字所占有效比特位的长度是:%d" % i.bit_length()) print(i.to_bytes(, " ...
- selenium数据读取模块
例如 数据保存在txt中 def info(path): web_info={} config = open(path) for line in config: result = [ele.strip ...
- 修改MyEclipse/Eclipse左侧文字大小(MacOS/Windows)
一.Windows 首先找到 Eclipse/MyEclipse 的安装目录,然后找到如下目录: \plugins\org.eclipse.ui.themes_1.1.200.v20160815-05 ...
- [PHP] JQuery+Layer实现添加删除自定义标签代码
JQuery+Layer实现添加删除自定义标签代码 实现效果如下: 实现代码如下: <!doctype html> <html> <head> <meta c ...