Published on

参考Odoo实现RBAC:最佳实践和技巧

Authors
  • avatar
    Name
    NoOne
    Twitter

基于角色的访问控制 (RBAC)

什么是 RBAC?

RBAC 是一种安全模型,它将系统访问权限限制为授权用户。在 Odoo 中,这意味着不同的用户根据其角色拥有不同的访问权限级别。每个角色都由一组权限定义,确保用户只能访问其特定任务所需的数据和功能。

RBAC 的关键组件

  • 角色(群组): 这些定义了用户在组织内的职责。
  • 权限: 这些指定具有特定角色的用户可以执行哪些操作。
  • 用户: 每个用户被分配一个或多个角色,决定他们在 Odoo 中的访问级别。

Odoo 为什么要使用 RBAC

提高安全性:  RBAC 可最大程度降低未经授权访问的风险,从而显著增强 Odoo 系统的安全性。用户只能访问执行其角色所需的信息和功能,从而减少敏感数据的暴露。

增强数据保护: 借助 RBAC,您可以更有效地分段数据。可以进一步保护敏感数据免受未经授权的访问,从而保障关键信息的机密性和完整性。

简化用户管理:  RBAC 通过将用户分类为角色并相应地授予权限来简化用户管理。这使得管理用户访问变得更加容易,尤其是在大型组织中。

Odoo 中的用户群组

在 Odoo 中有效实施 RBAC 的核心是使用用户群组。用户群组是具有相似工作职责或访问需求的用户的集合。这些用户群组是配置访问控制规则和权限的基础。它们非常灵活,可以根据您组织的结构和要求进行定制。

用户群组类型

  • 用户类型:  Odoo 用户类型有三种。内部用户对 Odoo 应用程序具有完全访问权限,通常是多个应用程序群组的成员;门户用户通常是客户或供应商,只能访问其相关文档;公共用户只能访问网站。

  • 应用程序群组: 应用程序群组定义特定的功能,例如库存用户、采购管理员和会计。

  • 技术设置群组: 这些组与特定的技术设置相关,例如管理多个计量单位、分析会计、多币种、多公司访问等。一些技术组授予对视图和菜单的访问权限。

角色定义和分配

为了有效实施 RBAC,组织必须首先在公司内定义明确的角色和职责。这些角色应根据工作职能和访问要求进行设计。定义角色后,它们可以与 Odoo 中的用户群组关联。例如,可以创建“销售经理”、“库存管理员”或“财务分析师”等角色并将其链接到相应的用户群组。

下一步是向各个用户分配角色。根据职位或职责,将用户分组到相关用户群组中。此步骤可确保每个用户都拥有其分配角色所指定的必要权限和访问权限。

RBAC 最好使用应用程序群组来实现。Odoo 中的用户群组通常从其他组继承权限。例如,采购经理继承采购用户权限,采购用户继承内部用户权限。但是,技术设置组通常不会继承访问权限,但有一些例外,例如“高级价目表”继承自“基本价目表”。因此,应用程序群组为跨模块用户访问需求重叠的情况提供了很大的灵活性。

应用程序群组详细信息

让我们以销售应用程序的群组为例进行深入研究:

  • 销售管理员(经理)
  • 销售/用户:所有文件
  • 销售/用户:仅限自己的文件

继承在这些组中起着重要作用。例如,“自己的文档”组继承了“内部用户”访问权限,还可以访问订阅和活动等相关应用。“所有文档”组继承了“自己的文档”组,使其所有访问权限可供“所有文档”组中的用户使用。销售的最高级别,即管理员(经理),继承了“销售/用户:所有文档”组,如果安装了网站应用,可能会继承其他访问权限。

访问菜单、视图和模型: 群组提供不同级别的菜单、视图和模型访问权限。例如,“自己的文档”组授予对特定销售菜单和某些视图的访问权限,而“所有文档”组可能没有其他菜单或视图。正如预期的那样,销售管理员组可以访问更多菜单和视图。

模型访问权限: 模型访问权限对于 Odoo 中的安全性至关重要。授予的访问级别会影响用户读取、写入、创建和删除记录的能力。不同的群组可能会授予不同级别的模型访问权限。例如,“销售/自有文档”组可能有权访问 54 个模型,而“销售/管理员”组可能授予完全访问权限,允许用户创建、修改和删除记录。

记录规则: 记录规则控制对模型(数据库表)内记录的访问。群组可能具有不同的记录规则,用于限制对特定记录的访问。例如,“销售/自有文件”组中的“个人”规则限制用户只能访问其销售订单,而“所有文件”组则可以访问所有记录。

技术用户群组: 除了应用程序群组之外,Odoo 还设有“技术”组,其用途更为有限。这些组通常授予较少的访问权限,并且其重要性可能不会立即在用户界面中显现出来。技术组的示例包括“管理产品变体”、“管理多个库存位置”、“分析会计”等。

额外权限和其他群组: 某些群组授予用户额外权限,例如联系人创建、多公司和多货币标志以及技术功能。这些权限在 Odoo 中用于特定目的。

访问权限: 用户的整体访问权限是分配给他们的所有组的权限(读取、写入、创建、删除)的组合。用户对模型和记录的访问级别可能不同,因此了解群组如何交互非常重要。

配置用户群组和权限

在 Odoo 中,配置用户群组和权限是实现基于角色的访问控制 (RBAC) 的关键步骤。本节提供有关如何创建和管理用户群组以及自定义其权限的详细指南。

步骤 1:访问用户群组

要开始配置用户群组和权限,请按照以下步骤操作:

  • 激活 开发者模式,然后转到 设置‣>用户和公司‣>群组。

  • 在“用户和公司”中,您将找到“群组”选项。单击它可访问用户群组设置。

第 2 步:创建新用户群组

要创建新用户群组,请按照以下步骤操作:

  • 单击“创建”按钮启动创建用户群组的过程。

  • 选择要与该组关联的应用程序。

  • 如果您的组织结构需要,您可以在“继承”选项卡下定义父用户群组以创建层次结构。父组可以继承权限以简化管理。您还可以选择此组是否可以被其他组继承。

  • 定义用户群组的名称和父组后,点击“保存”即可创建用户群组。

步骤 3:定义权限
Odoo 中 RBAC 的核心是能够指定用户群组的访问权限和许可。您可以按照以下方法定义这些权限:

  • 创建用户群组后,您可以通过从列表中选择用户群组来访问权限配置。

  • 在用户群组的详细信息中,转到“访问权限”部分。在这里您可以自定义用户群组可以访问的内容。

  • 选择要配置权限的相关应用程序和模块。您可以深入到特定功能和数据,从而对访问权限进行细粒度的控制。

  • 通过勾选相应的复选框来自定​​义权限。您可以指定此组中的用户是否可以查看、创建、编辑、删除或管理特定资源。

  • 配置用户群组的权限后,请务必保存您的更改。

将用户分配到用户群组

现在您已配置用户群组并定义其权限,现在是时候将用户分配到这些组了。此步骤可确保用户获得其角色和职责所规定的访问权限。

步骤 1:访问用户详细信息
要将用户分配到特定用户群组,您需要访问该用户的详细信息。 请按以下步骤操作:

  • 在“设置”菜单的“用户和公司”部分中,选择“用户”以查看您的 Odoo 实例中的用户列表。

  • 单击您想要分配用户群组以访问其个人资料的用户。

步骤 2:分配用户群组
在用户的个人资料中,您可以将他们分配到一个或多个用户群组。操作方法如下:

  • 转到用户个人资料的“访问权限”选项卡。在这里您可以配置他们的群组成员资格。

  • 您将看到不同的应用程序,您可以选择一个组来将用户分配给每个应用程序。 

  • 将用户分配到相关组后,请务必保存您的更改以更新他们的访问权限。

通过遵循这些步骤,您可以在 Odoo 中有效地配置用户群组并将用户分配给他们,确保每个用户都具有与其角色和职责相符的适当访问权限和权限,从而增强数据安全性和访问控制。

结论

使用用户群组在 Odoo 中实施基于角色的访问控制是保护组织数据和资源的基本步骤。RBAC 简化了访问管理,降低了数据泄露风险并增强了数据安全性。通过定义角色、创建用户群组、自定义权限和分配用户,组织可以在数据保护和高效业务运营之间实现平衡。

Share this content