此文本使用 Salesforce 的自动翻译系统翻译。参加我们的调查,提供有关此内容的反馈,并告诉我们您接下来想要查看的内容。
安全 - 组织安全性
了解有关架构良好的受信 → 安全 → 组织安全 → 身份验证的更多信息
| Where to look? 产品区域 | 位置 | 好是什么样子? 模式 |
|---|---|
| 平台 | Apex | ✅ 执行身份验证的方法使用命名凭据来处理用户名/密码流 |
| 平台 | Apex | ✅ 没有用户名或密码以可读的格式显示在代码中(没有硬编码的值或字符串) |
| 平台 | Apex | ✅ 如果存在自定义登录流,所有相关自定义 Apex 使用适当的SessionManagement方法 |
| 平台 | Aura | ✅ 没有用户名或密码以可读的格式显示在代码中(没有硬编码的值或字符串) |
| 平台 | Aura | ✅ 执行身份验证的方法使用命名凭据来处理用户名/密码流 |
| 平台 | 文档 | ✅ 批准的安全角色被明确界定和列出 |
| 平台 | 文档 | ✅ 安全角色和允许的身份验证方案(UI、API)之间的映射存在于安全矩阵中 |
| 平台 | Lightning Web 组件 (LWC) | ✅ 执行身份验证的方法使用命名凭据来处理用户名/密码流 |
| 平台 | Lightning Web 组件 (LWC) | ✅ 没有用户名或密码以可读的格式显示在代码中(没有硬编码的值或字符串) |
| 平台 | 组织 | ✅ API 访问控制阻止用户通过未经授权的连接的应用程序进行身份验证 |
| 平台 | 组织 | ✅ 登录 Salesforce 的用户和实体之间的关系是 1:1(没有共享用户) |
| 平台 | 组织 | ✅ 登录配置符合 Salesforce MFA 检查 |
| 平台 | 组织 | ✅ 如果启用了 SSO,批准的管理员用户具有直接登录访问权限 |
| 平台 | 组织 | ✅ 登录身份验证用于登录历史必须存储 6 个月以上的情况 登录历史记录需要存储 6 个月-10 年的情况 |
了解有关架构良好的受信 → 安全 → 组织安全 → 授权的更多信息
| Where to look? 产品区域 | 位置 | 好是什么样子? 模式 |
|---|---|
| Einstein | 机器人 | ✅ 为每个业务用例配置唯一的机器人用户 在机器人配置的 Einstein 机器人生成器概述部分中,选择的机器人用户仅提供执行机器人旨在实现的业务目的所需的最小访问权限,遵循最小权限原则 |
| 平台 | Apex | ✅ 数据库操作适当地执行字段级和对象级访问权限检查 DML 和数据库 DML 语句声明数据操作的用户或系统模式和/或 DML 和数据库 DML 语句在数据操作之前使用stripInaccessible方法 |
| 平台 | Apex | ✅ DB 操作适当地执行字段级和对象级访问权限检查 SOQL 和 SOSL 语句使用WITH USER_MODE和WITH SYSTEM_MODE关键字 AND/OR stripInaccessible 方法筛选查询和子查询结果 |
| 平台 | Apex | ✅ 数据库操作适当地执行字段级和对象级访问权限检查 sObject describe result 方法(例如 isAccessible、isCreateable、isUpdateable 和/或 isDeletable)被谨慎使用 |
| 平台 | 设计标准 | ✅ 明确列出授予提升权限的用例,包括:- 修改所有数据权限- 查看所有数据权限 |
| 平台 | 文档 | ✅ 有权访问 Salesforce 的每个用户和系统都映射到安全矩阵中的一个或多个角色 |
| 平台 | 文档 | ✅ 安全矩阵清楚列出元数据权限和分配的用户角色 |
| 平台 | 组织 | ✅ 权限集和权限集组用于控制对元数据的访问 |
| 平台 | 组织 | ✅ 权限集和权限集组与业务功能保持一致 |
| 平台 | 组织 | ✅ 为每个集成配置唯一的仅 API 集成用户 |
| 平台 | 组织 | ✅ 简档仅用于控制登录 IP 范围和登录时间 |
| 平台 | 组织 | ✅ 分配给用户的权限遵循安全矩阵定义 |
了解有关架构良好的受信 → 安全 → 组织安全 → 身份验证的更多信息
| Where to look? 产品区域 | 位置 | 要避免什么? 反模式 |
|---|---|
| 平台 | Apex | 用户名和密码显示在代码中 |
| 平台 | Apex | 如果存在自定义登录流,没有分配会话级安全性的逻辑 |
| 平台 | Apex | 身份验证是临时处理的 |
| 平台 | Aura | 身份验证是临时处理的 |
| 平台 | Aura | 用户名和密码显示在代码中 |
| 平台 | 业务 | 用户配置和取消配置 SLA 和要求不存在 |
| 平台 | 文档 | ⚠ 不包括安全角色 |
| 平台 | 文档 | 安全矩阵没有明确的安全角色映射和允许的身份验证方案 |
| 平台 | Lightning Web 组件 (LWC) | 身份验证是临时处理的 |
| 平台 | Lightning Web 组件 (LWC) | 用户名和密码显示在代码中 |
| 平台 | 组织 | 未启用 API 访问控制 |
| 平台 | 组织 | 如果用户从防火墙后访问 Salesforce,防火墙会使用硬编码的 IP 地址来保护进出 Salesforce 的通信 |
| 平台 | 组织 | 登录 Salesforce 的用户和实体之间的关系不是 1:1(存在共享用户帐户) |
| 平台 | 组织 | 如果启用了 SSO,则没有批准的管理员用户拥有直接登录访问权限 |
| 平台 | 组织 | 登录配置与 Salesforce MFA 检查不一致 |
| 平台 | 组织 | 原有命名凭据用于对外部系统进行身份验证 使用原有命名凭据指定标注端点的 URL 及其所需的身份验证参数 |
了解有关架构良好的受信 → 安全 → 组织安全 → 授权的更多信息
| Where to look? 产品区域 | 位置 | 要避免什么? 反模式 |
|---|---|
| Einstein | 机器人 | Einstein 机器人使用基本聊天机器人用户或“通用”机器人用户 在机器人配置的 Einstein 机器人生成器概览部分中,选择的机器人用户是基本聊天机器人用户或“通用”自定义聊天机器人用户,该用户由用于不同业务目的的机器人共享 |
| 平台 | Apex | DML、数据库类方法、SOQL 和 SOSL 在默认系统模式下运行 |
| 平台 | Apex | ⚏ 数据库操作未正确执行访问检查 SOQL 查询仅使用 WITH SECURITY_ENFORCED 关键字进行访问限制 |
| 平台 | Apex | 数据库操作未正确执行访问权限检查 DML 或数据库类方法仅使用 sObject 和字段级访问权限的isAccessible、isCreateable、isUpdateable和/或isDeletable检查 |
| 平台 | 设计标准 | 授予提升权限的用例没有明确列出,包括:- 修改所有数据权限 - 查看所有数据权限 |
| 平台 | 文档 | 未明确列出元数据权限和分配的角色 |
| 平台 | 文档 | 文档不包含安全矩阵 |
| 平台 | 组织 | 分配给用户的权限不遵循安全矩阵定义 |
| 平台 | 组织 | 简档包含元数据的访问控制 |
| 平台 | 组织 | ⚠ 权限集是临时配置的 |
| 平台 | 组织 | 权限集小组未配置为允许基于业务功能的访问权限 |
| 平台 | 组织 | 仅 API 用户未配置或在多个集成之间共享 |
| 平台 | 组织 | 权限集是冗余的或大量重复的;难以理解清晰的功能逻辑和集之间的差异 |