找回密码
 立即注册
首页 业界区 业界 salesforce零基础学习(一百四十四)External Client Ap ...

salesforce零基础学习(一百四十四)External Client App浅谈

琉艺戕 昨天 23:19
本篇参考:
https://help.salesforce.com/s/articleView?id=xcloud.external_integrations.htm&type=5
https://help.salesforce.com/s/articleView?id=release-notes.rn_security_eca.htm&release=250&type=5
Salesforce 集成篇零基础学习(一)Connected App
一. External Client App介绍

Summer 24 Release Salesforce推出了新一代的Connected App,即External Client App。核心功能是允许第三方应用程序使用 API 和安全协议与 Salesforce 集成。通过简单描述看来和Connected App实现功能类似,那么为什么称为新一代的Connected App呢,我们先进行一下External Client App和Connected App的优势对比。
如果不了解Connected App的使用,可以参考上方文档进行简单了解。
对比维度Connected AppExternal Client App
分发方式只能在单一 Org 内配置,无法打包分发支持 2GP 打包,可随 Managed Package 分发到多个 Org
适用场景单 Org 内部的集成跨 Org 分发、ISV 应用、复杂 OAuth 流程
OAuth 支持Authorization Code、User-Agent、JWT、SAML、Username-Password、Device Flow、Asset TokenAuthorization Code + Credentials(支持headless登录、无密码、访客用户)、JWT、Client Credentials、Device Flow
配置UI配置在 App Manager 中,界面传统,分发状态不直观独立的 External Client App Manager,支持 Distribution State(Local/Packageable),权限模型更清晰
生命周期管理每个 Org 需手动维护,修改需逐一操作支持集中配置,随包升级即可更新多个 Org 的配置
举个场景: 你在一个大型的公司,公司因为不同国家的安全合规不同,分成了多个org进行了管理,比如贵公司有北美,欧洲,亚太,中东四个org,安全要求涉及到集成,Connected App权限应该完全相同。 因为跨org,每个org的Connected App都需要单独维护并且需要确保一致,如果因为安全策略变动,OAuth Scope等变更,需要每一个org都修改和维护对应org的Connected App。有了External Client App以后,可以主org打一个2GP的包,其他的org进行安装。如果涉及到OAuth Scope等变更,2GP进行修改以及发布,其他的org只需要升级Managed Package即可。
External Client App虽然是新一代的Connected App,并且官方建议将Connected App 迁移到 External Client App,但迁移/使用以前需要考虑以下的差异,External Client App不是兼容所有的Connected App的功能,避免迁移/使用以后部分功能不好用。详情可以查看此文档: https://help.salesforce.com/s/articleView?id=xcloud.connected_apps_and_external_client_apps_features.htm&type=5
注:迁移/新建以前,一定要详细查看文档差异,除此以外还需要和下游系统对接,了解下游系统使用的OAuth Flow。 举个例子,公司的某个下游系统和Salesforce端进行集成,使用 username-password flow,因为安全等原因考虑,External Client App不支持username-password flow。 新建并且使用以后会导致下游系统和Salesforce集成链路中断。
二. External Client App 创建

除了package方式以外,通过UI可以两种方式实现External Client App的创建,一个是既有的Connected App进行迁移,另外一个是直接创建。下面对这两种方式简单介绍。
1. Connected App迁移

1. Setup -> App Manager,找到对应的Connected App进入以后,点击Migrate to External Client App
1.png

 2. Migrate的Connected App只能作为Local的External Client App使用,并且强调无法用于 username-password flow,勾选以后点击Migrate即可。
2.png

 3. 在 Setup -> External Client App Manager即可找到迁移以后的新一代Connected App了。
3.png

 点进去以后,分区友好。
4.png

 作为对比,以下是Connected App的截图,只有点击Manage以后才可以看到OAuth Policies等信息,权限模型不如External Client App直观。
5.png

 2. External Client App创建

1. setup -> External Client App 点击New External Client App按钮。
2. 进入以后,分区比Connected App更加的细化和友好。以下Section(Beta的目前不在文档中介绍)

  • Basic Information:维护External Client App基础信息,比如名称,分发状态(Local/Packaged)
  • API (Enable OAuth Settings):此处进行OAuth集成相关设置
  • Web App (Enable SAML Settings):此处进行Salesforce作为IDP相关的设置
相对来说配置内容上和以前的Connected App没有太大的改变,区别是进行了更好的分区。 我们以API (Enable OAuth Settings)为例,分成了3部分:

  • App Settings: 设置Callback URL以及OAuth Scope等信息
  • Flow Enablement:设置当前的App支持哪个Flow类型
  • Security:设置一些安全的策略。
6.png

 3. External Client App的使用

 我们以postman进行举例,demo中使用OAuth 2.0 Client Credentials Flow。
前置条件:

1. External Client App 找到目标App,进入后切换到Settings,勾选 Enable Client Credentials Flow
7.png

 2. 在Policies -> OAuth Policies勾选Enable Client Credentials Flow,然后设置Run as users
8.png

 Postman 调用:

Postman使用以下的信息:

  • Request Type: POST
  • URL: Domain + /services/oauth2/token
Request Body中包含以下信息:

  • grant_type:client_credentials
  • client_id: 这个External Client App的consumer key
  • client_secret: 这个External Client App的consumer secret
可以在这个External Client App的Settings -> OAuth Settings 部分,点击Consumer Key And Secret 链接获取。
效果展示:

9.png

 4. 如何创建Connected App

虽然External Client App很好,但是项目原因就是需要使用Connected App,发现系统中无法创建Connected App了,如何操作呢?
Setup -> External Client Apps -> Settings, 勾选Allow creation of connected apps即可新建了。
10.png

 总结

本篇主要简单介绍了一下External Client App是什么以及和Connected App的比较和简单使用。想要了解针对External Client App 更多的有趣的使用以及更多的限制,查看上面的官方文档学习更多。篇中有错误的地方欢迎指出,有不懂的欢迎留言。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册