本篇参考:

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. HDU-10240Max Sum Plus Plus+动态规划+滚动数组

    Max Sum Plus Plus 题意:题意理解了老半天,这里是说在给定数列中,取m组子数列,不能有重复,使得这些子序列的和最大: 就比如m=2时候,1 /2/-4/5/6.可以不用拿-4的意思: ...

  2. 工程点点app爬虫和sign算法破解

    这世界真的什么人都有,哎,继续分析. 通过对工程点点的逆向和抓包分析,发现工程点点需要x-sign和token验证. this.b.a(aVar.b("Accept", " ...

  3. Hexo博客Next v7.X 主题升级,美化警示录

    本文转载于:Hexo博客Next v7.X 主题升级,美化警示录丨奥怪的小栈 前言 经历了好几天(懒癌晚期懒得数了)的与主题升级斗争后,我终于完成基本上完成了next主题的升级!升到了V7.3!哈哈哈 ...

  4. 多级树的深度遍历与广度遍历(Java实现)

    目录 多级树的深度遍历与广度遍历 节点模型 深度优先遍历 广度优先遍历 多级树的深度遍历与广度遍历 深度优先遍历与广度优先遍历其实是属于图算法的一种,多级树可以看做是一种特殊的图,所以多级数的深/广遍 ...

  5. webpack多页应用架构系列(一):一步一步解决架构痛点

    这系列文章讲什么? 前些时间,写过一个项目,前后端分离,没有借助任何框架,项目页面特别的多,页面都是html直接写的,许多公共html,写了好多处,有一个地方需要改就得改好多地方,js也是随意写,每个 ...

  6. 第12讲-Java中的IO操作及对象的序列化与反序列化

    1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1  io操作 1.2.2  对象的序列化与反序列化 2.具体内容 2.1.Java IO 2.1.1.什么是IO IO其实就是输入.输出 I ...

  7. CenTOS7使用ACL控制目录权限,只给某个用户访问特定目录

    前言 Linux 基本的权限控制仅可以对所属用户.所属组.其他用户进行的权限控制,而不能精确地控制每个用户的权限.ACL 规则就是用来解决这个问题的. 使用 ACL 规则,我们可以针对单一账户设置文件 ...

  8. Loadrunner 11 的安装

    安装包可以直接在我的百度网盘下载,这里用的是LR11的版本.电脑系统是win7 链接: https://pan.baidu.com/s/1OApfUemG3oVjLUE79qaikw 提取码: 7n3 ...

  9. android 解决 多品牌手机拍照问题,尤其是小米手机

    先上个图吧 .点击头像弹出下面对话框,然后直接上代码. 头像是自定义控件实现的圆形头像,当然就目前而言 想要实现 圆形头像的资料太多了,随便找个就行 <com.kuibu.jucai.widge ...

  10. StateListDrawable资源的使用

    StateListDrawable用于组织多个Drawable对象,当使用StateListDrawable作为目标组件的 背景和前景图片时,StateListDrawable对象所显示的Drawab ...