本篇参考: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的实施根据官方建议可以采用大概三种方式:

  1. Salesforce Authenticator:此种方式的实现步骤和2FA极其相似,而且是免费的。所以此种MFA方式是性价比最高的,而且Salesforce Authenticator如果出现了问题,可以随时给salesforce提紧急case帮助解决。
  2. 第三方身份验证器:官方也例举了一些,这些需要考虑一下费用,以及你的公司的使用用户所在地等等。如果针对国内客户,需要考虑认证方式是否可以访问以及是否稳定。
  3. 密钥方式

针对文本验证,邮件等方式验证,不计入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的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. salesforce 零基础学习(六十八)http callout test class写法

    此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...

  3. salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及去重实现

    项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的au ...

  4. salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见

    项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随 ...

  5. salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值

    注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-fr ...

  6. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

    在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...

  7. 【转】【Salesforce】salesforce 零基础学习(十七)Trigger用法

    看本篇之前可以相应阅读以下Trigger相关文章: 1.https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigge ...

  8. salesforce零基础学习(九十六)Platform Event浅谈

    本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...

  9. salesforce零基础学习(一百零五)Change Data Capture

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...

  10. salesforce零基础学习(一百一十)list button实现的一些有趣事情

    本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/docu ...

随机推荐

  1. 菜鸟攻略–C语言多文件编程初探(二):使用 gcc 手动编译多文件 C 程序

    step1:下载安装 Dev-C++ 已经安装了 Dev-C++ 或系统中的可以跳过这步.去官网下载 Dev-C++.我昨天下载,发现有点慢,所以我把安装文件放到百度网盘了,供大家下载,下载链接为:h ...

  2. jquery validate 验证插件 解决多个相同的Name 只验证第一个的方案

    方案一:如果 项目里不是只是个别页面 有多个name 验证, 那么利用 prototype 来写,把这段代码加在你所要使用多个name的页面  的js初始化里 即可 if ($.validator) ...

  3. springcloud <zuul2.0静态配置>

    server: port: 9006 spring: application: name: cloud-zuul-wangbiao # zipkin: # base-url: http://local ...

  4. jmeter实际场景应用之测试上传excel文件

    日常工作上测试的时候,会有一些场景是导入/上传文件.我们系统多是excel文件,这里就用excel文件为例,详述一下此次测试遇到的坑.最终结果是成功的,请看到最后! 1.获取接口的一些参数信息 先按F ...

  5. 在python3.6环境下使用cxfreeze打包程序

    在python3.6环境下使用cxfreeze打包程序 环境:python3.6 打包程序:aliens_invasion 原本想使用pyintaller 进行打包,使用pip的安装过程也没有问题,打 ...

  6. Python之psutil-进程管理

    在给PC端应用做自动化测试或者监测应用性能时,不可避免的会与进程管理打交道,python中的psutil模块能够帮助我们处理进程,它主要用于系统监视.分析和限制进程资源以及管理正在运行的进程.一起来了 ...

  7. 《DotNet Web应用单文件部署系列》二、打包wwwroot文件夹

    在这篇文章中,你将学到web缓存规则,文件传输中用到的压缩格式,以及如何手写代码响应请求.最后还能学到快速打包wwwroot文件夹组件用法. 一.了解Response Header 当第一次加载程序时 ...

  8. springcloud3(五) spring cloud gateway动态路由的四类实现方式

    写这篇博客主要是为了汇总下动态路由的多种实现方式,没有好坏之分,任何的方案都是依赖业务场景需求的,现在网上实现方式主要有: 基于Nacos, 基于数据库(PosgreSQL/Redis), 基于Mem ...

  9. Golang入门学习(五):异常处理

    文章目录 2.5 错误处理机制 2.5.1 基本说明 2.5.2 入门示例 2.5.3 自定义错误 2.5 错误处理机制 2.5.1 基本说明 Go语言追求简洁优雅,因此并不支持传统的try-catc ...

  10. 即时通讯网-TCPIP族关系图