大数跨境
0
0

微服务系统之认证管理详解

微服务系统之认证管理详解 驼马精英
2019-01-04
37
导读:微服务架构中的用户认证、网关和 API 认证、系统间和系统内的认证

微服务系统中的认证管理

引言

微服务架构下,安全问题尤为重要,本文探讨微服务系统中认证管理的关键技术,包括用户认证、网关及API调用认证、系统间与系统内认证。

目录

  • 简介
  • 用户认证
  • 网关及API调用认证
  • 系统间与系统内认证

一、简介

认证是指验证当前声明为某一身份的实体是否真实。实体可以是人、系统或应用。

最基础的认证方式包括用户名密码登录、手机验证码、生物识别(如指纹、虹膜、面部)以及数字证书。

在微服务架构中,需要进行认证管理的主要场景包括:

  • 用户访问系统
  • 系统调用网关
  • 网关调用系统
  • 系统内应用之间调用
  • 系统间调用

可将这些认证分为以下三类:用户认证、系统间与系统内认证、网关及API调用认证。

二、用户认证

微服务架构中存在多个系统,无缝切换需依赖单点登录(SSO),但微服务中的SSO与传统方式有差异。

传统的基于Session的SSO将授权信息存储在应用session中,而微服务采用无状态设计,通常通过Token传递用户授权信息。

OAuth2.0与SSO结合

OAuth2.0为授权框架,可通过扩展实现SSO,如OIDC。

基于OAuth2.0的SSO流程如下:

  1. 用户访问app1.com。
  2. 跳转到认证中心iam.com。
  3. 输入账号密码后认证成功。
  4. 写入浏览器Cookie。
  5. 重定向到app1.com并获取Token。
  6. 校验Token有效性。
  7. 存储Token到app1.com Cookie中。
  8. 用户访问其他应用时重复类似流程。

Token机制

IAM通常使用JWT封装用户信息与授权数据。

App需对Token加密后存入浏览器Cookie。

单点退出

微服务架构中无法直接通知各应用强制退出,可通过OAuth2.0的refreshToken机制实现。

当应用退出时通知IAM清除相关Token与Session,其他应用刷新Token时提示重新登录。

用户登录控制

基于OAuth2.0的SSO可在线控制用户对特定系统的访问权限。

在线用户管理

IAM可跟踪用户登录超时、记录Token信息并管理在线用户。

三、网关及API调用认证

网关管理员访问网关系统采用用户认证方式。

API调用认证

API调用认证可通过随机生成的Token绑定一组API权限,分配配额与限制。

网关调用系统

网关调用系统按照系统间调用处理。

四、系统间与系统内认证

系统间与系统内认证均涉及应用间调用,前者跨系统,后者在同一系统内。

应用间调用认证可通过编码(JWT)、加密(JWE)后再通过HTTP Header传输给下游系统完成。

【声明】内容源于网络
0
0
驼马精英
链接物流人,聚焦数字化
内容 926
粉丝 0
驼马精英 链接物流人,聚焦数字化
总阅读38.8k
粉丝0
内容926