设置双重身份验证(v17+)

双重身份验证(2FA)为登录增加了一个额外步骤。用户输入密码后,还必须输入验证码。验证码来自身份验证器应用、短信或电子邮件。

本页介绍版本 17 及更高版本。

1. 启用双重身份验证

  1. 转到系统设置 > 登录选项卡 > 双重身份验证部分。
  2. 勾选启用双重身份验证。
  3. 在双重身份验证方式中,选择以下方式之一:
  • “OTP 应用”:用户从身份验证器应用获取验证码,例如 Google Authenticator、Microsoft Authenticator 或 1Password。验证码每 30 秒更换一次(TOTP)。
  • “短信”:用户通过短信获取验证码。
  • “电子邮件”:用户通过电子邮件获取验证码。
  1. 在OTP 签发方名称中,输入用户在身份验证器应用中看到的名称,例如“My Company ERP”。
  2. 如果选择了“短信”,可以在OTP 短信模板中更改短信内容。使用 {{ otp }} 作为验证码的占位符。
  3. 保存。

2. 设置验证码发送方式

每种方式都需要以下设置之一:

  • OTP 应用和电子邮件:设置一个外发电子邮件账户。使用“OTP 应用”时,首次登录会通过电子邮件发送验证码。用户必须先输入此验证码,才能设置应用。
  • 短信:设置短信设置。如果没有短信网关 URL,则无法保存“短信”方式。

3. 选择使用 2FA 的角色

启用 2FA 时,系统会为“全部”角色开启双重身份验证。届时所有用户都必须输入验证码,包括管理员。

如果只想让部分用户使用 2FA:

  1. 打开角色“全部”,取消勾选双重身份验证。
  2. 打开每个必须使用 2FA 的角色(例如“系统管理员”),勾选双重身份验证。

如果用户的某个或多个角色勾选了双重身份验证,则该用户必须输入验证码。

2FA 不适用于使用 API 密钥和 API 密钥密码的 API 请求。

4. 可选:限制 IP 地址

可以在用户上设置限制 IP,仅允许从特定 IP 地址登录。系统设置中的两个设置控制其与 2FA 的配合方式:

  • 对从受限 IP 地址登录的用户跳过双重身份验证:从受限 IP 地址登录的用户无需输入验证码。
  • 启用双重身份验证时跳过受限 IP 地址检查:用户使用 2FA 时可以从任意 IP 地址登录。也可以在用户表单中为单个用户设置此项。

使用 OTP 应用首次登录

首次登录时,用户在登录界面设置身份验证器应用。

  1. 输入用户名和密码,然后点击登录。
  2. 系统会向您的电子邮件地址发送验证码。在验证码中输入此验证码,然后点击验证。此步骤确保只有该电子邮件地址的所有者才能设置应用。
  3. 登录界面会显示一个二维码。打开身份验证器应用并扫描二维码。如果无法扫描,请在应用中手动添加账户,并输入二维码下方显示的设置密钥。
  4. 应用会显示一个 6 位验证码。在验证码中输入此验证码,然后点击验证。

必须在 5 分钟内完成这些步骤。如果超时,请刷新页面并重新登录。

二维码只显示一次。后续登录时,只需输入身份验证器应用中的验证码。

使用短信或电子邮件登录

  1. 输入用户名和密码,然后点击登录。
  2. 系统会向您的手机号码或电子邮件地址发送验证码。
  3. 在验证码中输入验证码,然后点击验证。

验证码有效期为 5 分钟。

丢失设备或更换新设备

如果用户丢失了手机或想使用其他身份验证器应用,请重置其 OTP 密钥:

  1. 打开用户。
  2. 点击密码 > 重置 OTP 密钥。

系统会向用户发送电子邮件,告知其重置情况。下次登录时,用户需按照“使用 OTP 应用首次登录”中所述重新设置身份验证器应用。

用户也可以在自己的用户表单中重置自己的 OTP 密钥。系统管理员可以为所有用户重置。

从版本 16 升级

  • 设置链接电子邮件和 /qrcode 页面已不存在。旧电子邮件中的设置链接将无法使用。未完成设置的用户将在下次登录时在登录界面完成设置。
  • 设置二维码图片页面过期时间已不存在。
  • 升级会从Home/Barcodes文件夹中删除旧的二维码图片。这些图片包含用户的 OTP 密钥。
  • 已经设置好身份验证器应用的用户无需进行任何操作。
  • 常见问题

    我已设置 OTP 应用,但无法登录

    应用生成的验证码取决于您设备上的时间。请确保您设备上的时间准确并已自动同步。与服务器时间相差超过 30 秒可能导致验证码无效。

    我没有收到包含验证码的邮件

    请确保外发电子邮件账户工作正常,并检查您的垃圾邮件文件夹。如果验证码已过期,请刷新页面并重新登录以获取新的验证码。

    修改现有用户的邮箱或重命名用户

    用户 ID 是根据电子邮件地址创建的。当用户被重命名时,其值会在所有现有记录(包括变更日志)中更新。因此,这是一个资源密集型操作。如果在重命名用户时遇到超时问题,可以考虑使用更新后的电子邮件地址创建一个新的用户 ID,并禁用旧用户。

    如果您需要更改用户的电子邮件地址或用户名,请使用 ERPNext 内置的重命名工具。这会在所有关联记录中更新用户的唯一 ID,同时保留分配、权限和历史数据。

    要更改用户的电子邮件 ID,请按照以下步骤操作:

    用户列表 -> 打开用户 > 点击菜单 -> 重命名 > 输入新的电子邮件 ID。保存

    前提条件

    您必须拥有管理员权限才能重命名用户。

    步骤

    1. 转到设置 > 用户和权限 > 用户。
    2. 打开您想要重命名的用户。
    3. 点击表单右上角的菜单 (⋮)。
    4. 选择重命名。
    5. 输入新的电子邮件地址或用户名。
    6. 点击保存。

    重命名后会发生什么?

    ERPNext 会自动更新系统中所有对该用户的引用。这确保了:

    • 现有文档链接保持不变。
    • 分配继续有效。
    • 用户权限得以保留。
    • 历史记录能正确引用重命名后的用户。

    权限错误问题

    问题:用户已分配了“账户用户”和“账户经理”等角色。但在访问“应收账款”报表时,用户仍收到无权限访问“地区主数据”的错误信息。

    回答:

    根据 ERPNext 的权限系统,用户要能访问某个表单或报表,必须至少对该表单/报表中的所有链接字段拥有读取权限。由于“地区”是“应收账款”报表中的一个链接字段,请添加一条权限规则,让“账户用户/经理”至少对“地区主数据”拥有读取权限。请按照以下步骤解决此问题。

    1. 分配给用户的角色是“账户用户”和“账户经理”。
    2. 如错误信息所示,该用户没有“地区主数据”的权限。根据默认权限,分配给该用户的上述角色均未对“地区主数据”拥有任何权限。
    3. 为解决此问题,我已为“账户用户”角色分配了“地区主数据”的读取权限。

    根据此权限更新,用户应该能够正常访问“应收账款”报表。

    权限级别错误

    在权限管理器中自定义规则时,您可能会收到一条错误消息,内容如下:

    对于系统管理员 (或其他角色),在客户 (或其他单据) 的第 8 行,级别 2 (或其他级别):必须先设置级别 0 的权限,然后才能设置更高级别的权限。

    错误消息表明问题出在该单据的现有权限设置中。

    对于任何角色,在分配权限级别 1 或 2(及更高)的权限之前,必须先分配权限级别 0 的权限。错误消息指出系统管理员已被分配了权限级别 1 和 2 的权限,但未分配级别 0 的权限。您应首先通过以下方式更正系统管理员角色的权限:

    • 为系统管理员分配级别 0 的权限。

    或者

    • 删除级别 1 和 2 的权限。

    执行上述任一步骤后,您应该能够成功地在角色权限管理器中添加新的权限规则。

    最大用户数限制问题

    您的 ERPNext 订阅取决于您订阅的系统用户数量。一旦超过该限制,系统将不允许您创建更多用户。例如,您订阅了 10 个用户。如果您已在账户中创建了 10 个系统用户,系统将不允许您创建第 11 个系统用户,并且您会看到以下消息。

    要解决此问题,您需要执行以下操作之一:

    1. 购买新用户,或

    2. 禁用当前用户

    然而,有时即使您尚未用尽订阅计划中的系统用户数量,仍可能遇到此问题。例如,您的限制是 5 个系统用户,而您只创建了 3 个用户。但在创建第 4 个用户时,您却收到了上述消息。原因可能是某些用户的“同时会话”字段值大于 1。

    每个同时会话被视为 1 个系统用户。例如,如果您创建了 3 个用户,其中一人的“同时会话”设置为 3,那么您总共有 5 个用户,即 3 + 1 + 1 = 5 个同时会话/系统用户。

    为了让系统允许您创建更多用户,您需要减少这些用户的同时会话数。为此,请进入用户的个人资料,在安全设置下,相应设置/减少“同时会话”的值。

    注意: 您仍然可以创建网站用户,因为对此没有限制。

    基于层级的用户权限

    问题:

    如何配置用户权限,使员工既能查看自己的费用报销单,也能查看向其汇报的下属的费用报销单?

    答案:

    在员工主数据中,可以为每位员工定义其汇报对象。根据定义的“汇报给”关系,员工层级结构也会随之建立。

    员工层级结构

    此外,当用户与员工关联后,系统会按如下方式创建用户权限。根据此用户权限,员工将能够查看自己在人力资源模块中创建的文档,以及为其下属员工创建的文档。

    根据此配置,当向 Kenneth 汇报的用户创建费用报销单时,Kenneth 也能访问该报销单。

    请确保在向其汇报的员工信息中,将上级员工的员工编号更新为“汇报给”字段。之后,经理应能查看为其下属创建的费用报销单及其他文档(如请假申请、绩效评估等)。

    编辑报表的导出/打印权限

    要处理报表的导出/打印权限,请使用该报表所基于的文档类型的角色权限管理器。

    步骤 1:

    确定报表是从哪个文档类型生成的

    步骤 2:

    进入角色权限管理器,使用相同的文档类型进行筛选 (在我们的示例中为销售发票),并根据角色编辑权限

    系统用户与网站用户的区别

    问题: 我已将我的员工添加为用户,并为他们分配了角色。但他们登录后仍然无法查看仪表盘。

    回答:

    ERPNext 中有两种类型的用户。

    • 系统用户:通常是内部用户,如员工、经理和管理员,他们需要对 ERPNext 系统进行广泛访问以执行各种业务操作。他们拥有更高级别的访问权限和更详细的权限,允许他们与多个模块交互、生成报告和自定义工作流程。
    • 网站用户:通常是外部用户,如客户或供应商,他们通过网络门户与 ERPNext 系统交互。他们的访问权限仅限于与其需求相关的功能,例如下订单、查看订单状态或管理其账户信息。与系统用户使用的全面后台界面相比,他们的界面更简单。

    以下是 ERPNext 中系统用户和网站用户的表格对比

    系统用户 网站用户
    此类型适用于管理内部活动和操作 适用于管理外部操作和交易
    提供对 ERPNext 模块和功能的完全访问权限 提供对 ERPNext 模块和功能的受限访问权限
    此类别的典型用户是内部员工 此类型的用户角色包括外部方,如客户、顾客等
    由 ERPNext 内的管理员创建 可以自行注册或由管理员创建
    提供对公司范围数据和报告的访问权限 仅提供对个人数据和有限报告的访问权限
    可以查看、创建、编辑和删除记录 大多只能查看和创建与其相关的记录
    在所有模块中拥有完整的数据录入能力 数据录入能力仅限于与其角色相关的部分

    修改现有用户的邮箱地址

    用户 ID 是根据电子邮件地址创建的。当用户重命名时,其值会在所有现有记录(包括变更日志)中更新。因此,这是一个资源密集型操作。如果在重命名用户时遇到超时问题,可以考虑使用更新后的电子邮件地址创建一个新的用户 ID,并禁用旧用户。

    要更改用户的电子邮件 ID,请按照以下步骤操作:

    用户列表 -> 打开该用户 > 点击菜单 -> 重命名 > 输入新的电子邮件 ID。保存

    请参考此处展示相同操作的 GIF: