安全性是任何Sitecore构建的重要组成部分。它可确保您的内容作者具有适当级别的访问权限,以管理他们拥有的内容,并授予他们访问不同Sitecore功能的权限。

Sitecore附带了许多提供功能访问的开箱即用角色。对于本文,我们将忽略开箱即用的角色以及对特定Sitecore功能的权限。相反,我们将专注于您通常需要创建自己的自定义角色并实现自定义安全性的区域,或者更具体地说,内容作者编辑内容所需的权限。

 
在Sitecore中,内容作者编辑内容的能力由3个关键领域决定: 
  1. 您尝试编辑的内容项的写访问权。这些项目是您站点中的页面,组件的数据源,媒体库中的媒体等。
  2. 语言写入您正在进行编辑的语言的访问权限
  3. 工作流程写入对当前项目的工作流程状态的访问权限

如果内容作者缺少任何这些权限,则他们无法编辑项目。 
 
作为最佳实践,我们将树的每个区域分别保护到我们创建的自定义角色。我们创建了一个内容项角色,一个语言访问角色(如果有多种语言在运行)和一个工作流访问角色。通过保持角色分离而不是保护单个角色的所有权限,我们可以创建一个非常精细的安全实现,尤其是随着构建复杂性的增加。例如,当您推出其他网站或开始将您的单个网站保护到所有权区域时,您可以创建其他内容项角色,当您开始支持站点中的多种语言时,您可以创建其他语言角色,并且随着工作流中状态的数量的增加,您可以创建其他工作流角色

这在实践中看起来像什么?这里是一个例子,说明使用上面的图表作为基础,对应于三个支柱中每个支柱的示例角色的实际实现可能是什么样的:

在这种情况下,假设您的内容树区域是安全的,以便只有属于人力资源部门的人员才能编辑内容。您可能需要更改编辑权限的分配以满足以下方案:

  • 场景#1:人力资源,仅限法语,在线编辑
  • 场景#2:人力资源,包括法语和英语,Web Publisher
  • 场景#3:人力资源,仅限英语,Web Publisher

以下是使用上述角色实现这些方案(以及更多)的方法,同时保留编辑内容所需的所有先决条件:

场景#1

场景#2

场景#3

如场景#2所示,您甚至可以从单个支柱添加多个角色来扩展该区域的权限。在这种情况下,我们通过使内容作者成为Content Author EnglishContent Author French角色的成员,为内容作​​者授予了对这两种语言的权限。 
 
我应该补充一点,虽然这种方法提供了精细的安全实现,但如果您有一个特定的安全方案在大量用户中重复,您可以通过创建超级角色来让您的生活更轻松。例如,对于场景#1,您可以创建一个自定义角色,该角色是所有三个人力资源,内容作者法语在线编辑器的成员角色。您可以简单地将用户分配给超级角色,而不是将所有三个角色分配给单个用户,并且将应用来自其他角色的所有权限。这种方法可以保持您的安全粒度,同时可以快速分配常见职责。 
 
正如您所看到的,此特定模型可以非常灵活,可以通过将安全性隔离到这些特定于柱的角色来帮助将来证明您的安全性。 

Sitecore安全性第1部分:自定义角色和权限的更多相关文章

  1. 在微服务系统开发部署中使用Azure RBAC自定义角色

    Azure的官方文档介绍了如何创建用于Azure基于角色的访问控制的自定义角色(RBAC Role). 我们也可以根据同样的原理把RBAC细粒度资源管理运用于微服务产品的开发部署中.(https:// ...

  2. Azure自定义角色实现RBAC

    简要说明: 当前Azure Portal上只能针对订阅或具体某一资源,实现访问控制,也就是对某一具体资源实现访问/使用/删除,但无法实现创建.例如:当前的需求为,新添加用户只具有对CDN服务的管理使用 ...

  3. SpringSecurity 自定义用户 角色 资源权限控制

    SpringSecurity 自定义用户 角色 资源权限控制 package com.joyen.learning.security; import java.sql.ResultSet; impor ...

  4. oracle管理角色和权限

    介绍 这一部分主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里. 当刚刚建立用户时,用户没有任何权限,也不能执行任何操作.如果要执行某种特定的数据库操作,则必需为其授予系统的权限:如果 ...

  5. ASP.NET MVC 基于角色的权限控制系统的示例教程

    上一次在 .NET MVC 用户权限管理示例教程中讲解了ASP.NET MVC 通过AuthorizeAttribute类的OnAuthorization方法讲解了粗粒度控制权限的方法,接下来讲解基于 ...

  6. C#_MVC 自定义AuthorizeAttribute实现权限管理

    随笔- 28  文章- 31  评论- 16 MVC 自定义AuthorizeAttribute实现权限管理   在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Autho ...

  7. MVC 自定义AuthorizeAttribute实现权限管理

    在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Authorize] public ActionResult TestAuthorize() { return View() ...

  8. Membership角色与权限管理

    安全性:成员资格与角色:验证与授权. 一.建数据库:在VS工具中用DOS环境执行ASPNET_REGSQL 二.配置程序访问数据库: > 在web.config之中加入 <connecti ...

  9. ORACLE - 用户和角色的权限管理

    在ORACLE中,创建用户后需要授权才能使用. 一.用户管理 1. 用户和角色信息查询 --查询所有用户 SQL> select * from dba_users; --经授予的用户或角色的系统 ...

随机推荐

  1. 开发技术--浅谈python基础知识

    开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...

  2. Java开源工具

    git/ jenkins/ selenium/Spock/ 软件测试框架

  3. uni-app常用 HTML5+APP 设置

    1.锁定屏幕方向 锁定屏幕方向后屏幕只能按锁定的屏幕方向显示,关闭当前页面后仍然有效. 可再次调用此方法修改屏幕锁定方向或调用 unlockOrientation() 方法恢复到应用的默认值. 锁定屏 ...

  4. Canny算法检测边缘

    Canny算法是边缘检测的一个经典算法,比单纯用一些微分算子来检测的效果要好很多,其优势有以下几点: 边缘误检与漏检率低. 边缘定位准确,且边界较细. 自带一定的滤噪功能,或者说,对噪声的敏感度要比单 ...

  5. intellij idea 2019 右键包新建文件是没有java Class选项

    今天要测试一个技术点于是新建了一个springboot工程, 在新建文件的时候发现右键后java class文件选项不见了. 以前真的没有碰到这种问题, 感觉很是意外于是百度Google后找到了解决办 ...

  6. POJ 3694Network(Tarjan边双联通分量 + 缩点 + LCA并查集维护)

    [题意]: 有N个结点M条边的图,有Q次操作,每次操作在点x, y之间加一条边,加完E(x, y)后还有几个桥(割边),每次操作会累积,影响下一次操作. [思路]: 先用Tarjan求出一开始总的桥的 ...

  7. Android APK开发 Drawable文件夹下的自定义Drawable文件

    版本:2018/2/11 Drawable的分类 自定义Drawable SVG矢量图 个人总结的知识点外,部分知识点选自<Android开发艺术探索>-第六章 Drawable 1.Dr ...

  8. max的高级用法

  9. docker自定义镜像上传阿里云

    1.alpine制作jdk镜像 2.Alpine制作jre镜像(瘦身) 3.Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻 ...

  10. webpack中路径的理解

    webpack 前端打包工具, 开发人员要面对的路径主要是: 打包前的路径(开发环境路径)和打包后的路径(生产环境路径) 在webpack.config.js中配置的output.path, outp ...