salesforce零基础学习(一百零八)MFA
本篇参考:https://security.salesforce.com/mfa
https://sfdc.co/bvtuQT (MFA官方研讨会的文档)
https://sfdc.co/iwiQK(MFA中华区研讨会视频)
Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On
我们之前介绍过关于登录安全的 2fa,今天主要讲的是MFA。 MFA 官方的介绍是到2022年2月1日起,salesforce登录环境要强制要求启用MFA。换言之,MFA没搞定,不允许登录salesforce了。那么所有license,所有场景都需要强制吗,是否收费,如何实施是大部分人的疑问,主要针对这几点进行描述。
一. 什么场景使用 MFA
说MFA 强制使用也不是一个特别绝对的说法,也不必过度紧张。MFA强制使用也是有一个 scope范围的。我们基于用户的类型以及用户登录的媒介进行两个表格的梳理。
我们针对salesforce的用户的类型,可以简单的归纳成3类: 内部用户,外部用户,chatter用户。
内部用户: 比如admin / standard user等内部用户,可以访问 salesforce UI的用户。license通常是 salesforce / platform user / standard user等。
外部用户:代表只能访问 community cloud用户或者site等的外部用户。license通常有Customer Community,Partner Community,External Identity User。
Chatter用户:通常 license/ profile是Chatter External, Chatter Free和Chatter Only用户
|
用户类型 |
是否需要实施MFA |
|
内部用户 |
是 |
|
外部用户 |
否 |
|
Chatter |
否 |
如果只是针对用户类型考虑,并不绝对,也不客观。举个例子: 有些项目情况比较特殊,Salesforce可能只是当成了一个云服务器,真正的UI操作都是在外部系统。外部系统可能通过 rest api / tooling api等访问 metadata以及访问数据,那这种情况即使用户是内部用户,即使是system admin的Profile,不访问SF的UI还需要强制MFA吗?结果是不需要的。所以我们还需要考虑登录类型或者授权方法的维度。
|
登录类型 / 授权方法 |
是否需要实施MFA |
介绍/注意事项 |
|
直接登录到 Salesforce的UI |
是 |
适用于Salesforce所有的界面,包括手机app以及客户app(比如Dataloader)。针对Dataloader有一个注意点:Dataloader有两种登录方式,Oauth是需要MFA的, Password方式走API Login是不需要的 |
|
自动化测试和 RPA 帐户登录到 UI |
否 |
自动化测试账号,MFA是不需要强制实施的 |
|
API / Integration 登录 |
否 |
|
|
设备激活/身份验证 |
是 |
当用户登录在一个未识别的设备或者浏览器时,或者IP在 trust IP以外的场景,验证时需要走MFA |
|
代理身份认证 |
是 |
详见:https://help.salesforce.com/s/articleView?id=sf.sso_delauthentication.htm&type=5 |
|
单点登录 |
是 |
|
|
Risk-Based/Continuous Authentication |
具体情况具体分析 |
根据官方的介绍文档,具体情况具体分析。 |
|
Trusted Corporate Devices / Device Certificates |
同上 |
同上 |
|
Trusted Networks |
同上 |
同上 |
|
User Certificates |
同上 |
同上 |
上面的一些登录方式或者授权方式项目中没使用过,为了防止翻译错误或者解释错误,建议自行查看文档。所以我们根据文档中的介绍,可以看出来,大部分的项目需要强制MFA的场景是内部用户,并且需要访问 salesforce UI的场景,如果只是用于API集成,则大可不必。
二. MFA支持的实现方式以及实现步骤
MFA的实施根据官方建议可以采用大概三种方式:
- Salesforce Authenticator:此种方式的实现步骤和2FA极其相似,而且是免费的。所以此种MFA方式是性价比最高的,而且Salesforce Authenticator如果出现了问题,可以随时给salesforce提紧急case帮助解决。
- 第三方身份验证器:官方也例举了一些,这些需要考虑一下费用,以及你的公司的使用用户所在地等等。如果针对国内客户,需要考虑认证方式是否可以访问以及是否稳定。
- 密钥方式

针对文本验证,邮件等方式验证,不计入MFA范畴,所以即使你现在的项目使用了这些种验证方式,根据salesforce的安全性考虑,还要在MFA强制启用之前,选择前面的3种方式之一实行。
本篇介绍的是通过 Salesforce Authenticator。Google app访问不了的小伙伴,后续项目实施记得下载apk以后,提供给用户一个 publick link去下载。
启用MFA其实特别简单。创建一个 permission set,然后 在 system permission勾选这两个permission即可。

创建完成以后,将需要启用MFA的user添加到这个permission set即可。我们以自己的管理员账号登录到salesforce,账号密码输入完成以后,需要进行Salesforce Authenticator的关联和校验。

这里因为手机软件对当前页面保护措施要求严格,没法截图,所以不添加手机端的截图。这里有一个很尴尬的点,就是我第一次对手机端授权关联以后,报错了。。。

按照提示,将web端 log out,并且将手机端 authenticator账号解绑并且重新操作以后,顺利搞定。(Notes:这里实施团队强烈建议客户做一个FAQ进行说明)
接下来就是我们想知道系统用户中都有哪些人已经做了MFA的账号绑定,我们只需要在 user视图中将MFA相关的字段拖出,可以很方便的查看到,如下图所示。

除了看谁已经绑定了MFA以外,我们还可以在 setup 访问 Identity Verification History查看用户认证登录的信息。
当然,上述只是最简单的介绍了一下 MFA的简单的配置以及一些小特性。除此之外,小伙伴们如果想更加细致的了解MFA的内容,目前salesforce的org已经在setup处增加了MFA 的小助手,大家可以 step by step进行学习了解。

当然,如果时间紧急,并且没有resource去进行MFA的配置,也可以联系salesforce原厂的实施团队,他们针对这个也可以进行有偿实施,详情可以查看视频内容。
总结:篇中只是简单的介绍了MFA的一种简单的实现方式。MFA和2FA的区别,按照官方的说法就是2FA是MFA的一部分,配置上可能也就省了session setting中的2fa的设置,整体MFA实施难度还好,无非就是针对app的安装,针对用户的training需要更好的进行推广。篇中有错误欢迎指出,有不懂欢迎留言。
附: authenticator的app已经放在百度网盘。链接: https://pan.baidu.com/s/16v52M6cLEBAGi29Xugm8rg 提取码: 2eee 复制这段内容后打开百度网盘手机App,操作更方便哦
salesforce零基础学习(一百零八)MFA的更多相关文章
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- salesforce 零基础学习(六十八)http callout test class写法
此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...
- salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及去重实现
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的au ...
- salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见
项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随 ...
- salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值
注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-fr ...
- salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...
- 【转】【Salesforce】salesforce 零基础学习(十七)Trigger用法
看本篇之前可以相应阅读以下Trigger相关文章: 1.https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigge ...
- salesforce零基础学习(九十六)Platform Event浅谈
本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...
- salesforce零基础学习(一百零五)Change Data Capture
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...
- salesforce零基础学习(一百一十)list button实现的一些有趣事情
本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/docu ...
随机推荐
- UWP使用命名管道与桌面程序通信 (C#)
关于UWP的历史,其起源是Microsoft在Windows 8中引入的Metro apps.(后来又被称作Modern apps, Windows apps, Universal Windows A ...
- CSS基本语法(慕课网学习笔记)
CSS的声明,内外联样式以及CSS的优先级 css学习.html <!DOCTYPE html> <html lang="en"> <head> ...
- 解决移动端click事件300ms延迟的问题
方法1.部分浏览器的<meta>标签加上width=device-width就能解决. 方法2.引入fastclick.js库 <!DOCTYPE html> <html ...
- JavaScript——数组——slice方法
JavaScript--数组--slice方法 JavaScript中的slice方法类似于字符串的substring方法,作用是对数组进行截取. slice方法有两个参数,indexStart 和 ...
- Python - 面向对象编程 - super()
前置知识 继承的详解:https://www.cnblogs.com/poloyy/p/15216652.html 子类方法的重写:https://www.cnblogs.com/poloyy/p/1 ...
- 查看所有日志命令:journalctl
journalctl命令作用:实时查看所有日志(内核日志和应用日志) 语法格式: journalctl [参数] 常用参数:-k 查看内核日志-b 查看系统本次启动的日志-u 查看指定服务的日志-n ...
- 剑指offer计划9(动态规划中等版)---java
1.1.题目1 剑指 Offer 42. 连续子数组的最大和 1.2.解法 得到转移方程后,单次遍历. 当前面的连续子数组的和比较是否大于0,是则加起来, 若小于零,则当前的值就可当子数组的开头. 判 ...
- 20210821 打表,蛇,购物,ants
考场 T1 没看懂 T4 一眼回滚莫队,但忘记怎么写了,小慌 模拟 T1 题意的时候教练让 zsy 澄清了一下,确定了我不会做... T2 一看就是毒瘤题,T3 感觉比较可做 T4 确定了回滚的细节, ...
- 未能找到源类型“DbSet<T>”的查询模式的实现。未找到“Select”
使用EF6.0的模型优先模式进行开发,遇到了报错,如下图 后来发现是没引用using System.Linq; 引用后就不报错了
- TypeScript 中装饰器的理解?应用场景?
一.是什么 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上 是一种在不改变原类和使用继承的情况下,动态地扩展对象功能 同样的,本质也不是什么高大上的结构,就是一个普通的 ...