《单点登录》

1. 介绍

单点登录(SSO),是一种身份验证和授权机制,允许用户在一次登录之后访问多个相关系统(相互信任)的应用,而无需再次提供凭证,是比较流行的企业业务整合的解决方案之一。

2. 单点登录的流程

2.1. 身份认证中心(IdP)

  1. 身份认证中心——需要选择一个可靠、安全的身份认证中心作为单点登录的核心组件,常见有OAuth 2.0、OpenID协议提供者,如OKta、Auth0、Keycloak等
  2. 用户和身份验证——需要包含用户的注册、登录、身份验证流程。可以通过集成现有的身份提供者(LDAP、Active Directory)或者用户自建的数据库来实现
  3. 令牌生成和验证——IdP生成的令牌可以是基于标准的WT格式,其中包含用户信息、权限和访问令牌,子应用需要验证令牌的合法性、并防止令牌被篡改

2.2. 子应用

客户端集成Idp——子应用需要集成与身份认证中心的通信,方便处理重定向、获取用户信息和验证令牌

单点注销——用户在任一应用注销后自动注销其他应用的会话。子应用点击注销需要和IdP通信,使IdP对相关令牌进行管理

3. 实现形式

  1. 基于cookie和跨域策略

通过在域名下使用相同的cookie实现单点登录,需要匹配合适的跨域策略来允许子应用访问cookie。

  • 优势——简单、快速实现,浏览器中设置cookie
  • 劣势——存在跨域问题,需要设置合适的跨域策略,cookie存在安全风险

  1. 基于Token的认证

使用JWT等令牌机制进行单点登录,将令牌存储在本地存储或者会话存储中,子应用通过读取读取令牌验证用户信息。

  • 优势——无跨域问题,前端可控性比较高,可以实现自由存储和管理令牌
  • 劣势——需要处理令牌的安全性,定期刷新令牌,会话管理需要前端实现

  1. 使用OAuth 2.0和 OpenID Connect

使用OAuth 2.0 和OpenID Connect协议,通过中央身份认证中心实现单点登录

  • 优势——标准化协议、可以使用现有的第三方认证服务器。安全性和扩展性都比较好
  • 劣势——涉及较为复杂的协议和协作流程,需要对协议和规范有一定的了解,需要后端支持

4. 选择标准

  • 安全性:了解每种方案的安全特性,包括认证过程的安全性、令牌的安全性和存储机制等。
  • 用户体验:考虑用户登录和跳转过程中的体验,避免频繁的重定向和登录操作。
  • 会话管理:确保会话的有效性和一致性,处理注销和超时等场景。
  • 跨域问题:评估每种方案对跨域策略的要求,并确保后端服务和前端应用的域名配置正确。

5. 单点登录需要前后端配合

单点登录的实现既涉及前端的逻辑处理,也需要后端的支持,包括认证服务器的部署和配置、令牌的验证和生成等。因此,前端团队需要与后端团队密切合作,协同完成单点登录的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值