跳至内容
白白随笔

白白随笔

Salesforce官方讲师

学习目录

近期文章

  • Salesforce CLI 配置和提示
  • Salesforce CLI 设置指南
  • 持续集成
  • 开发解锁包
  • 解锁包
  • 构建和发布应用
  • 部署
  • 沙盒
  • 临时组织
  • 授权
  • Salesforce 开发人员体验如何改变您的工作方式
  • 将 Experience Cloud 站点从沙盒部署到生产环境
  • 开发安全站点: CSP、LWS 和 闪电 柜子
  • 开发安全站点:经过身份验证的用户和来宾用户
  • 自定义模板的主题布局
  • 自定义体验生成器模板的外观
  • Experience Cloud 开发人员指南
  • 部署和检索元数据
  • 快速入门:元数据 API
  • 元数据 API 开发人员指南

归档

  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 4 月
  • 2018 年 12 月
  • 2018 年 11 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 5 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 8 月

分类

  • Analytics Cloud
    • Analytics Administration
    • Analytics Apps Basics
    • Analytics Basics
    • Analytics Dashboard
    • Analytics Data Integration
    • Analytics Exploration
    • App Design
    • App Template
    • Build Advanced Analytics
    • Build Analytics
    • Custom Map
    • Einstein Analytics
    • Einstein Basics
    • Einstein Discovery Basics
    • Einstein Discovery Stories
    • Einstein Discovery Story Insights
    • Einstein Prediction Builder
    • Embed an Einstein Analytics
    • Event Monitoring
    • Gauge Chart
    • Mobile Exploration
    • Sales Analytics
    • Service Analytics
  • Apex
    • Apex Trigger
    • Apex 开发人员指南
    • Apex-Metadata API
    • Apex-基础
    • Apex-大数据处理
    • Apex-异步
    • Apex-测试
    • 事件驱动
    • 大对象
  • AppExchange合作伙伴
    • AppExchange合作伙伴基础
    • AppExchange应用试用管理
    • ISVforce 指南
    • 合作伙伴社区
    • 合作伙伴诚信道德
    • 安全审查
    • 应用升级
    • 应用程序策略
    • 应用程序部署
    • 应用许可证
    • 试用版管理
  • Commerce Cloud
    • Commerce Cloud功能
    • Commerce Cloud和客户成功平台
    • Commerce Cloud基础
    • Commerce Cloud爱因斯坦实施
    • Commerce的体系结构
    • Salesforce B2B Commerce基础
    • Salesforce B2C Commerce for 合作伙伴
    • Salesforce B2C Commerce SEO URL
    • Salesforce B2C Commerce启动准备
    • Salesforce B2C Commerce客户分析
    • Salesforce B2C Commerce导入/导出
    • Salesforce B2C Commerce店面实施
    • Salesforce B2C Commerce按需沙盒
    • Salesforce B2C Commerce程序员
    • Salesforce B2C Commerce网站准备情况评估
    • Salesforce B2C Commerce项目管理
    • Salesforce B2C Commerce预定作业
    • Salesforce B2C商业信任网站
    • Salesforce B2C商业复制
    • Salesforce B2C商业活动和促销
    • Salesforce B2C商务
    • Salesforce B2C商务功能咨询策略
    • Salesforce B2C商务角色和权限
    • Salesforce B2C商家贸易
    • Salesforce订单管理
    • 使用Commerce Cloud Einstein进行更智能的搜索
    • 使用Salesforce B2C Commerce的假期准备
    • 爱因斯坦对Commerce Cloud的产品建议
  • Community社区云
    • Community-基础
    • Community-搜索
    • Community-知识库和聊天
    • Community-部署
    • Experience Cloud 开发人员指南
    • 分布式组织中的品牌定位
    • 合作伙伴关系管理
    • 合作伙伴渠道销售
    • 渠道管理和合作伙伴门户
  • Dreamforce
  • Field Service
    • Field Service基础
    • Field Service配置
    • FSL Managed Package
  • Financial Services
    • 智能推荐和金融服务云计分
    • 金融服务云中的行动计划
    • 金融服务云发布准备
    • 金融服务云基础
    • 金融服务云定制
    • 金融服务云数据建模
    • 金融服务云数据模型基础知识
    • 金融服务云的客户名单增长
    • 金融服务云的抵押掌握
    • 金融服务云社区
  • Integrate
    • Canvas
    • Heroku
    • REST API 开发人员指南
    • Salesforce Connect
    • Salesforce-API
    • 元数据 API 开发人员指南
  • Lightning Web Components
    • Lightning Web 组件开发人员指南
    • Salesforce DX 开发人员指南
    • 使用Lightning Web Components开放源代码访问Salesforce数据
    • 使用Lightning Web Components开源构建您的第一个应用程序
    • 使用Lightning Web组件构建Bear-tracking应用程序
    • 在闪电Web组件之间通信
    • 将Lightning Web Components开源转换为Salesforce
    • 快速入门:探索Lightning Web Components OSS食谱示例应用程序
    • 快速入门:探索Visualforce至LWC示例应用程序
    • 快速入门:闪电Web组件
    • 构建可重复使用的闪电组件
    • 设置您的Lightning Web Components开发人员工具
    • 适用于Aura开发人员的Lightning Web Components
    • 适用于Visualforce开发人员的Lightning Web组件
    • 闪电Web组件和Salesforce数据
    • 闪电Web组件基础
    • 闪电Web组件测试
  • Lightning-开发
    • Lightning-应用程序
    • Lightning-开发基础
    • Lightning-数据访问
    • Lightning-组件
    • Lightning-覆盖标准按钮
    • Lightning-设计
    • LWC中的Javascript
  • Lightning-配置
    • Lightning – Chatter
    • Lightning – 基础
    • Lightning – 实施上线
    • Lightning – 报表
    • Lightning – 特征
    • Lightning – 自定义设置
    • Lightning – 面向销售
    • Lightning-流
    • Linghting – AI
  • Marketing Cloud
    • Email Studio
  • Sales Cloud
    • Campaign基础
    • 销售区域计划
    • 销售区域预测
  • Salesforce CPQ
  • Salesforce-开发
    • Big Objects
    • GitHub
    • Platform Cache
    • Salesforce CLI 设置指南
  • Salesforce管理员
    • Outlook集成
    • 公式
    • 移动配置
    • 管理员-公司组织设置
    • 管理员-基础
    • 管理员-数据清理
    • 管理员-数据管理
    • 管理员-数据结构
    • 管理员-用户基础知识
    • 管理员-设置
  • Service Cloud
    • Omni-Channel
    • Service Cloud基础
    • 个案
    • 呼叫中心集成
    • 服务控制台
  • Visualforce
    • Visualforce 开发人员指南
    • Visualforce-基础
    • Visualforce-邮件模板
  • VSCode的Salesforce扩展
  • 开发方法论
    • Kanban
    • Salesforce 敏捷开发
    • Scrum
    • 应用程序生命周期和开发模型
    • 开发生命周期
    • 敏捷模型
  • 未分类
  • 第三方打通
    • 百度地图
  • 认证考试
    • 初级开发
  • 产品介绍
    • 服务云
    • 销售云
    • 营销云
    • 电商云
  • 公司介绍
  • 关于我们
  • 博客首页
  • 培训课程
    • DEX450
    • DEX502
    • ADX201
    • ADX211
    • DEX403
  • 学习目录
  • 学习视频
    • 系统管理员视频课
    • 高级系统管理员视频课
  • 示例页面
  • 隐私政策

Apex-Metadata API(5)

学习目标

完成本单元后,您将能够:

  • 列举Apex元数据API强制执行安全性的几种方式。
  • 解释负责任地使用Apex元数据API的注意事项。

为什么要信任Apex元数据API?

正如您所看到的,Apex元数据API使您能够自动更改组织的配置。但是改变一个组织的结构会对该组织中的数据产生安全影响。如果未经授权的应用修改您的组织,该怎么办?我们不会让你们陷入悬念 – 那不可能发生!信任是Salesforce的头号价值,Apex元数据API的构建是一个值得信赖的接口。

Apex Metadata API的三项功能可以保护您的组织和数据。

  • 对可以创建或修改的元数据类型的限制。
  • 对可以部署更改的应用程序的限制。
  • 跟踪元数据更改的详细审计历史记录。

通过这些功能,您可以“信任但可以验证”。前两个功能让您信任使用Apex Metadata API的应用程序的功能。第三个功能可以让你验证应用程序的行为。让我们看看这些功能是如何工作的。

信任安全的元数据类型

为了确保安全性,Salesforce限制了可以使用Apex Metadata API创建或修改的元数据类型。 Apex元数据API的初始版本允许您使用两种元数据类型:页面布局和自定义元数据类型的记录。尽管我们打算在将来支持更多的元数据类型,但我们不会在Apex中公开整个Metadata API。这种谨慎的支持元数据的方法可以确保已安装的软件包只能使用安全的元数据类型,可以以可预见的方式进行修改。

Salesforce也不允许通过Apex创建Apex类,Visualforce页面或Lightning组件。正如您可以想象的那样,如果托管包可以在订户组织中编写代码,Salesforce将难以强制执行包的安全性。另外,为了确保已安装的应用程序仅以可预测的方式修改元数据类型,Salesforce不支持自动生成代码。

保护您的组织免受未知应用程序的侵害

除了限制可以创建或修改的元数据类型外,Salesforce还限制哪些软件包可以通过Apex部署元数据。 Apex元数据API只能在三种情况下执行部署:

  • 从由已知的,已注册的独立软件供应商提供的认证管理软件包。
  • 从未经认证的托管软件包,但只有订户组织启用特定的Apex设置时,我们将在稍后讨论。
  • 来自非托管包,这意味着代码由执行它的组织拥有。

感觉更好?这些限制可确保部署来自可信实体。

注意

AppExchange中的合作伙伴应用程序可以在订阅者组织中进行元数据更改,以通知订阅者。 Salesforce在AppExchange安全审查期间验证此通知。

Salesforce提供Apex设置,允许未经认证的托管包(Salesforce尚未通过安全审核批准)执行元数据部署。它来自非认证软件包版本通过Apex部署元数据的易用名称,它位于“设置”|“Apex设置。未经认证的包中的Apex类不能访问元数据(公共或受保护的),除非启用此设置。

Screenshot of Apex Settings in Setup.

通过启用此设置,ISV可以测试尚未认证的托管软件包,企业可以使用托管软件包来测试或更新其应用程序。但只要您的组织关闭,您可以放心,没有未经认证的软件包可以修改您的组织。

下表显示了此设置如何控制不同软件包类型的部署。

认证 未认证 非托管
Deploy Metadata Apex设置 on Yes Yes Yes
Deploy Metadata Apex设置 off Yes No Yes

Audit包行为

您可以在安装程序审计跟踪日志中验证受管软件包的行为。在日志中跟踪使用Apex元数据API的所有元数据操作。记录执行部署的代码的名称空间,这意味着您始终知道哪个名称空间进行了更改以及何时进行了更改。安装程序审计跟踪日志位于 Setup | View Setup Audit Trail.

Screenshot of View Setup Audit Trail.

负责任地使用你的大力量

我们已经看到Salesforce如何通过以下方式确保Apex元数据API是可信的界面:

  • 限制可以修改的元数据的类型。
  • 控制有权访问元数据的包的类型。

但是在这些约束条件下运行的托管包可以在其自己的名称空间外修改元数据。所以,作为一名开发人员,还有一些需要了解的事情,以便您可以负责任地修改元数据。

托管Apex以与非托管Apex相同的方式操作订户组织中的元数据,但有两个例外:

  • 安装程序审计跟踪日志包括托管包的名称空间,因此您可以跟踪这些更改。
  • 托管包中受保护的元数据可以通过相同名称空间中的Apex代码访问,但是对于订户组织或其他名称空间不可见。

由托管包的Apex创建的所有元数据都是在订户名称空间中创建的。您可以将托管包视为在订户组织上创建元数据。下表显示了托管包,订阅者组织或其他托管包的名称空间如何访问元数据。

我的名字空间 订阅者命名空间 一个不同的托管包
开发者控制的公共元数据 读取 创建,读取,更新 读取
开发人员控制的受保护元数 读取 无权访问 无权访问
用户控制的公共元数据 创建,读取,更新 创建,读取,更新 创建,读取,更新
用户控制的受保护的元数据 创建,读取,更新 无权访问 无权访问

在处理Apex中的元数据时请记住以下几点。托管软件包的Apex可以:

  • 更新任何公共订户控制的元数据,不管它在同一个包,订户组织还是不同的托管包中。
  • 更新受保护的用户控制的元数据在其自己的名称空间。这种访问受保护元数据的功能使得Apex Metadata API成为保护更多应用程序的绝佳工具。您可以将您的应用程序配置隐藏为受保护的元数据,并仍然使用Apex操纵它们。
  • 只有在订阅者组织的名称空间中更新开发人员控制的元数据。例如,如果托管包中的Apex创建自定义元数据类型的记录,则该记录位于订户名称空间中。托管软件包中的代码可以更新任何字段。

托管包的Apex无法更新包含在其自己的包中的开发人员控制的记录字段,即使它们位于相同的名称空间中。该元数据只能通过软件包升级进行更新。

还是和我们一起?别担心,不会有测验。哦,等等,这是Trailhead,会有一个测验!

什么是元数据API权限?

元数据API本身增加了一层信任。 Apex元数据API部署始终尊重元数据API权限。虽然您可以编写允许最终用户排入部署的Apex代码,但如果用户没有正确的Metadata API权限,则该部署将失败。

相比之下,从Apex元数据API检索调用可以让您的应用程序已经授权访问的任何用户。随着更多的元数据类型在Apex中公开,检索调用可以方便地提供对请求中不可用信息的读取访问。

对于独立软件供应商:准备您的安全审查

如果您是ISV的开发人员,则在使用Apex元数据API时,请记住以下几点:

  • 要通过安全审查,您必须包含通知,让客户知道应用程序可以修改其元数据。
  • 测试未经认证的托管软件包时,必须在订户组织中启用“Apex部署元数据”设置。
  • 只支持页面布局和自定义元数据类型的记录。
  • 删除不受支持。

结论

您现在了解了Apex元数据API如何使您能够为多种类型的元数据更改构建自动化。您可以使用Apex的强大功能创建脚本并设置更新元数据的体验。我们只是抓住了Apex元数据API可以做的事情的表面,我们希望用Apex元数据API来构建伟大的事物。请访问我们的Trailblazer社区的Apex Metadata API Chatter小组。

发布于 2018年1月27日作者 ponybai分类 Apex-Metadata API

文章导航

上一篇 上篇文章: Apex-Metadata API(4)
下一篇 下篇文章: Visualforce-邮件模板(1)创建
自豪地采用WordPress