- 常见的微服务授权方案
- 单点登录(CAS)
- 每个面向用户的服务都必须与认证服务交互,会产生大量非常繁琐的网络流量和重复工作
- 分布式(session)会话
- 分布式会话方案原理主要是将关于用户认证的信息存储在共享存储中(Redis),且通常由用户会话作为 key 来实现的简单分布式哈希映射。当用户访问微服务时,用户数据可以从共享存储中获取。
- 客户端Token的认证方案
- 令牌在客户端生成,由身份验证服务进行签名,并且必须包含足够的信息,以便可以在所有微服务中建立用户身份。令牌会附加到每个请求上,为微服务提供用户身份验证,这种解决方案的安全性相对较好,但身份验证注销是一个大问题,缓解这种情况的方法可以使用短期令牌和频繁检查认证服务等。
- 客户端 Token 与 API 网关结合
- 这个方案意味着所有请求都通过网关,从而有效地隐藏了微服务。在请求时,网关将原始用户令牌转换为内部会话 ID 令牌。在这种情况下,注销就不是问题,因为网关可以在注销时撤销用户的令牌。
- 单点登录(CAS)