保护用户身份(01 Secure Your Users' Identity)
本单元关注登录流程的第一步——多因素身份验证(MFA)。你将了解什么是 MFA、为什么用户名加密码不够安全、Salesforce 支持哪些验证方式,然后动手为一个组织开启 MFA,并帮助新员工 Sia 用 Salesforce Authenticator 应用完成注册。
完成本模块后,你将能够:
- 为用户设置多因素身份验证;
- 用 Salesforce Authenticator 应用完成 MFA 登录;
- 获取登录你组织的用户的相关信息。
提示:本单元的动手任务需要一台运行 Android 或 iOS 的移动设备。
用多因素身份验证保护账号访问(一):用户名密码不够(Secure Account Access (1))
单靠用户名和密码,不足以抵御网络钓鱼等网络威胁。增强登录流程、保护组织数据的有效办法,是要求用户在登录时提供额外的身份证据。
安全专家把这称为多因素身份验证(Multi-Factor Authentication,MFA)。Salesforce 认为 MFA 极其重要,要求访问我们产品与服务的每个人都必须使用它。你需要一台运行 Android 或 iOS 的移动设备来完成本单元的动手任务。
什么是多因素身份验证?(一):多种因子(What Is MFA (1))
MFA 听起来像数学方程式,但它跟代数毫无关系——它关心的是确保用户确实是他们声称的那个人。所谓「多因子」,就是用户登录时提供的不同类型的证据:
- 你知道的东西(Something you know)——比如 Salesforce 的用户名加密码组合;
- 你拥有的东西(Something you have)——比如装了身份验证器应用的手机,或一把物理安全密钥。
在 Salesforce 中,MFA 相关的授权可通过「MFA Authorization for User Logins」这样的权限集来管理。
如果你听过双因素身份验证(2FA),别担心——2FA 只是 MFA 的一个子集,本质上是同一回事。
什么是多因素身份验证?(二):你早就用过(What Is MFA (2))
你可能不知道它的名字,但几乎肯定用过 MFA。每次你用 ATM 取钱,都用到了:
- 你拥有的东西——银行卡;
- 你知道的东西——密码(PIN)。
在用户名密码之外再要求一个因子,为组织增加了重要的一层安全防护。即使用户的密码被盗,攻击者几乎不可能猜中或冒充一个用户物理拥有的因子。
MFA 如何工作(一):额外的登录步骤(How MFA Works (1))
MFA 给登录流程增加一步:
- 用户照常输入用户名和密码;
- 然后系统提示用户提供一种 Salesforce 支持的验证方式。
作为管理员,你可以决定允许哪些方式——可以启用任意一种或全部,取决于你的用户和安全需求。接下来看看可选的方式。
MFA 如何工作(二):可启用的验证方式(How MFA Works (2))
Salesforce 支持多种验证方式:
- Salesforce Authenticator——免费移动应用,通过推送通知快速验证身份;
- 第三方 TOTP 验证器——生成临时一次性验证码(TOTP),如 Google Authenticator、Microsoft Authenticator、Authy;
- 安全密钥——像 U 盘一样的物理令牌,支持 FIDO U2F / FIDO2 WebAuthn,如 YubiKey、Titan Security Key;
- 内置验证器——生物识别,如 Touch ID、Face ID、Windows Hello。
何时要求多因素身份验证(When Are Users Prompted)
用户每次登录都必须提供多因子。根据 Salesforce 服务条款,所有客户都必须对用户界面登录使用 MFA。若想进一步加强安全,还可以在更多场景要求 MFA:
- 用户访问 Salesforce API 时;
- 访问互联应用、仪表板或报表时——这被称为步进(step-up)或高保障认证;
- 在自定义登录流程或自定义应用里,例如阅读许可协议之前。
开启 MFA 的选项(Your Options for Turning on MFA)
Salesforce 要求每个 UI 登录都使用 MFA,而且对生产组织来说,MFA 是登录流程的默认部分——通常你什么都不用做。但作为管理员,你可以:
- 在新的生产组织里临时禁用 MFA,给用户准备的时间;
- 等所有人都准备好后重新启用 MFA。
你也可以轻松地为其他类型的组织开启 MFA:沙箱、开发者组织,甚至 Trailhead Playground。开启它只是 Setup 里勾选一个复选框而已。
确认会话安全级别已设为 MFA(Verify Session Security Level)
在大多数生产组织里,MFA 登录方法对应的安全级别已经设置正确,但最好还是复查一下以防万一:
- 从 Setup,在 Quick Find 输入
Session Settings,选择 Session Settings; - 在 Session Security Levels 下,确认「多因素身份验证」位于 High Assurance(高保障)类别。
确认之后,你就可以开始 MFA 之旅了。
开启 MFA:Jedeye 任务(Turn on MFA: The Jedeye Mission)
来看一个故事。你是 Jedeye Technologies 的 Salesforce 管理员。公司生产组织刚上线时,MFA 被禁用,好让用户有时间准备。现在首席安全官交给你一项任务:所有员工每次登录都必须提供比用户名密码更多的信息。
对了,还有一位新员工 Sia Thripio 刚刚入职。你的计划:先为 Sia 创建一个 Salesforce 用户,再为组织开启 MFA。
准备好动手了吗?(Ready to Get Hands-On)
现在启动你的 Trailhead Playground 跟着操作。要打开它,滚动到动手挑战处,点击 Launch。完成动手挑战时也会用到这个 Playground。
再提醒一次:完成本单元部分任务需要一台运行 Android 或 iOS 的移动设备。
步骤 1:创建用户(一):填写基本信息(Step 1: Create a User (1))
开始为 Sia 创建用户:
- Setup 的 Quick Find 输入
Users,选择 Users,点击 New User; - 名填
Sia,姓填Thripio; - Email 填你自己的邮箱——Sia 的用户通知会发到那里;
- 用户名必须是邮箱格式,但不必是真实可用地址,只需在 Playground 里唯一、好记,例如
SThripio.12202020@trailhead.com; - 编辑或接受昵称。
步骤 1:创建用户(二):许可证、简档与验证(Step 1: Create a User (2))
完成用户记录:
- User License 选 Salesforce Platform;
- Profile 选 Standard Platform User,并取消 Salesforce CRM 内容提醒(避免邮箱被塞满);
- 确保勾选 Generate new password and notify user immediately(在页面底部);
- 点击 Save——Salesforce 会给你发一封邮件,包含验证用户并设置 Sia 密码的链接;
- 以 Sia 身份登录,重置密码。若用户名已存在,换个名字重新创建。
密码设置完成后,就可以为组织开启 MFA 了。
为全员开启 MFA(一):一个复选框(Turn on MFA (1))
你只需一个复选框就能为所有用户开启 MFA:
- Setup 的 Quick Find 输入
Identity,选择 Identity Verification; - 勾选 Require multi-factor authentication (MFA) for all direct UI logins to your Salesforce org;
- 点击 Save。
就这样!现在组织里的每个人——包括新员工 Sia——登录时都必须完成 MFA。
为全员开启 MFA(二):豁免用户怎么办?(Turn on MFA (2))
一个合理的问题:有些账号应该豁免 MFA 吗?比如测试自动化工具的账号。Salesforce 的 MFA 要求确实不适用于某些类型的用户。
如果你有豁免用户,可以应用一个用户权限把他们从 MFA 要求中排除。要了解哪些用户类型可以豁免、如何排除,参见 Salesforce Help 的「Exclude Exempt Users from MFA」。
注册 Salesforce Authenticator(一):做好准备(Register (1))
要求用户用 MFA 却不帮他们准备好至少一种验证方式,是不明智的——你可能会接到一堆不想接的电话。好办法是让用户下载一个验证器应用,并把它连接到 Salesforce 账号。
如果用户没立刻下载,也不是灾难——他们下次登录时会自动被提示注册一种验证方式。新员工 Sia 想用 Salesforce Authenticator 应用,享受推送通知带来的快速认证。
注册 Salesforce Authenticator(二):在两台设备上连接(Register (2))
注意:接下来的步骤要在两台设备之间来回切换。手机端 = 你在 Authenticator 应用里扮演 Sia;桌面端 = 你在 Playground 里以 Sia 登录。
先在手机从 App Store 或 Google Play 安装并打开 Salesforce Authenticator,翻完引导。然后在桌面退出管理员,改用 Sia 的用户名密码登录——系统会提示你连接内置验证器,此时选择其他验证方式,再选 Salesforce Authenticator。
在手机上点 Connect Your Account,应用会显示一个两个词的短语;把这个短语输入到桌面的 Two-Word Phrase 字段,点击 Connect。
随后手机上会显示 Sia 的账号详情(用户名和服务提供商 Salesforce),点 Connect 确认——Sia 就注册成功并已登录!
注册 Salesforce Authenticator(三):它追踪什么(Register (3))
现在,每当 Sia 登录 Salesforce,她的手机都会收到一条通知:打开 Salesforce Authenticator,检查活动详情,没问题就点 Approve 完成登录;要是别人用她的用户名密码尝试登录,她也会收到通知,可以拒绝该请求。
Salesforce Authenticator 会记录这些数据:
- 正在访问的服务(Salesforce、LastPass 等);
- 尝试登录的用户;
- 正在验证的动作(启用步进认证时还会出现打开记录、仪表板等动作);
- 登录尝试所用的浏览器/应用和设备;
- 手机所在的位置。
备份已连接账号(Back Up Connected Accounts)
现在 Sia 的账号已连接到 Authenticator,她可以通过验证邮箱来开启账号备份,这样换手机或手机丢失时能恢复已连接账号:
- 手机端:点左上角设置图标;
- 打开 Back Up Accounts 开关;
- 输入 Sia(也就是你的)邮箱,点 Send Code;
- 查收邮件,把验证码输入应用;
- 设置一个 passcode,以后恢复账号时用它。
确认 Salesforce Authenticator 能发通知(Verify Notifications)
Salesforce Authenticator 靠推送通知让 MFA 变得轻松,但 Sia 要确认应用有发送通知的权限:
- 手机端:点设置图标回到设置页;
- 确认 Push Notifications 显示为 Enabled;
- 如果不是,点 Change in Settings 跳到手机系统设置,更新 Salesforce Authenticator 的权限,允许通知。
自动化身份验证流程(一):信任一次登录(Automate (1))
如果 Sia 总是从同一个地方(办公室、家里)登录,每次点 Approve 就会变得繁琐。如果她允许应用使用手机的定位服务,就可以让应用在识别出全部细节时自动验证:
- 桌面端:退出 Sia 账号,再以 Sia 登录;
- 手机端:在提示里选择 Trust and automate this request,点 Approve;
- 桌面端:再次退出并登录——这次不再提示!应用识别出相同的设备、浏览器和位置,自动放行。
自动化身份验证流程(二):管理受信任请求(Automate (2))
Sia 随时可以管理她的受信任请求。当她用不同的浏览器、设备或位置登录时,可以把新详情加入受信任请求列表,想存多少都行。
点箭头图标打开账号详情页,那里列出了受信任请求和登录历史:Verified Activities 是应用验证登录的次数,Automations 是自动登录的次数。
要删除某条请求,左滑即可;要清空全部,选 Remove All Trusted Requests。如果自动验证失败(比如断网),Sia 可以直接输入应用显示的 TOTP 码。
管理员则可以在组织的 Identity Verification Settings 里,把自动验证限制到受信任的 IP 地址,或完全禁用自动验证。
Sia 手机丢了怎么办?(一):从备份恢复(Lose Phone (1))
用户会崩溃、被困在沙漠星球、弄丢手机——这事常发生。如果 Sia 丢了手机、换了新机或误删了 Salesforce Authenticator,她有几种选择。如果她开启过账号备份,那就很轻松:
- 在新手机上重新安装 Salesforce Authenticator;
- 打开应用,选择从备份恢复账号;
- 输入备份时设置的 passcode;
- 账号就重新出现在手机上了。
Sia 手机丢了怎么办?(二):断开并重新注册(Lose Phone (2))
如果 Sia 没有备份,你可以从管理员这边帮她:
- 以管理员登录;
- Setup 的 Quick Find 输入
Users,选择 Users; - 点击 Sia 的名字;
- 在用户详情页,点 App Registration: Salesforce Authenticator 旁边的 Disconnect。
下次 Sia 登录时(假设她没有其他验证方式),就会被提示重新连接 Salesforce Authenticator。注意:如果你想卸载 Authenticator 应用,请先在 Identity Verification 页禁用「Require MFA for all direct UI logins」,否则以后就无法登录 Playground 了。
监控谁在登录你的组织(Monitor Who's Logging In)
管理员工作的重要一环,是知道谁在登录组织——这正是 Identity Verification History 的用途:
- 以系统管理员登录 Trailhead Playground;
- Setup 的 Quick Find 输入
Verification,选择 Identity Verification History。
查看 Location 列——它默认显示用户的国家,你可以创建自定义视图获取更详细的信息。恭喜,管理员!现在用户已经能轻松设置并用 MFA 登录了。
用 My Domain 定制登录流程(02 Customize Your Login Process with My Domain)
本单元学习 My Domain——Salesforce Identity 中用来个性化用户访问方式的特性。你将了解 My Domain 能带来什么,浏览控制路由与登录的策略,然后用公司品牌定制登录页。
完成本单元后,你将能够:解释 My Domain 的好处;说明 My Domain 如何让你控制用户访问组织的方式;定制你的登录页。
用 My Domain 定制 Salesforce 组织 URL(Customize Org URL)
是不是很想改改用户的 Salesforce 登录体验?比如把公司名加进登录 URL、在登录页显示你的 logo,甚至让用户用 Google 凭据登录?My Domain 让你做到这些,甚至更多。
本单元将探索 My Domain 是什么,以及它如何让你对用户访问组织的方式拥有更多控制。
什么是 My Domain?(一):你自己的子域名(What Is My Domain (1))
My Domain 就像你在 Salesforce 宇宙里的帝国——它是 Salesforce Identity 的一项功能,让你用一个子域名来个性化组织。
有了 My Domain,用户得到个性化的 Salesforce 访问方式。你的登录 URL 不再是难记的实例地址(如 https://na30.salesforce.com),而是 https://somethingReallycool.my.salesforce.com,其中 somethingReallycool 是你的 My Domain 名(通常是公司名),my.salesforce.com 是 Salesforce 域名后缀。注意:Salesforce 里「custom domain」含义不同,它指的是以你自己域名(如 mycompany.com)结尾的 URL。
什么是 My Domain?(二):为什么 Salesforce 要求它(What Is My Domain (2))
My Domain 不只是品牌和便利,更关乎控制和简化身份验证。Salesforce 要求拥有 My Domain 才能:
- 在同一浏览器里使用多个 Salesforce 组织;
- 与第三方身份厂商设置单点登录(SSO);
- 设置 Google、Facebook 等身份提供商,让用户用社交凭据登录;
- 用品牌定制登录页。
因为 My Domain 如此重要,所有组织默认都有一个(生产组织的默认名基于内部组织 ID);不喜欢这个名字还可以改。
设置 My Domain 策略(一):路由与登录策略(Set Policies (1))
来看场景:你是 Jedeye 的管理员,已经部署了 My Domain 名 jedeyetech,登录 URL 是 https://jedeyetech.my.salesforce.com,Lightning 页面都用 https://jedeyetech.lightning.force.com。首席营销官不希望用户在地址栏看到 Salesforce 实例。
在 Setup 里逛一下 My Domain 页:搜索 My Domain,在 Routing and Policies 下点 Edit。Login Policy 里可以要求登录必须走你的 My Domain URL(如禁止从 login.salesforce.com 或沙箱的 test.salesforce.com 登录),SOAP API 登录同理。本场景这些选项保持不勾选,点 Cancel 返回。
设置 My Domain 策略(二):记录重定向(Set Policies (2))
在 Redirections 下点 Edit。当你上线新的品牌化 My Domain URL 时,会想识别指向旧 URL 的请求,好更新引用。
做法:勾选 Log redirections 并保存。保存后,Salesforce 会为 Hostname Redirects 事件类型生成日志,包含生成时刻之前 24 小时内的重定向信息。你也可以用 Event Monitoring 记录成功和被阻止的重定向。
定制登录页(一):加上你的品牌(Customize Login Page (1))
策略设置好了,现在让登录页属于你自己。品牌化登录页能让用户不必看浏览器地址栏就认出你的网站。你可以添加:
- 公司 logo;
- 新的背景颜色;
- 右侧你自己的图片或消息(适合放登录时想展示的公告)。
从 My Domain 页的 Authentication Configuration 下点 Edit 开始。
定制登录页(二):配置并实时查看(Customize Login Page (2))
在 Authentication Configuration 里:
- 保持 Login Page Type 不变——现在继续用标准用户名密码;
- Logo File:上传公司 logo(.jpg/.gif/.png,最多 100 KB,最大 250×125 像素),显示在左上角;
- Background Color:用取色器或十六进制码改背景色;
- Right Frame URL:右侧内容,约占半页,生产组织须用 https URL,暂可用 Lorem Picsum 的图片;
- 不动 iOS/Android 原生浏览器等认证方式(它们不影响品牌化);
- 点 Save,退出再登录——迎接你的就是全新登录页。
大功告成!(You're Done!)
恭喜,管理员!你已经设置了 My Domain 的重定向策略,并按公司品牌定制了登录页。首席营销官很满意你的 Salesforce 组织终于反映了品牌形象。
下一单元,你将在这个品牌化基础上,为内部用户设置单点登录。
为内部用户设置单点登录(03 Set Up Single Sign-On for Your Internal Users)
本单元设置入站单点登录(inbound SSO),让用户能用第三方身份提供商的企业凭据登录 Salesforce。你将创建 Federation ID、在 Salesforce 侧配置 SAML 设置、链接身份提供商,最后验证一次登录是否真的成功。
完成本单元后,你将能够:创建 Federation ID;从第三方身份提供商设置单点登录;熟悉排查 SAML 请求的工具。
单点登录(一):登录一次,访问 Salesforce(SSO (1))
My Domain URL 已经让员工能用安全好记的地址登录,而 SSO 让他们根本不用登录。SSO 有很多好处:
- 你花在管理密码上的时间更少;
- 员工省时——用户每次手动登录要 5–20 秒,积少成多;
- 更多人用 Salesforce——共享的记录和报表链接可一键打开;
- 从一个地方管理敏感信息的访问。
单点登录(二):入站 vs 出站(SSO (2))
单点登录有两个方向:
- 入站 SSO(inbound)——用户先在别处(如本地应用)登录,然后无需再次登录即可访问 Salesforce(本单元的重点);
- 出站 SSO(outbound)——用户先登录 Salesforce,再无需再次登录访问其他服务。
别忘了 MFA(Keep MFA in Mind)
还记得 MFA 要求吗?它同样适用于 SSO 用户——即使员工通过本地应用或 SSO 身份提供商访问 Salesforce,也必须先完成 MFA。有简单的处理办法:
- 对 SSO 使用 Salesforce 自带的 MFA 服务(见 Help「Use Salesforce MFA for SSO」);
- 或者,如果你的提供商提供 MFA,就在用户登录提供商时要求 MFA,而不是到 Salesforce 时。
用第三方身份提供商配置入站 SSO:四步(Configure Inbound SSO: 4 Steps)
IT 主管 Sean Sollo 要你设置 SSO,让 Salesforce 用户能用 Jedeye 网络凭据登录。我们以新员工 Sia 为例,用 Axiom Heroku web app 作为身份提供商。听起来难,其实不然——拆成四步:
- 为每个用户创建 Federation ID;
- 在 Salesforce 里设置 SSO 设置;
- 在 SSO 提供商里设置 Salesforce 设置;
- 确认一切正常。
步骤 1:创建 Federation ID(Step 1: Create a Federation ID)
设置 SSO 时,用唯一属性标识每个用户——这是把 Salesforce 用户与第三方身份提供商关联起来的链接。可以用用户名、用户 ID 或 Federation ID(这里用它,它是身份行业对「唯一用户 ID」的称呼)。
- Setup 的 Quick Find 输入
Users,选择 Users; - 点 Sia 名字旁的 Edit;
- 在 Single Sign On Information 下输入 Federation ID:
sia@jedeye-tech.com; - 点 Save。
提示:Federation ID 在组织内每个用户必须唯一;若用户属于多个组织,就在每个组织用同一个 Federation ID。
步骤 2:在 Salesforce 配置 SSO 提供商(一):启用 SAML(Step 2 (1))
你的服务提供商(Salesforce)需要了解身份提供商(Axiom),反之亦然。在 Salesforce 侧我们配置 SAML 设置——SAML 是 Salesforce Identity 实现 SSO 所用的协议。建议把 Salesforce 和 Axiom 分别开在两个浏览器窗口,方便复制粘贴。
- 新窗口访问
https://axiomsso.herokuapp.com; - 点 SAML Identity Provider & Tester;
- 点 Download the Identity Provider Certificate(记住保存位置,稍后上传);
- 回到 Salesforce Setup,Quick Find 输入
Single,选 Single Sign-On Settings; - 点 Edit,勾选 SAML Enabled,点 Save。
步骤 2:在 Salesforce 配置 SSO 提供商(二):SAML 设置(Step 2 (2))
在 SAML Single Sign-On Settings 里点 New,填入这些值:
- Name: Axiom Test App;
- Issuer:
https://axiomsso.herokuapp.com; - Identity Provider Certificate: 刚才下载的文件;
- Request Signature Method: RSA-SHA1;
- SAML Identity Type: Assertion contains the Federation ID from the User object;
- SAML Identity Location: Identity is in the NameIdentifier element of the Subject statement;
- Service Provider Initiated Request Binding: HTTP Redirect;
- Entity ID: 你的 My Domain URL(含 https 且引用 Salesforce 域名)。
点 Save,保持页面打开。
步骤 3:链接身份提供商(一):生成 SAML 响应(Step 3 (1))
Salesforce 现在认识了 Axiom。下一步反过来:让身份提供商认识 Salesforce。返回 Axiom web app,点 SAML Identity Provider & Tester,再点 generate a SAML response。
因为要填写 Salesforce 的 SSO 设置,请保持两个浏览器窗口同时打开——一个 Salesforce、一个 Axiom,方便互相复制数值。
步骤 3:链接身份提供商(二):填写提供商字段(Step 3 (2))
在 Axiom 表单里填入(其余字段保持不变):
- SAML Version: 2.0;
- Username or Federated ID: Sia 的 Federation ID(来自她的 Salesforce 用户页);
- Issuer:
https://axiomsso.herokuapp.com; - Recipient URL: Salesforce SAML 设置页底部的 Login URL(Endpoints 段);
- Entity Id: Salesforce SAML 设置页的 Entity ID。
填完后,Axiom 设置页看起来就绪,可以进行最后测试了。
步骤 4:确认一切正常(Step 4: Make Sure It All Works)
一切配置完毕,现在用一次成功登录来证明:
- 在 Axiom 设置窗口,点击最底部的 Request SAML Response;
- Axiom 以 XML 生成 SAML assertion——初看像机器人语言,但滚动下去就能看到用户和请求的相关信息;
- 点 Login。
如果一切正常,你就以 Sia 的身份登录到 Salesforce 主页——Axiom 把你作为持有相应 Federation ID 的用户登录进了 Salesforce。恭喜,你为从其他应用访问 Salesforce 的用户配置好了 SSO!













































