单点登录 (SSO) 是一种身份验证过程,允许用户通过一次登录访问多个应用程序。这是通过一个中央身份验证服务器(身份提供商,简称 IdP)实现的,该服务器存储用户的凭据并针对每个应用程序进行验证。
在云时代,SSO 的概念并不新鲜。20 世纪 90 年代中后期,企业能够安全地连接其 PC、网络和服务器的本地身份解决方案是 SSO 技术的源头。大约在这个时候,公司开始使用专门的系统来处理用户 ID,例如轻量级目录访问协议 (LDAP) 和 Microsoft Active Directory (AD)。此后,他们使用本地 SSO 或 Web 访问管理 (WAM) 产品来保护访问。
SSO 游戏中有三个关键参与者:
- 身份提供商 (IdP):这是中央身份验证服务器。在这里您可以输入凭证并进行验证。可以将其视为高安全性建筑入口。
- 服务提供商 (SP):这些单独的应用程序依靠 SSO 进行用户登录。您的工作电子邮件、项目管理工具和 CRM 平台都可以是 SP。想象一下,它们是安全建筑内的独立办公室。
- SSO 服务器:这是 IdP 和 SP 之间的桥梁。它处理通信并在它们之间安全地传输身份验证令牌。可以将其视为连接各个办公室入口的安全走廊。
统一登录门面(或称统一认证门户)是 SSO 实现中的一个重要概念,它是一个集中的登录界面或入口,用户只需在此处进行一次登录,就可以获得对多个相关系统或产品的访问权限。统一登录门面大大简化了用户的操作,提高了工作效率和用户体验。
使用钉钉账户访问企业内部系统
假设一家大型企业采用了阿里巴巴旗下的钉钉(DingTalk)作为其内部协作和管理工具,并且企业内部还有多个其他系统,如 ERP 系统、CRM 系统和 HR 系统。通过钉钉的单点登录功能,员工只需一次登录即可访问所有相关系统。
钉钉账户访问企业内部系统流程
- 用户请求访问 ERP 系统:员工在浏览器中打开 ERP 系统并选择使用钉钉账号登录。
- 重定向到 IdP:ERP 系统将员工重定向到钉钉登录页面。
- 提供登录页面:员工在钉钉登录页面输入自己的账号和密码。
- 输入凭证:员工输入他们的钉钉凭证。
- SSO 服务器验证:钉钉将身份验证信息发送到 SSO 授权服务器。
- IdP 处的身份验证:如果凭证有效,授权服务器将返回身份验证令牌(SAML)。
- 授予访问权限:钉钉将身份验证令牌发送到 ERP 系统。
- 验证令牌:ERP 系统验证该令牌,并授予员工访问权限。
钉钉账户访问企业内部系统 PUML 图
- 改善用户体验:用户不需要记住多个用户名和密码。
- 提高安全性:用户不太可能在应用程序之间重复使用密码。
- 简化用户访问审计:确保适当的个人有权访问资源和敏感数据可能具有挑战性。SSO 解决方案可以根据用户的角色、部门和资历级别配置用户访问权限。
- 单点故障:最明显的缺点之一是 SSO 会产生单点故障。如果 SSO 系统受到威胁,攻击者可以访问所有连接的应用程序和服务。
- 安全风险:如果凭证被泄露,所有连接的应用程序的安全都可能面临风险。
- 应用程序兼容性:有时,应用程序配置不正确,无法与 SSO 系统配合使用。使用 Kerberos、OAuth 或 SAML 的应用程序提供商应该能够执行真正的 SSO。否则,您的 SSO 解决方案无法提供完整的覆盖范围,并且用户必须记住另一个密码。
要使用 SSO,您应该了解不同的标准和协议。一些常见的协议类型包括:
SAML(Security Assertion Markup Language)
SAML 是一种基于XML的开源标准,用于在身份提供商(IdP)和服务提供商(SP)之间交换认证和授权数据。SAML 主要用于企业级应用程序和服务。
SAML 工作流程
- 用户请求访问服务提供商 (SP) 的资源。
- 服务提供商将用户重定向到身份提供商 (IdP)。
- 用户在身份提供商处进行身份验证。
- 身份提供商生成 SAML 响应,并将其发送回服务提供商。
- 服务提供商验证 SAML 响应,并授予用户访问权限。
SAML PUML 图
OAuth 2.0
OAuth 2.0 是一种开放授权协议,它允许第三方应用程序在资源所有者授权下获取对资源服务器上资源的有限访问权限。虽然 OAuth 2.0 本身不是一个单点登录协议,但它可以与 OpenID Connect 一起用于实现单点登录。
OAuth 2.0 工作流程
- 用户请求访问客户端应用程序。
- 客户端应用程序将用户重定向到授权服务器。
- 用户在授权服务器处进行身份验证并授权客户端应用程序访问其资源。
- 授权服务器生成授权码,并将其发送回客户端应用程序。
- 客户端应用程序使用授权码向授权服务器请求访问令牌。
- 授权服务器返回访问令牌。
- 客户端应用程序使用访问令牌请求资源服务器上的资源。
OAuth 2.0 PUML 图
OpenID Connect (OIDC)
OpenID Connect 是一种基于 OAuth 2.0 的身份验证协议,它在 OAuth 2.0 的基础上增加了一层身份验证,用于验证用户的身份,从而实现单点登录功能。
OpenID Connect 工作流程
- 用户请求访问客户端应用程序。
- 客户端应用程序将用户重定向到身份提供商(IdP)。
- 用户在身份提供商处进行身份验证并授权客户端应用程序。
- 身份提供商生成 ID Token 和访问令牌,并将其发送回客户端应用程序。
- 客户端应用程序使用 ID Token 验证用户身份,并使用访问令牌请求资源服务器上的资源。
OpenID Connect PUML 图
1. 企业内部系统集成:
- 大型企业内部往往有多个系统,如ERP、CRM、HR系统等,通过SSO,可以让员工只需一次登录即可访问所有相关系统,提高工作效率。
2. 云服务集成:
- 企业越来越多地采用各种云服务,如钉钉、企业微信、阿里云等,通过SSO,可以简化员工对这些云服务的访问管理,并提高安全性。
3. 电子商务平台:
- 对于拥有多个子品牌或子网站的大型电子商务平台,通过SSO,可以让消费者只需一次登录即可在不同子网站间自由购物,提高用户体验。
4. 教育系统集成:
- 在教育领域,通过SSO,可以让学生和教师只需一次登录即可访问学校管理系统、在线学习平台、图书馆系统等,提高教学效率。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/5118.html