Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On
本篇参考:
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通常会经历以下的步骤:
- 用户尝试访问salesforce;
- Salesforce识别了这个SSO的请求并且生成了一个SAML请求;
- Salesforce重定向这个SAML请求到浏览器端;
- 浏览器重定向这个SAML请求到外部的identity provider;
- Identity provider验证了这个用户的身份并且将关于这个用户身份认证的SAML断言进行打包;
- Identity provider将SAML断言结果发送给salesforce;
- Salesforce验证断言是否正确;
- 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的更多相关文章
- Salesforce Admin篇(一)Duplicate Management
参考资料:https://help.salesforce.com/articleView?id=managing_duplicates_overview.htm Salesforce 很重要的一个平台 ...
- Salesforce Admin篇(三) Delegated Administrator
项目中,我们可能会遇见以下的场景. 1. HR 经理针对申请者和工作相关的表的app会经常需要修改布局查看需要的页面的字段: 2. 开发者将record type对应的picklist values等 ...
- Salesforce Admin篇(二) Report
针对salesforce系统也好,针对其他的平台系统也好,对于business user的需求以及疑问,数据往往决定了答案.业务人员提出了某些疑问,管理员需要根据需求的分析转换成数据的分析及过滤从而反 ...
- Salesforce 集成篇零基础学习(一)Connected App
本篇参考: https://zhuanlan.zhihu.com/p/89020647 https://trailhead.salesforce.com/content/learn/modules/c ...
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇四:关于OneNote入库处理以及审核
篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...
- 【SSRS】入门篇(四) -- 向报表添加数据
原文:[SSRS]入门篇(四) -- 向报表添加数据 定义好数据集后 [SSRS]入门篇(三) -- 为报表定义数据集 ,就可以开始设计报表了,将要显示在报表的字段.文本框.图像和其他项从工具箱拖放到 ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇四:配置Robbin负载均衡)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...
- Portswigger web security academy:OAth authentication vulnerable
Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...
随机推荐
- zoj 3261 Connections in Galaxy War(并查集逆向加边)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3261 题意:有很多颗星球,各自有武力值,星球间有一些联系通道,现 ...
- CF989B A Tide of Riverscape 思维 第七题
A Tide of Riverscape time limit per test 1 second memory limit per test 256 megabytes input standard ...
- box-sizing(CSS3)
CSS3新增了盒模型box-sizing,属性值有下面三个: content-box 默认值,让元素维持W3C的标准盒模型.元素的宽度/高度(width/height)= 元素内容框宽度/高度(con ...
- tomcat,nginx日志定时清理
1. Crontab定时任务 Crontab 基本语法 t1 t2 t3 t4 t5 program 其中 t1 是表示分钟,t2 表示小时,t3 表示一个月份中的第几日,t4 表示月份,t5 表示一 ...
- JavaScript数组和伪数组
伪数组和数组 记住一句话: 伪数组是一个Object,数组是Array. 对象和数组之间的关系 JavaScript的内置函数继承与 Object.prototype. 可以认为new Array() ...
- C++ 深入浅出工厂模式(初识篇)
初识工厂模式 我们先看工厂模式的介绍 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创 ...
- Apache RocketMQ 消息队列部署与可视化界面安装
一.介绍 Apache RocketMQ是一个分布式.队列模型的消息中间件,具有低延迟.高性能和高可靠.万亿级容量和灵活的可扩展性.核心组件由四部分组成:Name Servers,Brokers,Pr ...
- Android中px dpi dip density densityDpi 的相关说明
转自:http://www.cnblogs.com/wader2011/archive/2011/11/29/2267490.html 概念解释 名词 解释 Px (Pixel像素) 不同设备显示效果 ...
- 基于DevExpress的SpreadsheetControl实现对Excel的打开、预览、保存、另存为、打印(附源码下载)
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- ubuntu连接window系统
最后可以通过次命令挂载本地文件夹到远程电脑: rdesktop -a 24 -f -r disk:share-name=/home/lion/.m2/ 192.168.151.232