本篇参考:

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. codeforce#483div2D-XOR-pyramid+DP

    题意:求给定区间中最大的连续异或和: 思路:DP的思想,先dp求出每个区间的异或和,再dp更新成当前这个dp[i][j]和dp[i-1][j].dp[i-1][j+1]中的最大值: 这样可以保证是同一 ...

  2. POJ 3694 Network 无向图双联通+LCA

    一开始题目没看清楚,以为是增加那条边后还有多少桥,所以就当做是无向图tarjan缩点后建树,然后求u,v的最近公共祖先,一直wa. 后来再看题目后才发现边放上去后不会拿下来了,即增加i条边后桥的数量. ...

  3. CodeForces 85D Sum of Medians Splay | 线段树

    Sum of Medians 题解: 对于这个题目,先想到是建立5棵Splay,然后每次更新把后面一段区间的树切下来,然后再转圈圈把切下来的树和别的树合并. 但是感觉写起来太麻烦就放弃了. 建立5棵线 ...

  4. hdu 1078 FatMouse and Cheese(简单记忆化搜索)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 一道 ...

  5. 题解 bzoj 2151 种树

    题意 传送门 手写堆大法好啊,题解貌似没有结构体堆的做法,思路有些像配对堆,关于配对堆请自行百度,因为本蒟蒻不会.. 以下是蒟蒻的做法:建立一个大根堆a维护最大价值里面存入它的编号以及价值.听说配对堆 ...

  6. 关于C语言\b \t \n及转义序列的理解

    转义序列 说明 \b 后退一格(Backspace) \t 水平制表(Tab=4个空格) \v 垂直制表 \r 回车(Enter) \f 换页 \a 发出鸣响 \n 换行 \" 输出/输入双 ...

  7. try(){}自动释放资源,AutoCloseable

    我们在使用资源的时候,必须关闭资源,比如使用jdbc连接或者inputStream的时候,必须在finally中将资源关闭.然而有的时候我们会忘记关闭资源.那么有没有更好的方法呢? SqlSessio ...

  8. [0]尝试用Unity3d制作一个王者荣耀(持续更新)->游戏规划

    太得闲了于是想写个农药,虽然可能会失败但是还是要试一试. 因为是自学的不是Unity专业的可能表达语言会有些不标准!望见谅! 结构: 以组件式(比如说摇杆控制和玩家部分的编写是分离的,可以自由拼装)作 ...

  9. 字符串之————三向字符串快速排序(Quick3string)

    上一篇介绍了字符串的两种经典排序方法(LSD MSD): https://www.cnblogs.com/Unicron/p/11531111.html 下面我们来介绍一种通用的字符串排序方法——三向 ...

  10. [LeetCode]Unique Binary Search TreesII

    题目:Unique Binary Search TreesII 如果要列出所有可能的二叉搜索树,可以在上面的思路上进一步. f(n) = f(0)*f(n-1) + f(1)*f(n-2) + ... ...