当前位置: 首页 > news >正文

网络安全 | 什么是单点登录SSO?

SSO

关注WX:CodingTechWork

SSO-概念

  1. 单点登录 (SSO) 是一种身份认证方法,用户一次可通过一组登录凭证登入会话,在该次会话期间无需再次登录,即可安全访问多个相关的应用和服务。
  2. SSO 通常用于管理一些环境中的身份验证,包括企业内部网或外部网、学生门户网站、公有云服务以及用户需要使用多个应用以完成工作的其他环境。
  3. SSO可用于面向客户的网站和应用(如银行和电子商务网站),将第三方供应商提供的应用打造成无缝、不间断的用户体验。

SSO-优势

  1. 便捷登录:SSO 显然可以为用户节省时间,带来便利。 以企业用户为例:使用 SSO,他们通常只需登录一次公司内部网或外部网,之后全天都可以访问需要使用的每个应用,无需每天在多个应用中进行多次登录。
  2. 安全态势:通过大幅减少用户需要记住的密码数量和管理员需要管理的用户帐户数,SSO 还可以增强组织的安全态势。
  3. 强密码:用一个高强度密码代替多次填写造成的密码疲劳。 需要管理大量密码的用户经常会为每个应用设定相同的安全性弱的短密码,或者只是稍有不同的密码。 黑客破解其中一个密码之后,就可以轻松访问多个应用。 SSO 通常可以将数十个长度短、安全性弱的密码缩减为一个复杂且安全性强的长密码,这样用户更容易记住,黑客更难以破解。
  4. 减少密码存储:帮助预防不安全的密码存储习惯。 SSO 可以减少或消除对密码管理器、在电子表格中存储密码、使用便笺等其他记忆辅助工具来记录密码的需求,这些方式都更容易导致密码被其他人窃取或偶然看到。
  5. 减少帮助电话:大幅减少帮助中心的电话。 行业分析组织 Gartner 称,20% 到 50% 的 IT 帮助中心的来电都与忘记密码或密码重置有关。 大多数 SSO 解决方案可以让用户在帮助中心协助下轻松地自行重置密码。
  6. 降低攻击概率:降低被黑客攻击的概率,密码更少意味着潜在攻击媒介更少。
  7. 简化账户管理:简化用户帐户的管理、配置和停用。借助 SSO,管理员可以更集中地控制身份验证要求和访问权限。 在用户离开组织时,管理员删除权限以及停用用户帐户的步骤减少。
  8. 简化监管合规:帮助简化监管合规过程。 SSO 有助于符合或更容易符合一些法规要求:关于个人身份信息保护 (PII) 和数据访问控制以及某些法规(如 HIPAA)中有关会话超时的特定要求。

SSO-原理

介绍

  1. 单点登录基于一组有关联的、可信的应用、网站和服务(称为 服务提供商 与 SSO 解决方案(称为 身份提供商)之间的数字信任关系。 SSO 解决方案通常属于更大范围的 IAM(身份和访问管理) 解决方案。
  2. 在特定时间段内空闲着的用户在尝试访问其他应用时可能需要登录。 或者,如果经过身份验证的用户尝试使用处理特别敏感信息的应用或服务,系统可能会提示用户使用其他身份验证因素进行验证,例如向用户的手机或电子邮件发送代码

流程

  1. 用户使用 SSO 登录凭证登录到一个可信的应用或连接所有可信应用的中央门户网站(如员工门户网站或学生网站)。
  2. 用户成功通过身份验证后,SSO 解决方案将生成一个会话身份验证令牌,其中包含关于用户身份(用户名、电子邮件地址等)的特定信息。该令牌会存储在用户的 Web 浏览器或者 SSO 或 IAM 服务器上。
  3. 用户尝试访问其他可信的应用时,该应用会向 SSO 或 IAM 服务器核实,确定用户是否通过会话身份验证。若通过,SSO 解决方案会使用由数字证书签署的身份验证令牌来验证用户,并为用户提供该应用的访问权限。若未通过,则会提示用户重新输入登录凭证。

SSO-技术

SAML/SAML 2.0

  1. SAML(安全性断言标记语言)是使用时间最长的开放标准协议,用于在身份提供程序和多个服务提供程序之间交换加密的身份验证和授权数据。
  2. SAML 比其他协议更能控制安全性,因此通常用于在企业或政府应用域内部和二者之间实施 SSO。

OAuth/OAuth 2.0

  1. OAuth/OAuth 2.0(开放授权)是一个开放的标准协议,用于交换应用之间的授权数据,而不会暴露用户的密码。
  2. OAuth支持使用单点登录来简化通常需要分别登录的应用之间的交互。

OpenID Connect(OIDC)

  1. OICD 也是一个开放标准协议,使用 REST API 和 JSON 身份验证令牌,允许网站或应用通过另一个服务提供商对用户进行身份验证,以此授予用户访问权限。
  2. OICD 位于 OAuth 上层,主要用于实现对第三方应用、购物车等的社交登录。 OAuth/OIDC 是一种轻量级的实现,通常由 SAML 用于跨 SaaS(软件即服务)和云应用、移动应用和物联网 (IoT) 设备实施 SSO。

LDAP

  1. LDAP(轻量级目录访问协议)定义一个用于存储和更新用户凭证的目录,以及一个针对该目录对用户进行身份验证的过程。
  2. LDAP 于 1993 年推出,LDAP 支持对目录访问的细粒度控制,如hadoop集群中kerberos认证,可以针对hdfs等组件进行细粒度管控,如上传文件、创建目录等权限的控制。

ADFS

  1. ADFS(Active Directory 联合服务)在 Microsoft Windows 服务器上运行,以启用本地和外部应用与服务的联合身份管理(包括单点登录)。
  2. ADFS 使用 Active Directory 域服务 (ADDS) 来提供身份。

SSO-风险

  1. SSO 的主要风险:如果用户的凭证泄露,这些凭证就可以为攻击者提供网络上所有或大部分应用和资源的访问权限。
  2. 预防措施:要求用户创建复杂的长密码,谨慎加密并保护存储位置,或实施带有多因子身份验证 (MFA) 的 SSO,或用户提供除密码之外的至少一个身份验证因素,例如,发送到手机的代码、指纹或身份证件。

SSO-分类

简单/纯SSO

  单点登录和一组提供对多个相关应用的会话访问权限的用户凭证

自适应SSO

  需要在一开始登录时输入用户名和密码,但随后如出现其他风险,例如,当用户从新设备登录或尝试访问特别敏感的数据或功能时,就需要额外的身份验证因子或重新登录。

联合SSO

  1. 更准确的名称是联合身份管理 (FIM),是 SSO 的扩展。
  2. SSO 基于单个组织域内应用之间的数字信任关系,而 FIM 会将这种关系扩展到组织外部的可信第三方、供应商和其他服务提供商。 例如,FIM 允许已登录的员工访问第三方 Web 应用程序(如 Slack 或 WebEx),无需额外登录,或者仅使用用户名来登录。

社交登录SSO

  1. 允许用户使用他们访问流行社交媒体网站的凭证来访问第三方应用。
  2. 社交登录简化了用户的生活。对于第三方应用提供商,它可以阻止不良行为(例如,错误登录和购物车遗弃),并为改进其应用提供有价值的信息。

SSO & 零信任方法

  1. “零信任”概念:采取“从不信任,始终验证”的安全方法:任何用户、应用或设备,无论是在网络外部,还是已经通过身份验证并位于网络内部,都必须在访问所需的下一个网络资源之前验证其身份。
  2. “零信任”影响:随着网络变得更加分散,跨越的本地基础架构以及私有云和公有云数量更多,零信任方法对于防止渗透网络的威胁获得更多访问权限并造成最大的损害至关重要。
  3. SSO和零信任关系:SSO 被广泛视为实施零信任方法的基础技术,尤其是作为 IAM 解决方案一部分的 SSO。零信任的基本挑战是创建一个安全架构,打击渗透网络的攻击者,而不会阻碍获得授权的最终用户在网络中自由行动并完成工作或业务。与多因子身份验证、访问和权限控制、网络微分段等技术和最佳实践相结合后,SSO 可以帮助组织实现这种平衡。

参考:https://developer.ibm.com/

相关文章:

  • 业务网关的设计与实践
  • 配置 施耐德 modbusTCP 分布式IO子站 RPA0100
  • HTML中js简单实现石头剪刀布游戏
  • [技术闲聊]我对电路设计的理解(二)-突飞猛进的第一年
  • 『python爬虫』巨量http代理使用 每天白嫖1000ip(保姆级图文)
  • 接口测试用例设计
  • 前端路径问题总结
  • 物联网实战--入门篇之(六)嵌入式-WIFI驱动(ESP8266)
  • 2024-04-04 问AI: 在深度学习中,微调是什么?
  • 大数据实验三-HBase编程实践
  • intellij idea 使用git ,快速合并冲突
  • 实现 select 中嵌套 tree 外加搜索
  • ROS 2边学边练(12)-- 创建一个工作空间
  • 提高空调压缩机能效的通用方法
  • 957: 逆置单链表
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • angular学习第一篇-----环境搭建
  • Create React App 使用
  • echarts的各种常用效果展示
  • HTTP中的ETag在移动客户端的应用
  • Java 23种设计模式 之单例模式 7种实现方式
  • Python_网络编程
  • SOFAMosn配置模型
  • Webpack 4x 之路 ( 四 )
  • 记一次和乔布斯合作最难忘的经历
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 我看到的前端
  • 主流的CSS水平和垂直居中技术大全
  • 从如何停掉 Promise 链说起
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $(function(){})与(function($){....})(jQuery)的区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (4) PIVOT 和 UPIVOT 的使用
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二开)Flink 修改源码拓展 SQL 语法
  • (分布式缓存)Redis持久化
  • (十)c52学习之旅-定时器实验
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 调用php,php 调用.net com组件 --
  • .NET 反射的使用
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET业务框架的构建
  • /etc/shadow字段详解
  • @31省区市高考时间表来了,祝考试成功
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [1] 平面(Plane)图形的生成算法