本篇参考:

https://c1.sfdcstatic.com/content/dam/web/en_us/www/documents/white-papers/2fa-admin-rollout-guide.pdf

https://blog.bessereau.eu/assets/pdfs/salesforce_single_sign_on.pdf

https://blog.bessereau.eu/assets/pdfs/salesforce_security_impl_guide.pdf

作为salesforce管理员,在针对确保用户安全以及用户快速登陆往往要多加考虑以及划清界限。本篇主要介绍两点:

1. 保障用户安全的不止账号和密码,还可以通过其他的方式去增强安全性,比如 two-factor authentication,缩写为2FA.

2. 单点登录保证用户可以快速登陆以及减少用户需要记住多个系统的账号密码。

一. Two-Factor Authentication(2FA)

我们在支付宝没有普及以前,如果网上购物,需要用到网银进行支付,即提供了银行卡账号密码以后,还要有一个一次性的数字串去完成交付。保证别人了解你账号密码的情况下依然没法直接盗取或者盗刷你的钱财。 2FA 有着类似的功能,即当你输入账号密码以后,还需要一个认证的标识去决定你最终是否可以最终登陆。这个标识掌握在你的手机中,当有登陆操作,你可以随时清楚是否是你的登陆,如果不是,拒绝掉,增加了安全性。

使用2FA 按照以下步骤走即可:

1. 设置 sesion security level

Setup 中搜索 Session Settings,在Session Security Levels的下面,将two-factor authentication放在右侧区域。

2. 创建 permission set配置2FA

输入label创建 permission set保存以后,在system 设置中,勾选‘Two-Factor Authentication for User Interface Logins’选项

3. 选择需要配置2FA的用户进行assign操作。

4. 下载salesforce authenticator app. 苹果手机去app store , android 手机去google play, 因为本人手机没有google play环境,所以可能部分功能无法使用。

点击添加账号,会有两个单词,在permission set中配置的账号登陆salesforce以后会跳转到中间页,输入内容以后便和salesforce authenticator进行了绑定,以后登陆以后都会在手机中进行授权操作。

绑定操作以后,如何进行解绑操作? 我们第一想法是将此user从permission set中移除。但是此账号已经和salesforce authenticator绑定,单纯的移除permission set无济于事。正确的操作为需要进入这个user,详情页中有一项App Registration: Salesforce Authenticator,点击 disconnect即可。

二. Single Sign On

Single Sign On 对于我们来说并不陌生,我们在的公司可能有多个系统,不同系统之间需要记住不同的账号增加了员工的麻烦量,忘记密码也会增加管理员的工作。对于多个系统情况下,使用单点登录有太多的优势。

使用Single Sign On通常会经历以下的步骤:

  1. 用户尝试访问salesforce;
  2. Salesforce识别了这个SSO的请求并且生成了一个SAML请求;
  3. Salesforce重定向这个SAML请求到浏览器端;
  4. 浏览器重定向这个SAML请求到外部的identity provider;
  5. Identity provider验证了这个用户的身份并且将关于这个用户身份认证的SAML断言进行打包;
  6. Identity provider将SAML断言结果发送给salesforce;
  7. Salesforce验证断言是否正确;
  8. user可以正常的登陆以及访问Salesforce。

这里涉及到了几个名词。

SSO是Single Sign On的缩写,意为单点登录。

SAML是Salesforce单点登录时使用的协议,全称为Security Assertion Markup Language。这里再引申两个概念。Service Provider以及Identity Provider。Identity Provider用于对用户进行身份认证的,而 Service Provider用来请求用户身份认证是否通过的。SAML工作的原理为当一个用户要访问salesforce,Service Provider会向Identity Provider发出请求来验证当前用户是否通过的,Identity Provider再进行查询数据库等操作以后返回一个断言的response来决定是否有权限访问。这里对SAML有一个大概的描述方便了解,感兴趣的可以自行查看文档。

我们继续看下面的图片,通过单点登陆授权以后我们可以通过Connected App访问外部的Service,包括谷歌,salesforce等。这里详细介绍两个概念,Identity Provider以及Servide Provider。针对Google / Salesforce 等服务,我们可以理解成Service Provider, 中间的Salesforce可以理解成 Identity Provider。当我们得到了Identity Provider的授权以后,我们便可以直接访问Service Provider配置的对应的External Service,无需再进行External Service的登陆操作。

下面通过一个demo讲述以下Salesforce 2 Salesforce Single Sign-On的实例。

1. Enable My Domain:针对Salesforce的两个org都要启用自定义的domain,启用方法可以查看https://help.salesforce.com/articleView?id=domain_name_overview.htm&type=5

此篇中本人的两个org的地址分别为:

https://zero-zhang-dev-ed.lightning.force.com

https://zhangyueqi-3-dev-ed.lightning.force.com

我们使用上面的作为 Identity Provider,下面的作为Service Provider。

2.  获取 Identity Provider的信息。我们在Identity Provider环境搜索identity provider可以看到以下的内容,包括Issuer,Salesforce Identity等信息。如果当前没有启用我们点击Enable即可。这里我们download下来Certificate 以及 metadata。

 3. 配置Service Provide Single Sign-On的信息:在 SetUp出搜索 single sign on 点击后点击New From Metadata,文件选择我们在Identity Provider环境中download下来的metadata。

4. 其他的配置项均保留,针对 Identity Provider Certificate选择上面Identity Providerdownload下来的certificate,SAML Identity Type选择 Federation项后保存。

5. 在Servide Provider中,Setup搜索 my domain 将配置的Authentication Service放出来。

6. 在 Identity Provider环境配置Connected App. Lightning 环境下SetUp中搜索 App Manager后点击New Connected App按钮。Connected App Name 我们这里命名为Single Sign On Connected App,名字可以任意起, 勾选Enable SAML以后,配置 Entity Id项以及ACS URL。Entity Id 对应 Service Provider中的Single Sign-On配置的Entity Id;ACS URL取得是 Service Provider中的EndPoint区域的Login URL。Subject Type选择 Federation Id后保存。

7. 保存后的Identity Provider的 Connected App点击Manage后选择 Manage Profiles 或者 Manage Permission Sets来设置哪些人可以进行单点登录设置。

至此我们便已经配置完 Salesforce 2 Salesforce Single Sign-On 功能。下面进行测试。

1. 我们在Identity Provider环境的user中配置 Federation Id为00000001,此账号 Profile为 System Administrator,在我们上面的配置的Profile中。

2. 我们在 Service Provider中配置账号同样Federation ID为00000001.这里需要注意的是 Federation ID在同一个系统中必须是唯一的,在不同的系统中如果需要SSO,需要配置相同的值。

3. 两个账号均退出后,登陆 Identity Provider环境,登陆以后。打开浏览器输入 Service Provider的domain后,选择下方的登陆方式,点击以后便完成了单点登录。

总结: 篇中针对 Admin的基础知识讲解了一下 Two-Factor以及 Salesforce-Salesforce Single Sign-On的配置,很多细节知识没有涉及到,感兴趣的自行查看文档进行深入学习。篇中有错误的地方欢迎指出,有不懂的欢迎提问,感兴趣的可以玩一下 Salesforce 2 Community的SSO配置。

Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On的更多相关文章

  1. Salesforce Admin篇(一)Duplicate Management

    参考资料:https://help.salesforce.com/articleView?id=managing_duplicates_overview.htm Salesforce 很重要的一个平台 ...

  2. Salesforce Admin篇(三) Delegated Administrator

    项目中,我们可能会遇见以下的场景. 1. HR 经理针对申请者和工作相关的表的app会经常需要修改布局查看需要的页面的字段: 2. 开发者将record type对应的picklist values等 ...

  3. Salesforce Admin篇(二) Report

    针对salesforce系统也好,针对其他的平台系统也好,对于business user的需求以及疑问,数据往往决定了答案.业务人员提出了某些疑问,管理员需要根据需求的分析转换成数据的分析及过滤从而反 ...

  4. Salesforce 集成篇零基础学习(一)Connected App

    本篇参考: https://zhuanlan.zhihu.com/p/89020647 https://trailhead.salesforce.com/content/learn/modules/c ...

  5. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇四:关于OneNote入库处理以及审核

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  6. 【SSRS】入门篇(四) -- 向报表添加数据

    原文:[SSRS]入门篇(四) -- 向报表添加数据 定义好数据集后 [SSRS]入门篇(三) -- 为报表定义数据集 ,就可以开始设计报表了,将要显示在报表的字段.文本框.图像和其他项从工具箱拖放到 ...

  7. FPGA基础入门篇(四) 边沿检测电路

    FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...

  8. 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇四:配置Robbin负载均衡)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...

  9. Portswigger web security academy:OAth authentication vulnerable

    Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...

随机推荐

  1. Luogu-P1027 Car的旅行路线 已知三点确定矩形 + 最短路

    传送门:https://www.luogu.org/problemnew/show/P1027 题意: 图中有n个城市,每个城市有4个机场在矩形的四个顶点上.一个城市间的机场可以通过高铁通达,不同城市 ...

  2. HDU-3695 Computer Virus on Planet Pandora

    HDU-3695 Computer Virus on Planet Pandora 题意:电脑中病毒了, 现在n钟病毒指令, 然后有一个电脑指令, 看一下这个电脑指令中了几个病毒, 如果电脑种了某一个 ...

  3. Codeforces 935 C Fifa and Fafa

    935 C 题意:Fifa想用wifi下载足球游戏, 但是Fafa是个流浪狂魔, 所以Fifa想让他的wifi在公寓里尽量覆盖最大的面积,并且不覆盖到Fafa和公寓外的人,fafa的坐标可以在公寓外. ...

  4. codeforces 807 D. Dynamic Problem Scoring(贪心+思维)

    题目链接:http://codeforces.com/contest/807/problem/D 题意:对于动态计分的 Codeforces Round ,已知每题的 score 是根据 Round ...

  5. LeetCode380 常数时间插入、删除和获取随机元素

    LeetCode380 常数时间插入.删除和获取随机元素 题目要求 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构. insert(val):当元素 val 不存在时,向集合中插 ...

  6. 【Redis】SpringBoot整合Redis

    一.Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  7. javascript实现二叉搜索树

    在使用javascript实现基本的数据结构中,练习了好几周,对基本的数据结构如 栈.队列.链表.集合.哈希表.树.图等内容进行了总结并且写了笔记和代码. 在 github中可以看到  点击查看,可以 ...

  8. Java,Python,前端,Linux,公众号等5T编程资源整理免费下载

    场景 我的CSDN: https://blog.csdn.net/BADAO_LIUMANG_QIZHI 实现 马士兵Java学习视频 方立勋JavaWeb 尚硅谷Python核心基础 数据分析 机器 ...

  9. Java线程常见面试题

    v 多线程实现手段: (1).继承Thread类 (2)实现Runable接口 (3)使用线程池 v 线程控制在那个包:java.util.concurrent. (1)提供了线程的运行.(2)线程池 ...

  10. charles 发布Glist

    本文参考:charles 发布Glist Publish Gist /发布代码段 选中某个文件,点击Publish Gist,如果你没有github,这个文件将被匿名发布,您也就无法删除它: 当然你可 ...