本篇参考:

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. cogs1709. [SPOJ 705] 不同的子串(后缀数组

    http://cogs.pro:8080/cogs/problem/problem.php?pid=vyziQkWaP 题意:给定一个字符串,计算其不同的子串个数. 思路:ans=总共子串个数-相同的 ...

  2. CountHunter 6101 最优贸易 强联通缩点

    题目传送门 题解:强连通锁点之后. 就成了一副单向图. 然后对于每个点 找到 后面合法的点的最大值就好了. 合法就是后面的那个点可以走到n号点. 也可以正向跑一遍dij 求出到这个点的最小花费. 然后 ...

  3. Codeforces 468 B Two Sets

    Two Sets 题意:就是将一对数放进setA, setB中, 如果放进setA的话要求满足 x与a-x都在这个集合里面, 如果放进setB中要求满足x与b-x都在这个集合中. 题解:我们将能放进B ...

  4. lightoj 1046 - Rider(bfs)

    A rider is a fantasy chess piece that can jump like a knight several times in a single move. A rider ...

  5. codeforces H. Queries for Number of Palindromes(区间dp)

    题目链接:http://codeforces.com/contest/245/problem/H 题意:给出一个字符串还有q个查询,输出每次查询区间内回文串的个数.例如aba->(aba,a,b ...

  6. 性能测试:通过设置注册表提高 P2P/IIS 并发数

    写在前面 在执行性能测试(如用 JMeter 直接压接口)的时候,有的时候并发数上不去.本机大面积出现 TCP 状态为 TIME_WAIT,除了放开 TCP 端口数和调整默认 TCP 释放时间外,另外 ...

  7. python每日经典算法题5(基础题)+1(中难题)

    现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...

  8. linux常用命令二

    linux常用命令一 常用指令 ls        显示文件或目录 -l           列出文件详细信息l(list) -a          列出当前目录下所有文件及目录,包括隐藏的a(all ...

  9. 关于格林尼治时间(GMT)和DateTime相互转换的分享

    普及一下什么是格林尼治时间? 世界时UT即格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式.以地球自转为基础的时间计量系统.地球自转的角度可用地方子午线相对于地球上的 ...

  10. 在JSP页面用EL表达式获取数据

    <h4>获取域对象中的值</h4><%    request.setAttribute("name", "射雕英雄传");     ...