ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Salesforce 主流认证方式、流程、适用场景

Salesforce 主流认证方式、流程、适用场景 Salesforce 主流认证方式、流程、适用场景核心前提绝大多数外部系统对接Salesforce底层基于Connected App连接应用配置Client‑ID / Client‑Secret、OAuth Scope作为授权基础。分为两大类OAuth2.0系列外部App访问SFSF向外调用外部系统Named Credentials / External Credentials还有传统用户名密码、SSO。一、OAuth 2.0 五种主流Flow外部App调用Salesforce API重点1、Web‑Server FlowAuthorization Code 授权码流程推荐流程用户浏览器跳转Salesforce授权页面用户输入账号密码登录、同意授权SF重定向回调URL返回Authorization Code授权码后端服务拿code ClientIDClientSecret去兑换access_tokenrefresh_token后端携带access_token调用Salesforce APIrefresh_token用于过期刷新令牌。适用场景✅ 有后端服务的Web应用终端商户用户登录外部App以该商户身份读取自己Salesforce数据商户App最典型场景。商户在外部App登录只能看自己Account/Case受用户权限、共享集控制。特点密钥保存在后端不会暴露前端安全支持refresh_token长期访问移动端无后端时用Authorization Code PKCE去掉Client‑Secret防止授权码被劫持。✨场景餐厅老板登录商户App查看自己的商户信息、工单优先 Web‑Server PKCE。2、JWT Bearer Token FlowJWT证书流程服务‑对‑服务M2M流程Connected App上传数字证书私钥保存在外部系统公钥上传SF外部后端生成JWT携带用户名、iss(clientId)用私钥签名发给Salesforce token端点直接换取access_token不需要人工交互登录界面。适用场景✅ 后台服务、定时任务、ETL、CDC监听无真实终端用户介入系统账号跑批SFDX命令行也是JWT。例后台同步Salesforce数据到外部App数据库后台服务账号拉取数据。特点完全无弹窗、无人工登录证书管控不支持refresh_token每次重新申请token风险私钥泄露则可冒充集成用户要严格保管私钥。3、Client Credentials Flow客户端凭证较新M2M流程Connected App开启该流程预先指定一个“Run‑As”集成用户外部直接传Client‑ID Client‑Secret拿到access_tokenAPI全部以配置好的Run‑As用户权限执行。适用场景✅ 服务‑对‑服务后台同步不需要代表某个终端登录用户统一集成账号访问。区别JWT不用证书只用密钥缺点密钥泄露风险更高。4、User‑Agent FlowImplicit 隐式流不推荐生产流程浏览器直接拿到access_token放在URL #hash片段没有授权码兑换步骤没有refresh_token。适用纯前端SPA浏览器demo禁止生产使用。风险token暴露浏览器地址栏容易泄露令牌。5、Username‑Password Flow用户名密码流已废弃新Org默认关闭流程外部直接传SF用户名密码安全Token换取token。❌ 缺点绕过MFA密码暴露第三方客户端不支持Sso官方不建议生产Winter’27会淘汰。二、Salesforce向外调用外部系统Apex Callout场景即Salesforce作为客户端调用POS外部APIOpportunity关闭开通商户账号场景Named Credentials命名凭证 External Credentials外部凭证流程External Credentials保存认证方式Basic / OAuth/JWT/mTLSNamed Credentials保存目标API地址关联External CredentialsApex callout直接写callout to NamedCredential代码中完全不写账号密码、token平台自动完成鉴权。适用场景Apex Callout向外调用第三方REST接口把认证配置集中在Setup代码无硬编码便于轮换密钥。面试话术SF要callout调用外部POS接口优先使用Named Credentials避免硬编码密钥。三、SSO 单点登录SAML / OpenID ConnectSAML SSO企业IdPOkta/AzureAD作为身份源用户通过企业账号登录Salesforce不需要SF原生密码。适用内部员工统一身份管理企业域集成。OpenID Connect第三方充当IdP登录Salesforce或者Salesforce充当IdP登录外部App。选型对照表面试可以直接口述认证方式是否需要用户交互典型使用场景岗位是否匹配Web‑ServerPKCE✅ 用户登录商户App终端用户登录访问自己数据高商户登录外部AppJWT Bearer❌无交互后台批处理、CDC监听M2M同步高后台拉取SF数据同步到外部DBClient Credentials❌无交互M2M服务对接统一集成账号中User‑Agent✅浏览器Demo SPA不建议生产❌不使用Username‑Password❌无交互遗留系统官方废弃❌禁止生产Named Credentials‑SF Apex Callout调用POS外部API高SF调POS开通商户✨针对业务场景口述中文面试官问认证选型我们的业务是外部商户App从Salesforce拉取数据展示分两类场景终端餐厅商户登录App查看自己数据选用Web‑Server OAuth PKCE商户在浏览器授权登录每个API调用携带该商户身份配合with sharing行级共享保证商户只能看到自己Account和Case。后台服务批量同步数据CDC消费、预缓存数据无终端用户登录选用JWT Bearer Flow使用集成系统账号做服务对服务调用。如果Salesforce这边Apex需要反向调用POS接口开通商户账号会用Named Credentials托管鉴权信息不在代码硬编码密钥。英文精简口述美国技术面试For merchant external‑app scenario, two main authentication patterns apply.When end‑merchant users log into the app to view their own account and case data, we useOAuth 2.0 Web‑Server flow with PKCE. Each API request runs under merchant user context, and Apex useswith sharingto enforce record‑level isolation.For background server‑to‑server sync jobs without end‑user interaction,JWT Bearer token flowis preferred for M2M integration.When Salesforce Apex needs to call out to POS backend, I leverage Named Credentials to centralize auth configuration and avoid hard‑coding secrets inside Apex code.高频追问回答QJWT vs Client Credentials怎么选JWT使用数字证书安全性更高适合生产M2MClient Credentials依靠Client Secret密钥如果密钥泄露风险更高。优先JWT做生产后台集成。QWeb‑Server为什么要PKCEPKCE保护公开客户端移动端、SPA防止授权码被拦截劫持不需要保存Client Secret在客户端。Qaccess_token过期怎么办Web‑Server拿到refresh_token用refresh_token刷新access_tokenJWT没有refresh_token需要重新签名申请新token。QConnected App最重要配置OAuth scopeapi访问APIrefresh_token offline_access获取刷新令牌回调URL证书JWT场景IP策略、会话超时策略。
返回列表